Nasazení projektu .NET Aspire do Azure Container Apps
.NET
.NET Aspire projekty jsou navržené tak, aby běžely v kontejnerizovaných prostředích.
Azure Container Apps je plně spravované prostředí, které umožňuje spouštět mikroslužby a kontejnerizované aplikace na bezserverové platformě. Tento článek vás provede vytvořením nového .NET Aspire řešení a jeho nasazením do Microsoftu Azure Container Apps pomocí Azure Developer CLI (azd
). Dozvíte se, jak provést následující úlohy:
- Zřízení skupiny prostředků Azure a registru kontejnerů
- Publikování projektů .NET Aspire jako imagí kontejneru ve službě Azure Container Registry
- Zřízení kontejneru Redis v Azure
- Nasazení aplikací do Azure Container Apps prostředí
- Zobrazení protokolů konzoly aplikace pro řešení potíží s aplikací
Požadavky
Pokud chcete pracovat s .NET.NET Aspire, potřebujete místně nainstalovat následující:
- .NET 8.0 nebo .NET 9.0
- Modul runtime kontejneru kompatibilní s OCI, například:
- Docker desktopové nebo Podman. Pro více informací se podívejte na modul běhového prostředí kontejneru.
- Integrované vývojové prostředí (IDE) nebo editor kódu, například:
- Visual Studio 2022 verze 17.9 nebo novější (volitelné)
-
Visual Studio Code (volitelné)
- C# Dev Kit: Rozšíření (volitelné)
- JetBrains Rider s .NET.NET Aspire pluginem (volitelné)
Další informace najdete v tématu .NET.NET Aspire nastavení a nástrojea .NET.NET Aspire SDK.
Alternativou k tomuto kurzu a podrobnějšímu průvodci najdete v tématu Nasazení projektu .NET Aspire pro Azure Container Apps pomocí azd
(podrobný průvodce).
Nasadit .NET.NET Aspire projekty pomocí azd
S .NET Aspire a Azure Container Apps (ACA) máte skvělý scénář hostování pro vytváření aplikací nativních pro cloud pomocí .NET. Do Azure Developer CLI (azd
) jsme integrovali několik skvělých nových funkcí, které jsou určeny k tomu, aby vyvoj a nasazení .NET Aspire na Azure bylo bezproblémové. Možnosti Azure rozhraní příkazového řádku nebo Bicep můžete dál používat, pokud potřebujete podrobnou úroveň kontroly nad nasazeními. U nových projektů ale nenajdete jednodušší cestu k úspěchu při nasazení nové topologie mikroslužeb do cloudu.
Vytvoření projektu .NET.NET Aspire
Jako výchozí bod se v tomto článku předpokládá, že jste vytvořili projekt .NET.NET Aspire ze šablony .NET.NET Aspire Starter Application. Další informace najdete v tématu Rychlý start: Vytvoření prvního .NET.NET Aspire projektu.
Pojmenování prostředků
Při vytváření nových Azure prostředků je důležité dodržovat požadavky na pojmenování. Pro Azure Container Appsmusí mít název délku 2 až 32 znaků a musí obsahovat malá písmena, číslice a pomlčky. Název musí začínat písmenem a končit alfanumerickým znakem.
Další informace najdete v tématu Pravidla a omezení pro Azure prostředky.
Nainstalujte Azure Developer CLI
Proces instalace azd
se liší podle operačního systému, ale je široce dostupný prostřednictvím winget
, brew
, apt
nebo přímo prostřednictvím curl
. Pokyny pro instalaci azd
naleznete v části Instalace Azure Developer CLI.
Inicializovat šablonu
Otevřete nové okno terminálu a
cd
do adresáře projektu AppHost vašeho řešení .NET.NET Aspire.Spuštěním příkazu
azd init
inicializovat projekt pomocíazd
, který zkontroluje místní adresářovou strukturu a určí typ aplikace.azd init
Další informace o příkazu
azd init
naleznete v tématu azd init.Vyberte Použít kód v aktuálním adresáři, když
azd
zobrazí výzvu se dvěma možnostmi inicializace aplikace.? How do you want to initialize your app? [Use arrows to move, type to filter] > Use code in the current directory Select a template
Po kontrole adresáře
azd
zobrazí výzvu k potvrzení, že našel správný projekt .NET.NET AspireAppHost. Vyberte možnost Potvrdit a pokračovat v inicializaci aplikace.Detected services: .NET (Aspire) Detected in: D:\source\repos\AspireSample\AspireSample.AppHost\AspireSample.AppHost.csproj azd will generate the files necessary to host your app on Azure using Azure Container Apps. ? Select an option [Use arrows to move, type to filter] > Confirm and continue initializing my app Cancel and exit
Zadejte název prostředí, který se používá k pojmenování zřízených prostředků v Azure a správě různých prostředí, jako jsou
dev
aprod
.Generating files to run your app on Azure: (✓) Done: Generating ./azure.yaml (✓) Done: Generating ./next-steps.md SUCCESS: Your app is ready for the cloud! You can provision and deploy your app to Azure by running the azd up command in this directory. For more information on configuring your app, see ./next-steps.md
azd
vygeneruje řadu souborů a umístí je do pracovního adresáře. Tyto soubory:
- azure.yaml: Popisuje služby aplikace, například projekt .NET Aspire AppHost, a mapuje je na Azure zdroje.
-
.azure/config.json: Konfigurační soubor, který informuje
azd
, co je aktuální aktivní prostředí. - .azure/aspireazddev/.env: Obsahuje přepsání specifická pro prostředí.
Nasazení šablony
Po inicializaci šablony
azd
lze proces zřizování a nasazení spustit jako jediný příkaz z adresáře projektu AppHost pomocí azd up:azd up
Ze seznamu dostupných možností vyberte předplatné, do které chcete nasadit:
Select an Azure Subscription to use: [Use arrows to move, type to filter] 1. SampleSubscription01 (xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx) 2. SamepleSubscription02 (xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx)
Ze seznamu dostupných možností vyberte požadované umístění Azure:
Select an Azure location to use: [Use arrows to move, type to filter] 42. (US) Central US (centralus) 43. (US) East US (eastus) > 44. (US) East US 2 (eastus2) 46. (US) North Central US (northcentralus) 47. (US) South Central US (southcentralus)
Jakmile provedete výběry, azd
spustí proces zřizování a nasazení.
By default, a service can only be reached from inside the Azure Container Apps environment it is running in. Selecting a service here will also allow it to be reached from the Internet.
? Select which services to expose to the Internet webfrontend
? Select an Azure Subscription to use: 1. <YOUR SUBSCRIPTION>
? Select an Azure location to use: 1. <YOUR LOCATION>
Packaging services (azd package)
Provisioning Azure resources (azd provision)
Provisioning Azure resources can take some time.
Subscription: <YOUR SUBSCRIPTION>
Location: <YOUR LOCATION>
You can view detailed progress in the Azure Portal:
<LINK TO DEPLOYMENT>
(✓) Done: Resource group: <YOUR RESOURCE GROUP>
(✓) Done: Container Registry: <ID>
(✓) Done: Log Analytics workspace: <ID>
(✓) Done: Container Apps Environment: <ID>
SUCCESS: Your application was provisioned in Azure in 1 minute 13 seconds.
You can view the resources created under the resource group <YOUR RESOURCE GROUP> in Azure Portal:
<LINK TO RESOURCE GROUP OVERVIEW>
Deploying services (azd deploy)
(✓) Done: Deploying service apiservice
- Endpoint: <YOUR UNIQUE apiservice APP>.azurecontainerapps.io/
(✓) Done: Deploying service webfrontend
- Endpoint: <YOUR UNIQUE webfrontend APP>.azurecontainerapps.io/
Aspire Dashboard: <LINK TO DEPLOYED .NET ASPIRE DASHBOARD>
SUCCESS: Your up workflow to provision and deploy to Azure completed in 3 minutes 50 seconds.
Příkaz azd up
funguje jako balící pro následující samostatné příkazy azd
pro nastavení a automatické nasazení prostředků v jednom kroku.
-
azd package
: Projekty aplikací a jejich závislosti jsou zabalené do kontejnerů. -
azd provision
: Azure prostředky, které aplikace potřebuje, jsou zřízené. -
azd deploy
: Projekty se nasdílí jako kontejnery do instance služby Azure Container Registry a pak se použijí k vytvoření nových revizí Azure Container Apps, ve kterých bude kód hostován.
Po dokončení azd up
fází bude vaše aplikace dostupná na Azurea můžete otevřít Azure portál a prozkoumat prostředky.
azd
také vypíše adresy URL pro přímý přístup k nasazených aplikacím.
Otestování nasazené aplikace
Teď, když je aplikace zřízená a nasazená, můžete přejít na portál Azure. Ve skupině prostředků, do které jste nasadili aplikaci, uvidíte tři kontejnerové aplikace a další prostředky.
Kliknutím na web
Container App ji otevřete na portálu.
Kliknutím na odkaz Adresa URL aplikace otevřete front-end aplikace v prohlížeči.
Když kliknete na uzel Počasí na navigačním panelu, front-endová aplikace web
kontejneru zavolá aplikaci kontejneru apiservice
, aby získala data. Výstup front-endu bude uložen do mezipaměti pomocí aplikace kontejneru redis
a integrace ukládání výstupu do mezipaměti .NET AspireRedis. Při párnásobné aktualizaci front-endu si všimnete, že se data o počasí ukládají do mezipaměti. Po několika sekundách se aktualizuje.
Nasaďte řídicí panel .NET.NET Aspire
Řídicí panel .NET.NET Aspire můžete nasadit jako součást hostované aplikace. Tato funkce je teď plně podporovaná. Při nasazování vytiskne výstupní protokoly azd další adresu URL nasazeného řídicího panelu.
Spuštěním azd monitor
můžete řídicí panel automaticky spustit.
azd monitor
Vyčištění prostředků
Spuštěním následujícího příkazu rozhraní příkazového řádku Azure odstraňte skupinu prostředků, pokud už nepotřebujete Azure prostředky, které jste vytvořili. Odstraněním skupiny prostředků se odstraní také prostředky obsažené v této skupině.
az group delete --name <your-resource-group-name>
Další informace najdete v tématu Vyčištění prostředků v Azure.