بدء استخدام مكتبة Azure CDN ل .NET
يمكنك استخدام مكتبة Azure CDN ل .NET لأتمتة إنشاء وإدارة ملفات تعريف CDN ونقاط النهاية. يتجول هذا البرنامج التعليمي خلال إنشاء تطبيق وحدة تحكم .NET بسيط يوضح العديد من العمليات المتاحة. لا يهدف هذا البرنامج التعليمي إلى وصف جميع جوانب مكتبة Azure CDN ل .NET بالتفصيل.
تحتاج Visual Studio 2015 لإكمال هذا البرنامج التعليمي. Visual Studio Community 2015 متاح مجانا للتنزيل.
تلميح
يتوفر المشروع المكتمل من هذا البرنامج التعليمي للتنزيل على MSDN.
المتطلبات الأساسية
قبل كتابة التعليمات البرمجية لإدارة CDN، يجب القيام ببعض التحضيرات لتمكين التعليمة البرمجية من التفاعل مع Resource Manager Azure. للقيام بهذا التحضير ، تحتاج إلى:
- إنشاء مجموعة موارد لاحتواء ملف تعريف CDN الذي تم إنشاؤه في هذا البرنامج التعليمي
- تكوين Azure Active Directory لتوفير المصادقة للتطبيق
- تطبيق الأذونات على مجموعة الموارد بحيث يمكن للمستخدمين المصرح لهم فقط من مستأجر Azure AD التفاعل مع ملف تعريف CDN
إنشاء مجموعة الموارد
تسجيل الدخول إلى مدخل Azure.
انقر على إنشاء مورد.
ابحث عن مجموعة الموارد وفي جزء مجموعة الموارد ، انقر فوق إنشاء.

قم بتسمية مجموعة الموارد الخاصة بك CdnConsoleTutorial. حدد اشتراكك واختر موقعا قريبا منك. إذا كنت ترغب في ذلك، يمكنك النقر فوق خانة الاختيار تثبيت لوحة المعلومات لتثبيت مجموعة الموارد على لوحة المعلومات في البوابة الإلكترونية. يسهل التثبيت العثور عليه لاحقا. بعد إجراء التحديدات، انقر على إنشاء.

بعد إنشاء مجموعة الموارد، إذا لم تقم بتثبيتها في لوحة المعلومات، فيمكنك العثور عليها بالنقر فوق استعراض، ثم على مجموعات الموارد. لفتحه، انقر فوق مجموعة الموارد. قم بتدوين معرف الاشتراك الخاص بك. نحن بحاجة إليها في وقت لاحق.

إنشاء تطبيق Azure AD وتطبيق الأذونات
هناك طريقتان لمصادقة التطبيق باستخدام Azure Active Directory: المستخدمون الفرديون أو مدير الخدمة. يشبه أصل الخدمة حساب الخدمة في Windows. بدلا من منح أذونات مستخدم معين للتفاعل مع ملفات تعريف CDN، يتم منح الأذونات بدلا من ذلك لمدير الخدمة. عادة ما تستخدم مبادئ الخدمة للعمليات الآلية وغير التفاعلية. على الرغم من أن هذا البرنامج التعليمي يكتب تطبيقا تفاعليا لوحدة التحكم ، إلا أننا سنركز على النهج الأساسي للخدمة.
يتكون إنشاء أصل خدمة من عدة خطوات، بما في ذلك إنشاء تطبيق Azure Active Directory. لإنشائه ، سنتبع هذا البرنامج التعليمي.
هام
تأكد من اتباع جميع الخطوات الواردة في البرنامج التعليمي المرتبط. من المهم أن تكمله تماما كما هو موضح. تأكد من تدوين معرف المستأجر واسم مجال المستأجر (عادة ما يكون مجالا . onmicrosoft.com ما لم تحدد مجالا مخصصا) ومعرف العميل ومفتاح مصادقة العميل، حيث نحتاج إلى هذه المعلومات لاحقا. احرص على حماية معرف العميلومفتاح مصادقة العميل، حيث يمكن لأي شخص استخدام بيانات الاعتماد هذه لتنفيذ العمليات كمبدأ الخدمة.
عندما تصل إلى الخطوة المسماة تكوين تطبيق متعدد المستأجرين، حدد لا.
عندما تصل إلى الخطوة تعيين التطبيق إلى دور، استخدم مجموعة الموارد التي تم إنشاؤها مسبقا، CdnConsoleTutorial، ولكن بدلا من دور القارئ ، قم بتعيين دور مساهم ملف تعريف CDN . بعد تعيين التطبيق دور مساهم ملف تعريف CDN في مجموعة الموارد الخاصة بك، ارجع إلى هذا البرنامج التعليمي.
بمجرد إنشاء أصل الخدمة وتعيين دور مساهم ملف تعريف CDN ، يجب أن تبدو شفرة المستخدمين لمجموعة الموارد مشابهة للصورة التالية.

