.NET için Azure CDN Kitaplığı'nı kullanmaya başlama
Önemli
Microsoft tarafından sunulan Azure CDN Standard (klasik) 30 Eylül 2027'de kullanımdan kaldırılacaktır. Hizmet kesintisini önlemek için, 30 Eylül 2027'ye kadar Azure CDN Standard'ı Microsoft (klasik) profillerinden Azure Front Door Standard veya Premium katmanına geçirmeniz önemlidir. Daha fazla bilgi için bkz . Microsoft'tan Azure CDN Standard (klasik) kullanımdan kaldırma.
Edgio'dan Azure CDN 4 Kasım 2025'te kullanımdan kaldırılacaktır. Hizmet kesintisini önlemek için iş yükünüzü bu tarihten önce Azure Front Door'a geçirmeniz gerekir. Daha fazla bilgi için bkz . Edgio'dan Azure CDN kullanımdan kaldırma hakkında SSS.
CDN profillerinin ve uç noktalarının oluşturulmasını ve yönetimini otomatikleştirmek için .NET için Azure CDN Kitaplığı'nı kullanabilirsiniz. Bu öğreticide, kullanılabilir işlemlerden birkaçını gösteren basit bir .NET konsol uygulaması oluşturma adımları gösterilmektedir. Bu öğretici, .NET için Azure CDN Kitaplığı'nın tüm yönlerini ayrıntılı olarak açıklamaya yönelik değildir.
Bu öğreticiyi tamamlamak için Visual Studio 2015 gerekir. Visual Studio Community 2015 ücretsiz olarak indirilebilir.
İpucu
Bu öğreticide tamamlanan proje MSDN'de indirilebilir.
Önkoşullar
CDN yönetim kodu yazmadan önce, kodun Azure Resource Manager ile etkileşim kurmasını sağlamak için bazı hazırlıklar yapmanız gerekir. Bu hazırlığı yapmak için şunları yapmanız gerekir:
- Bu öğreticide oluşturulan CDN profilini içerecek bir kaynak grubu oluşturun
- Microsoft Entra Id'yi uygulama için kimlik doğrulaması sağlayacak şekilde yapılandırma
- Yalnızca Microsoft Entra kiracınızdaki yetkili kullanıcıların CDN profiliyle etkileşim kurabilmesi için kaynak grubuna izinler uygulayın
Kaynak grubunu oluşturma
Azure Portal’da oturum açın.
Kaynak oluştur’a tıklayın.
Kaynak grubu için arama yapın ve Kaynak grubu bölmesinde Oluştur'a tıklayın.
Kaynak grubunuz için CdnConsoleTutorial adını verin. Aboneliğinizi seçin ve size yakın bir konum seçin. İsterseniz kaynak grubunu portaldaki panoya sabitlemek için Panoya sabitle onay kutusuna tıklayabilirsiniz. Sabitleme, daha sonra bulmayı kolaylaştırır. Seçimlerinizi yaptıktan sonra Oluştur'a tıklayın.
Kaynak grubu oluşturulduktan sonra panonuza sabitlemediyseniz Gözat'a ve ardından Kaynak Grupları'na tıklayarak bu grubu bulabilirsiniz. Açmak için kaynak grubuna tıklayın. Abonelik Kimliğinizi not edin. Daha sonra lazım olacak.
Microsoft Entra uygulamasını oluşturma ve izinleri uygulama
Microsoft Entra ID ile uygulama kimlik doğrulamasına yönelik iki yaklaşım vardır: Bireysel kullanıcılar veya hizmet sorumlusu. Hizmet sorumlusu, Windows'taki bir hizmet hesabına benzer. CdN profilleriyle etkileşime geçmek için belirli bir kullanıcıya izin vermek yerine, hizmet sorumlusuna izinler verilir. Hizmet sorumluları genellikle otomatik, etkileşimli olmayan işlemler için kullanılır. Bu öğretici etkileşimli bir konsol uygulaması yazıyor olsa da hizmet sorumlusu yaklaşımına odaklanacağız.
Hizmet sorumlusu oluşturmak, Microsoft Entra uygulaması oluşturma da dahil olmak üzere çeşitli adımlardan oluşur. Oluşturmak için bu öğreticiyi izleyeceğiz.
Önemli
Bağlantılı öğreticideki tüm adımları izlediğinden emin olun. Tam olarak açıklandığı gibi tamamlamanız önemlidir. Bu bilgilere daha sonra ihtiyacımız olduğu için kiracı kimliğinizi, kiracı etki alanı adınızı (özel bir etki alanı belirtmediğiniz sürece genellikle .onmicrosoft.com etki alanı), istemci kimliğinizi ve istemci kimlik doğrulama anahtarınızı not edin. Bu kimlik bilgileri herkes tarafından hizmet sorumlusu olarak işlemleri yürütmek için kullanılabildiği için istemci kimliğinizi ve istemci kimlik doğrulama anahtarınızı korumaya dikkat edin.
Çok kiracılı uygulamayı yapılandır adlı adıma gittiğiniz zaman Hayır'ı seçin.
Uygulamayı bir role atama adımına gittiğiniz zaman, daha önce oluşturulan CdnConsoleTutorial kaynak grubunu kullanın, ancak Okuyucu rolü yerine CDN Profili Katkıda Bulunanı rolünü atayın. Uygulamaya kaynak grubunuz üzerinde CDN Profili Katkıda Bulunanı rolünü atadıktan sonra bu öğreticiye dönün.
Hizmet sorumlunuzu oluşturduktan ve CDN Profili Katkıda Bulunanı rolünü atadıktan sonra kaynak grubunuzun Kullanıcılar dikey penceresi aşağıdaki görüntüye benzer olmalıdır.
Etkileşimli kullanıcı kimlik doğrulaması
Bir hizmet sorumlusu yerine etkileşimli bireysel kullanıcı kimlik doğrulamasına sahip olmayı tercih ediyorsanız, işlem hizmet sorumlusu için de buna benzer. Aslında, aynı yordamı izlemeniz, ancak birkaç küçük değişiklik yapmanız gerekir.
Önemli
Bu sonraki adımları yalnızca hizmet sorumlusu yerine tek tek kullanıcı kimlik doğrulaması kullanmayı tercih ediyorsanız uygulayın.
Uygulamanızı oluştururken Web Uygulaması yerine Yerel uygulama'yı seçin.
Sonraki sayfada yeniden yönlendirme URI'sini girmeniz istenir. URI doğrulanmaz, ancak ne girdiğinizi unutmayın. Daha sonra lazım olacak.
İstemci kimlik doğrulama anahtarı oluşturmanıza gerek yoktur.
CDN Profili Katkıda Bulunanı rolüne hizmet sorumlusu atamak yerine tek tek kullanıcılar veya gruplar atayacağız. Bu örnekte, CDN Profili Katkıda Bulunanı rolüne CDN Tanıtım Kullanıcısı atadığım görebilirsiniz.
Projenizi oluşturma ve NuGet paketleri ekleme
CDN profillerimiz için bir kaynak grubu oluşturduğumuza ve Microsoft Entra uygulamamıza bu grup içindeki CDN profillerini ve uç noktalarını yönetme iznini verdiğinize göre, uygulamamızı oluşturmaya başlayabiliriz.
Önemli
Microsoft.IdentityModel.Clients.ActiveDirectory NuGet paketi ve Azure AD Kimlik Doğrulama Kitaplığı (ADAL) kullanım dışı bırakıldı. 30 Haziran 2020'den bu yana yeni özellik eklenmedi. Yükseltmenizi kesinlikle öneririz. Daha fazla bilgi için geçiş kılavuzuna bakın.
Visual Studio 2015'in içinden Dosya, Yeni, Proje... öğesini seçerek yeni proje iletişim kutusunu açın. Visual C# öğesini genişletin ve soldaki bölmede Windows'ı seçin. Orta bölmede Konsol Uygulaması'nı seçin. Projenizi adlandırarak Tamam'ı seçin.
Projemiz NuGet paketlerinde bulunan bazı Azure kitaplıklarını kullanacak. Şimdi bu kitaplıkları projeye ekleyelim.
Araçlar menüsü, Nuget Paket Yöneticisi ve ardından Konsol'Paket Yöneticisi seçin.
Paket Yöneticisi Konsolu'nda aşağıdaki komutu yürüterek Active Directory Kimlik Doğrulama Kitaplığı'nı (ADAL) yükleyin:
Install-Package Microsoft.Identity.Client
Azure CDN Yönetim Kitaplığı'nı yüklemek için aşağıdakileri yürütür:
Install-Package Microsoft.Azure.Management.Cdn
Yönergeler, sabitler, ana yöntem ve yardımcı yöntemler
Programımızın temel yapısını yazalım.
Program.cs sekmesine geri dönün, üstteki yönergeleri aşağıdaki komutla değiştirin
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.Identity.Client; using Microsoft.Rest;
Yöntemlerimizin kullandığı bazı sabitleri tanımlamamız gerekir. sınıfına
Program
, ancak yöntemindenMain
önce aşağıdaki kod bloklarını ekleyin. Köşeli ayraçlar da dahil olmak üzere <yer tutucuları> gerektiği gibi kendi değerlerinizle değiştirmeyi unutmayın.//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>";
Ayrıca sınıf düzeyinde bu iki değişkeni tanımlayın. Bu değişkenleri daha sonra profilimizin ve uç noktamızın zaten var olup olmadığını belirlemek için kullanırız.
static bool profileAlreadyExists = false; static bool endpointAlreadyExists = false;
Main
yöntemini aşağıdaki gibi değiştirin: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(); }
Diğer yöntemlerimizden bazıları kullanıcıya "Evet/Hayır" soruları sorar. Bunu biraz kolaylaştırmak için aşağıdaki yöntemi ekleyin:
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); } }
Artık programımızın temel yapısı yazılmıştır, yöntemi tarafından Main
çağrılan yöntemleri oluşturmalıyız.
Kimlik Doğrulaması
Azure CDN Yönetim Kitaplığı'nı kullanabilmemiz için önce hizmet sorumlumuzun kimliğini doğrulamamız ve bir kimlik doğrulama belirteci edinmemiz gerekir. Bu yöntem, belirteci almak için Active Directory Kimlik Doğrulama Kitaplığı'nı kullanır.
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;
}
Tek tek kullanıcı kimlik doğrulaması kullanıyorsanız yöntem GetAccessToken
biraz farklı görünür.
Önemli
Bu kod örneğini yalnızca hizmet sorumlusu yerine tek tek kullanıcı kimlik doğrulamasına sahip olmak istiyorsanız kullanın.
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;
}
yerine uygulamayı Microsoft Entra Kimliği'ne kaydettiğinizde girdiğiniz yeniden yönlendirme URI'siyle değiştirmeyi <redirect URI>
unutmayın.
CDN profillerini ve uç noktalarını listeleme
Artık CDN işlemleri gerçekleştirmeye hazırız. Yöntemimizin ilk yaptığı şey, kaynak grubumuzdaki tüm profilleri ve uç noktaları listelemektir ve sabitlerimizde belirtilen profil ve uç nokta adları için bir eşleşme bulursa, yinelenenleri oluşturmayı denememek için daha sonra için bir not alır.
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 profilleri ve uç noktaları oluşturma
Ardından bir profil oluşturacağız.
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);
}
}
Profil oluşturulduktan sonra bir uç nokta oluştururuz.
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);
}
}
Not
Yukarıdaki örnekte uç noktaya contoso adlı bir kaynak ve bir konak adı www.contoso.com
atanır. Bunu kendi kaynağınızın ana bilgisayar adına işaret eden şekilde değiştirmeniz gerekir.
Uç noktayı temizleme
Uç noktanın oluşturulduğunu varsayarsak, programımızda gerçekleştirmek isteyebileceğimiz yaygın görevlerden biri, uç noktamızdaki içeriği temizlemektir.
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();
}
}
Not
Önceki örnekte dize /*
, uç nokta yolunun kökündeki her şeyi temizlemek istediğimi belirtir. Bu, Azure portalının "temizleme" iletişim kutusunda Tümünü Temizle'yi denetlemeye eşdeğerdir. yöntemindeCreateCdnProfile
, kodunu Sku = new Sku(SkuName.StandardVerizon)
kullanarak profilimizi Edgio profilinden Azure CDN olarak oluşturdum, bu nedenle bu başarılı olacaktır.
CDN profillerini ve uç noktalarını silme
Son yöntemler uç noktamızı ve profilimizi siler.
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();
}
}
Programı çalıştırma
Artık Visual Studio'da Başlat düğmesine tıklayarak programı derleyebilir ve çalıştırabiliriz.
Program yukarıdaki istemine ulaştığında, Azure portalında kaynak grubunuzla geri dönebilmeniz ve profilin oluşturulduğunu görebilmeniz gerekir.
Ardından programın geri kalanını çalıştırmak için istemleri onaylayabiliriz.
Sonraki Adımlar
Bu kılavuzda tamamlanan projeyi görmek için örneği indirin.
.NET için Azure CDN Yönetim Kitaplığı'nda daha fazla belge bulmak için MSDN'de başvuruyu görüntüleyin.
CDN kaynaklarınızı PowerShell ile yönetin.