Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Důležité
30. září 2027 bude vyřazena služba Azure CDN Standard od Microsoftu (Classic). Abyste se vyhnuli přerušení služeb, je důležité do 30. září 2027 migrovat profily Azure CDN Standard z Microsoftu (classic) na úroveň Azure Front Door Standard nebo Premium. Další informace najdete v tématu Azure CDN Standard (klasický) od Microsoftu ukončení.
15. ledna 2025 byla vyřazena služba Azure CDN z Edgio. Další informace najdete v nejčastějších dotazech týkajících se vyřazení služby Azure CDN z Edgio.
Knihovnu Azure CDN pro .NET můžete použít k automatizaci vytváření a správy profilů a koncových bodů CDN. Tento kurz vás provede vytvořením jednoduché konzolové aplikace .NET, která ukazuje několik dostupných operací. Tento kurz není určený k podrobnému popisu všech aspektů knihovny Azure CDN pro .NET.
K dokončení tohoto kurzu potřebujete Visual Studio 2015. Visual Studio Community 2015 je volně dostupné ke stažení.
Tip
Dokončený projekt z tohoto kurzu je k dispozici ke stažení na webu MSDN.
Požadavky
Než začnete psát kód pro správu CDN, musíte udělat určitou přípravu, abyste umožnili kódu interakci s Azure Resource Managerem. Pokud chcete tuto přípravu provést, musíte:
- Vytvořte skupinu prostředků, která bude obsahovat profil CDN vytvořený v tomto kurzu.
- Nakonfigurujte ID Microsoft Entra tak, aby poskytovalo ověřování pro aplikaci.
- Aplikujte oprávnění na skupinu prostředků, aby s profilem CDN mohli interagovat jenom autorizovaní uživatelé z vašeho tenanta Microsoft Entra.
Vytvoření skupiny prostředků
Přihlaste se do Azure Portalu.
Vyberte Vytvořit prostředek.
Vyhledejte skupinu prostředků a v podokně Skupina prostředků vyberte Vytvořit.
Pojmenujte skupinu prostředků CdnConsoleTutorial. Vyberte své předplatné a zvolte umístění blízko vás. Pokud chcete, můžete zaškrtnout políčko Připnout na řídicí panel a připnout skupinu prostředků na řídicí panel portálu. Připnutí usnadňuje pozdější vyhledání. Po provedení výběru vyberte Vytvořit.
Po vytvoření skupiny prostředků ji můžete najít kliknutím na Procházet, pak Skupiny prostředků, pokud jste ji nepřipnuli na řídicí panel. Otevřete ji tak, že vyberete skupinu prostředků. Poznamenejte si ID předplatného. Potřebujeme to později.
Vytvoření aplikace Microsoft Entra a použití oprávnění
Existují dva přístupy k ověřování aplikací pomocí Microsoft Entra ID: jednotliví uživatelé nebo služební účet. Hlavní objekt služby je podobný účtu služby ve Windows. Místo udělení oprávnění konkrétnímu uživateli pro interakci s profily CDN jsou oprávnění udělena objektu služby. Instanční objekty se obvykle používají pro automatizované neinteraktivní procesy. V tomto kurzu píšeme interaktivní konzolovou aplikaci, ale zaměřujeme se na přístup služebního uživatele.
Vytvoření objektu služby se skládá z několika kroků, včetně vytvoření aplikace v systému Microsoft Entra. Abychom ho vytvořili, budeme postupovat podle tohoto kurzu.
Důležité
Nezapomeňte postupovat podle všech kroků v propojeném kurzu. Je důležité , abyste ho dokončili přesně podle popisu. Nezapomeňte si poznamenat ID tenanta, název domény tenanta (obvykle doménu .onmicrosoft.com , pokud nezadáte vlastní doménu), ID klienta a ověřovací klíč klienta, protože tyto informace potřebujeme později. Dávejte pozor na zabezpečení ID klienta a ověřovacího klíče klienta, protože tyto přihlašovací údaje může kdokoli použít k provádění operací jako principál služby.
Až se dostanete ke kroku Konfigurovat aplikaci s více tenanty, vyberte Ne.
Když se dostanete ke kroku Přiřadit aplikaci k roli, použijte skupinu prostředků vytvořenou dříve, CdnConsoleTutorial, ale místo role Čtenář přiřaďte roli Přispěvatel profilu CDN. Po přiřazení aplikaci role Přispěvatel profilu CDN ve vaší skupině prostředků se vraťte k tomuto návodu.
Po vytvoření instančního objektu a přiřazení role Přispěvatel profilu CDN by okno Uživatelé pro vaši skupinu prostředků mělo vypadat podobně jako na následujícím obrázku.
Interaktivní ověřování uživatelů
Pokud byste namísto hlavní služby raději dali přednost interaktivnímu ověřování jednotlivých uživatelů, proces je podobný jako u hlavní služby. Ve skutečnosti musíte postupovat stejným postupem, ale provést několik menších změn.
Důležité
Pokud se rozhodnete místo principála služby použít ověřování jednotlivých uživatelů, řiďte se těmito kroky.
Při vytváření aplikace místo webové aplikace zvolte Nativní aplikace.
Na další stránce budete vyzváni k zadání adresy URI přesměrování. Identifikátor URI se neověří, ale zapamatujte si, co jste zadali. Budete ho potřebovat později.
Není nutné vytvářet ověřovací klíč klienta.
Místo přiřazení služebního principála k roli Přispěvatel profilu CDN přiřadíme jednotlivé uživatele nebo skupiny. Tento příklad přiřadí ukázkového uživatele CDN k roli Přispěvatel profilu CDN .
Vytvoření projektu a přidání balíčků NuGet
Teď, když jsme vytvořili skupinu prostředků pro naše profily CDN a udělili aplikaci Microsoft Entra oprávnění ke správě profilů a koncových bodů CDN v této skupině, můžeme začít vytvářet naši aplikaci.
Důležité
Balíček NuGet Microsoft.IdentityModel.Clients.ActiveDirectory a Knihovna Azure AD Authentication Library (ADAL) jsou zastaralé a již nejsou podporovány. Od 30. června 2020 nebyly přidány žádné nové funkce. Důrazně doporučujeme upgradovat. Další informace najdete v průvodci migrací.
V sadě Visual Studio 2015 vyberte Soubor, Nový, Projekt... a otevřete tak dialogové okno nový projekt. Rozbalte Visual C# a pak v podokně vlevo vyberte Windows . V prostředním podokně vyberte Konzolová aplikace . Pojmenujte projekt a pak vyberte OK.
Náš projekt bude používat některé knihovny Azure obsažené v balíčcích NuGet. Pojďme tyto knihovny přidat do projektu.
Vyberte nabídku Nástroje, Správce balíčků NuGet a pak Konzola správce balíčků.
V konzole Správce balíčků spusťte následující příkaz, který nainstaluje knihovnu Active Directory Authentication Library (ADAL):
Install-Package Microsoft.Identity.ClientSpuštěním následujícího příkazu nainstalujte knihovnu pro správu Azure CDN:
Install-Package Microsoft.Azure.Management.Cdn
Direktivy, konstanty, hlavní metody a pomocné metody
Pojďme napsat základní strukturu našeho programu.
Vraťte se do karty Program.cs a nahraďte direktivy
usingv horní části tímto příkazem: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;Potřebujeme definovat některé konstanty, které naše metody používají.
ProgramDo třídy, ale před metoduMainpřidejte následující bloky kódu. Podle potřeby nahraďte zástupné symboly, včetně <úhlových závorek>, vlastními hodnotami.//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>";Na úrovni třídy také definujte tyto dvě proměnné. Tyto proměnné použijeme později k určení, jestli už náš profil a koncový bod existují.
static bool profileAlreadyExists = false; static bool endpointAlreadyExists = false;Nahraďte metodu
Mainnásledujícím způsobem: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(); }Některé z našich dalších metod zobrazí uživateli výzvu s dotazem "Ano/Ne". Přidejte následující metodu, která vám usnadní práci:
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); } }
Teď, když je napsána základní struktura našeho programu, bychom měli vytvořit metody volané metodou Main .
Ověřování
Než budeme moct použít knihovnu pro správu Azure CDN, musíme autentizovat služebního principála a získat autentizační token. Tato metoda používá k načtení tokenu knihovnu Active Directory Authentication Library.
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;
}
Pokud používáte ověřování jednotlivých uživatelů, metoda GetAccessToken vypadá trochu jinak.
Důležité
Ukázku kódu použijte pouze v případě, že se rozhodnete mít ověřování jednotlivých uživatelů namísto principála služby.
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;
}
Nezapomeňte nahradit <redirect URI> identifikátorem URI přesměrování, který jste zadali při registraci aplikace v Microsoft Entra ID.
Výpis profilů a koncových bodů CDN
Teď jsme připraveni provádět operace CDN. První věc, kterou naše metoda provede, je výpis všech profilů a koncových bodů v naší skupině prostředků. Pokud najde shodu pro názvy profilů a koncových bodů zadaných v našich konstantách, poznamená si je, abychom se automaticky nepokoušeli vytvářet duplicity.
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();
}
}
Vytvoření profilů a koncových bodů CDN
V dalším kroku vytvoříme profil.
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);
}
}
Po vytvoření profilu vytvoříme koncový bod.
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);
}
}
Poznámka:
Výše uvedený příklad přiřadí koncovému bodu původ s názvem Contoso a hostitelským jménem www.contoso.com. Měli byste to změnit tak, aby odkazovalo na název hostitele vaší vlastní původní sítě.
Vymazat koncový bod
Za předpokladu, že se koncový bod vytvořil, je jednou z běžných úloh, kterou můžeme v našem programu provést, vyprázdnění obsahu v našem koncovém bodu.
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();
}
}
Poznámka:
V předchozím příkladu řetězec /* označuje, že chci vyprázdnit všechno v kořenovém adresáři cesty ke koncovému bodu. To je ekvivalent zaškrtnutí Vyprázdnit vše v dialogovém okně "vyprázdnění" na portálu Azure.
Odstranění profilů a koncových bodů CDN
Poslední metody odstraní náš koncový bod a profil.
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();
}
}
Spuštění programu
Teď můžeme program zkompilovat a spustit kliknutím na tlačítko Start v sadě Visual Studio.
Jakmile program dosáhne výše uvedené výzvy, měli byste se vrátit ke skupině prostředků na webu Azure Portal a zjistit, že byl profil vytvořen.
Pak můžeme potvrdit výzvy ke spuštění zbytku programu.
Další kroky
Další dokumentaci ke knihovně pro správu Azure CDN pro .NET najdete v referenčních informacích na webu MSDN.
Správa prostředků CDN pomocí PowerShellu