مصادقة المستخدم التفاعلية
إذا كنت تفضل ، بدلا من مدير الخدمة ، الحصول على مصادقة تفاعلية فردية للمستخدم ، فإن العملية تشبه تلك الخاصة بمدير الخدمة. في الواقع ، تحتاج إلى اتباع نفس الإجراء ، ولكن قم بإجراء بعض التغييرات الطفيفة.
هام
اتبع هذه الخطوات التالية فقط إذا اخترت استخدام مصادقة المستخدم الفردية بدلا من مبدأ الخدمة.
عند إنشاء التطبيق الخاص بك، بدلا من تطبيق ويب، اختر التطبيق الأصلي.

في الصفحة التالية، تتم مطالبتك بإعادة توجيه URI. لن يتم التحقق من صحة عنوان URI، ولكن تذكر ما أدخلته. أنت في حاجة إليها لاحقا.
ليست هناك حاجة لإنشاء مفتاح مصادقة العميل.
بدلا من تعيين مدير خدمة لدور مساهم ملف تعريف CDN ، سنقوم بتعيين مستخدمين أو مجموعات فردية. في هذا المثال، يمكنك أن ترى أنني قمت بتعيين مستخدم CDN Demo لدور مساهم ملف تعريف CDN .

إنشاء مشروعك وإضافة حزم Nuget
الآن بعد أن أنشأنا مجموعة موارد لملفات تعريف CDN الخاصة بنا ومنحنا إذن تطبيق Azure AD لإدارة ملفات تعريف CDN ونقاط النهاية داخل هذه المجموعة، يمكننا البدء في إنشاء تطبيقنا.
من داخل Visual Studio 2015، انقر فوق ملف، جديد، Project... لفتح مربع حوار المشروع الجديد. قم بتوسيع Visual C#، ثم حدد Windows في الجزء الموجود على اليمين. انقر فوق تطبيق وحدة التحكم في الجزء الأوسط. قم بتسمية مشروعك، ثم انقر على موافق.

سيستخدم مشروعنا بعض مكتبات Azure الموجودة في حزم Nuget. دعونا نضيف تلك إلى المشروع.
انقر على القائمة أدوات، Nuget مدير الحِزَم، ثم مدير الحِزَم وحدة التحكم.

في وحدة تحكم مدير الحِزَم، قم بتنفيذ الأمر التالي لتثبيت مكتبة مصادقة Active Directory (ADAL):
Install-Package Microsoft.IdentityModel.Clients.ActiveDirectoryقم بتنفيذ ما يلي لتثبيت مكتبة إدارة Azure CDN:
Install-Package Microsoft.Azure.Management.Cdn
التوجيهات والثوابت والطريقة الرئيسية وطرق المساعد
دعونا نحصل على الهيكل الأساسي لبرنامجنا مكتوبا.
مرة أخرى في علامة التبويب "البرنامج.cs ، استبدل التوجيهات
usingالموجودة في الجزء العلوي بما يلي:using System; using System.Collections.Generic; using Microsoft.Azure.Management.Cdn; using Microsoft.Azure.Management.Cdn.Models; using Microsoft.Azure.Management.Resources; using Microsoft.Azure.Management.Resources.Models; using Microsoft.IdentityModel.Clients.ActiveDirectory; using Microsoft.Rest;نحتاج إلى تحديد بعض الثوابت التي ستستخدمها أساليبنا. في
Programالفصل ، ولكن قبل الطريقةMain، أضف ما يلي. تأكد من استبدال العناصر النائبة، بما في ذلك أقواس الزاوية<>، بقيمك الخاصة حسب الحاجة.//Tenant app constants private const string clientID = "<YOUR CLIENT ID>"; private const string clientSecret = "<YOUR CLIENT AUTHENTICATION KEY>"; //Only for service principals private const string authority = "https://login.microsoftonline.com/<YOUR TENANT ID>/<YOUR TENANT DOMAIN NAME>"; //Application constants private const string subscriptionId = "<YOUR SUBSCRIPTION ID>"; private const string profileName = "CdnConsoleApp"; private const string endpointName = "<A UNIQUE NAME FOR YOUR CDN ENDPOINT>"; private const string resourceGroupName = "CdnConsoleTutorial"; private const string resourceLocation = "<YOUR PREFERRED AZURE LOCATION, SUCH AS Central US>";أيضا على مستوى الفصل ، حدد هذين المتغيرين. سنستخدم هذه العناصر لاحقا لتحديد ما إذا كان ملفنا الشخصي ونقطة النهاية موجودين بالفعل.
static bool profileAlreadyExists = false; static bool endpointAlreadyExists = false;يستعاض عن
Mainالطريقة على النحو التالي:static void Main(string[] args) { //Get a token AuthenticationResult authResult = GetAccessToken(); // Create CDN client CdnManagementClient cdn = new CdnManagementClient(new TokenCredentials(authResult.AccessToken)) { SubscriptionId = subscriptionId }; ListProfilesAndEndpoints(cdn); // Create CDN Profile CreateCdnProfile(cdn); // Create CDN Endpoint CreateCdnEndpoint(cdn); Console.WriteLine(); // Purge CDN Endpoint PromptPurgeCdnEndpoint(cdn); // Delete CDN Endpoint PromptDeleteCdnEndpoint(cdn); // Delete CDN Profile PromptDeleteCdnProfile(cdn); Console.WriteLine("Press Enter to end program."); Console.ReadLine(); }بعض طرقنا الأخرى ستطالب المستخدم بأسئلة "نعم / لا". أضف الطريقة التالية لجعل ذلك أسهل قليلا:
private static bool PromptUser(string Question) { Console.Write(Question + " (Y/N): "); var response = Console.ReadKey(); Console.WriteLine(); if (response.Key == ConsoleKey.Y) { return true; } else if (response.Key == ConsoleKey.N) { return false; } else { // They pressed something other than Y or N. Let's ask them again. return PromptUser(Question); } }
الآن بعد كتابة الهيكل الأساسي لبرنامجنا ، يجب علينا إنشاء الطرق التي تسميها Main الطريقة.
المصادقة
قبل أن نتمكن من استخدام مكتبة إدارة Azure CDN، نحتاج إلى مصادقة مدير الخدمة والحصول على رمز مميز للمصادقة. تستخدم هذه الطريقة ADAL لاسترداد الرمز المميز.
private static AuthenticationResult GetAccessToken()
{
AuthenticationContext authContext = new AuthenticationContext(authority);
ClientCredential credential = new ClientCredential(clientID, clientSecret);
AuthenticationResult authResult =
authContext.AcquireTokenAsync("https://management.core.windows.net/", credential).Result;
return authResult;
}
إذا كنت تستخدم مصادقة المستخدم الفردية ، GetAccessToken فستبدو الطريقة مختلفة قليلا.
هام
استخدم نموذج التعليمات البرمجية هذا فقط إذا اخترت الحصول على مصادقة مستخدم فردية بدلا من مبدأ خدمة.
private static AuthenticationResult GetAccessToken()
{
AuthenticationContext authContext = new AuthenticationContext(authority);
AuthenticationResult authResult = authContext.AcquireTokenAsync("https://management.core.windows.net/",
clientID, new Uri("http://<redirect URI>"), new PlatformParameters(PromptBehavior.RefreshSession)).Result;
return authResult;
}
تأكد من استبدالها <redirect URI> بعنوان URI لإعادة التوجيه الذي أدخلته عند تسجيل التطبيق في Azure AD.
سرد ملفات تعريف CDN ونقاط النهاية
الآن نحن على استعداد لتنفيذ عمليات CDN. أول شيء تفعله طريقتنا هو سرد جميع ملفات التعريف ونقاط النهاية في مجموعة الموارد الخاصة بنا ، وإذا وجدت تطابقا لأسماء ملفات التعريف ونقاط النهاية المحددة في ثوابتنا ، فقم بتدوين ذلك في وقت لاحق حتى لا نحاول إنشاء تكرارات.
private static void ListProfilesAndEndpoints(CdnManagementClient cdn)
{
// List all the CDN profiles in this resource group
var profileList = cdn.Profiles.ListByResourceGroup(resourceGroupName);
foreach (Profile p in profileList)
{
Console.WriteLine("CDN profile {0}", p.Name);
if (p.Name.Equals(profileName, StringComparison.OrdinalIgnoreCase))
{
// Hey, that's the name of the CDN profile we want to create!
profileAlreadyExists = true;
}
//List all the CDN endpoints on this CDN profile
Console.WriteLine("Endpoints:");
var endpointList = cdn.Endpoints.ListByProfile(p.Name, resourceGroupName);
foreach (Endpoint e in endpointList)
{
Console.WriteLine("-{0} ({1})", e.Name, e.HostName);
if (e.Name.Equals(endpointName, StringComparison.OrdinalIgnoreCase))
{
// The unique endpoint name already exists.
endpointAlreadyExists = true;
}
}
Console.WriteLine();
}
}
إنشاء ملفات تعريف CDN ونقاط النهاية
بعد ذلك، سنقوم بإنشاء ملف تعريف.
private static void CreateCdnProfile(CdnManagementClient cdn)
{
if (profileAlreadyExists)
{
Console.WriteLine("Profile {0} already exists.", profileName);
}
else
{
Console.WriteLine("Creating profile {0}.", profileName);
ProfileCreateParameters profileParms =
new ProfileCreateParameters() { Location = resourceLocation, Sku = new Sku(SkuName.StandardVerizon) };
cdn.Profiles.Create(profileName, profileParms, resourceGroupName);
}
}
بمجرد إنشاء ملف التعريف، سننشئ نقطة نهاية.
private static void CreateCdnEndpoint(CdnManagementClient cdn)
{
if (endpointAlreadyExists)
{
Console.WriteLine("Profile {0} already exists.", profileName);
}
else
{
Console.WriteLine("Creating endpoint {0} on profile {1}.", endpointName, profileName);
EndpointCreateParameters endpointParms =
new EndpointCreateParameters()
{
Origins = new List<DeepCreatedOrigin>() { new DeepCreatedOrigin("Contoso", "www.contoso.com") },
IsHttpAllowed = true,
IsHttpsAllowed = true,
Location = resourceLocation
};
cdn.Endpoints.Create(endpointName, endpointParms, profileName, resourceGroupName);
}
}
ملاحظة
يعين المثال أعلاه نقطة النهاية أصلا يسمى Contoso باسم www.contoso.comمضيف . يجب عليك تغيير هذا للإشارة إلى اسم مضيف أصلك.
إزالة نقطة نهاية
على افتراض أنه تم إنشاء نقطة النهاية ، فإن إحدى المهام الشائعة التي قد نرغب في تنفيذها في برنامجنا هي تطهير المحتوى في نقطة النهاية الخاصة بنا.
private static void PromptPurgeCdnEndpoint(CdnManagementClient cdn)
{
if (PromptUser(String.Format("Purge CDN endpoint {0}?", endpointName)))
{
Console.WriteLine("Purging endpoint. Please wait...");
cdn.Endpoints.PurgeContent(resourceGroupName, profileName, endpointName, new List<string>() { "/*" });
Console.WriteLine("Done.");
Console.WriteLine();
}
}
ملاحظة
في المثال أعلاه ، تشير السلسلة /* إلى أنني أريد تطهير كل شيء في جذر مسار نقطة النهاية. وهذا يعادل التحقق من تطهير الكل في مربع حوار "تطهير" مدخل Azure. CreateCdnProfile في هذه الطريقة ، قمت بإنشاء ملف التعريف الخاص بنا كملف تعريف Azure CDN من ملف تعريف Verizon باستخدام الكود Sku = new Sku(SkuName.StandardVerizon)، لذلك سيكون هذا ناجحا. ومع ذلك ، فإن Azure CDN من ملفات تعريف Akamai لا تدعم تطهير الكل ، لذلك إذا كنت أستخدم ملف تعريف Akamai لهذا البرنامج التعليمي ، فسأحتاج إلى تضمين مسارات محددة للتطهير.
حذف ملفات تعريف CDN ونقاط النهاية
ستقوم الطرق الأخيرة بحذف نقطة النهاية وملف التعريف الخاص بنا.
private static void PromptDeleteCdnEndpoint(CdnManagementClient cdn)
{
if(PromptUser(String.Format("Delete CDN endpoint {0} on profile {1}?", endpointName, profileName)))
{
Console.WriteLine("Deleting endpoint. Please wait...");
cdn.Endpoints.DeleteIfExists(endpointName, profileName, resourceGroupName);
Console.WriteLine("Done.");
Console.WriteLine();
}
}
private static void PromptDeleteCdnProfile(CdnManagementClient cdn)
{
if(PromptUser(String.Format("Delete CDN profile {0}?", profileName)))
{
Console.WriteLine("Deleting profile. Please wait...");
cdn.Profiles.DeleteIfExists(profileName, resourceGroupName);
Console.WriteLine("Done.");
Console.WriteLine();
}
}
تشغيل البرنامج
يمكننا الآن تجميع البرنامج وتشغيله بالنقر فوق الزر ابدأ في Visual Studio.

عندما يصل البرنامج إلى المطالبة المذكورة أعلاه، يجب أن تكون قادرا على العودة إلى مجموعة الموارد الخاصة بك في مدخل Azure ومعرفة أنه تم إنشاء ملف التعريف.

يمكننا بعد ذلك تأكيد المطالبات لتشغيل بقية البرنامج.

الخطوات التالية
للاطلاع على المشروع المكتمل من هذه الإرشادات التفصيلية، قم بتنزيل العينة.
للعثور على وثائق إضافية على مكتبة إدارة Azure CDN ل .NET، قم بعرض المرجع على MSDN.
قم بإدارة موارد CDN الخاصة بك باستخدام PowerShell.