Wdrażanie projektu .NET Aspire w Azure Container Apps
.NET
.NET Aspire projekty są zaprojektowane do działania w środowiskach konteneryzowanych.
Azure Container Apps to w pełni zarządzane środowisko, które umożliwia uruchamianie mikrousług i aplikacji konteneryzowanych na platformie bezserwerowej. W tym artykule opisano tworzenie nowego rozwiązania .NET Aspire i wdrażanie go w usłudze Microsoft Azure Container Apps przy użyciu Azure Developer CLI (azd
). Dowiesz się, jak wykonać następujące zadania:
- Utwórz grupę zasobów Azure i rejestr kontenerów
- Publikowanie projektów .NET Aspire jako obrazów kontenerów w usłudze Azure Container Registry
- Utwórz kontener Redis w Azure
- Wdrażanie aplikacji w środowisku Azure Container Apps
- Wyświetlanie dzienników konsoli aplikacji w celu rozwiązywania problemów z aplikacją
Warunki wstępne
Aby pracować z .NET.NET Aspire, musisz mieć lokalnie zainstalowane następujące elementy:
- .NET 8.0 lub .NET 9.0
- Środowisko uruchomieniowe kontenera zgodne ze standardem OCI, takie jak:
- Docker Desktop lub Podman. Aby uzyskać więcej informacji, zobacz Container Runtime.
- Zintegrowane środowisko deweloperskie (IDE) lub edytor kodu, takie jak:
- Visual Studio 2022 w wersji 17.9 lub nowszej (opcjonalnie)
-
Visual Studio Code (opcjonalnie)
- C# Dev Kit: Rozszerzenie (opcjonalnie)
- JetBrains Rider z wtyczką .NET.NET Aspire (opcjonalnie)
Aby uzyskać więcej informacji, zobacz .NET.NET Aspire setup and toolingi .NET.NET Aspire SDK.
Alternatywą dla tego samouczka, oferującą bardziej szczegółowe instrukcje, jest przewodnik "Wdrażanie projektu .NET Aspire do Azure Container Apps przy użyciu azd
" (szczegółowy przewodnik).
Wdrażanie projektów .NET.NET Aspire przy użyciu azd
Dzięki .NET Aspire i Azure Container Apps (ACA) masz doskonały scenariusz hostingu umożliwiający tworzenie aplikacji natywnych dla chmury za pomocą .NET. Utworzyliśmy kilka wspaniałych nowych funkcji w Azure Developer CLI (azd
) dedykowanych do rozwoju i wdrażania .NET Aspire do Azure jako bezproblemowe doświadczenie. Nadal możesz użyć opcji interfejsu wiersza polecenia Azure i/lub Bicep, gdy potrzebujesz szczegółowego poziomu kontroli nad wdrożeniami. Jednak w przypadku nowych projektów nie znajdziesz łatwiejszej ścieżki do pomyślnego wdrożenia nowej topologii mikrousług w chmurze.
Tworzenie projektu .NET.NET Aspire
Na początek w tym artykule założono, że utworzono projekt .NET.NET Aspire z szablonu .NET.NET Aspire Starter Application. Aby uzyskać więcej informacji, zobacz Szybki start: tworzenie pierwszego projektu .NET.NET Aspire.
Nazewnictwo zasobów
Podczas tworzenia nowych zasobów Azure należy przestrzegać wymagań dotyczących nazewnictwa. W przypadku Azure Container Appsnazwa musi mieć długość od 2 do 32 znaków i składać się z małych liter, cyfr i łączników. Nazwa musi zaczynać się literą i kończyć znakiem alfanumerycznym.
Aby uzyskać więcej informacji, zobacz Reguły nazewnictwa i ograniczenia dotyczące zasobów Azure.
Zainstaluj Azure Developer CLI
Proces instalowania azd
różni się w zależności od systemu operacyjnego, ale jest szeroko dostępny za pośrednictwem winget
, brew
, apt
lub bezpośrednio za pośrednictwem curl
. Aby zainstalować azd
, zobacz Install Azure Developer CLI.
Inicjowanie szablonu
Otwórz nowe okno terminalu i
cd
w katalogu projektu AppHost rozwiązania .NET.NET Aspire.Wykonaj polecenie
azd init
, aby zainicjować projekt przy użyciuazd
, co spowoduje sprawdzenie struktury katalogów lokalnych i określenie typu aplikacji.azd init
Aby uzyskać więcej informacji na temat polecenia
azd init
, zapoznaj się z azd init.Wybierz pozycję Użyj kodu w bieżącym katalogu, kiedy
azd
wyświetli dwa sposoby inicjowania aplikacji.? 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 zeskanowaniu katalogu
azd
zostanie wyświetlony monit o potwierdzenie, że został znaleziony prawidłowy projekt .NET.NET AspireAppHost. Wybierz opcję Potwierdź i kontynuuj inicjowanie mojej aplikacji.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
Wprowadź nazwę środowiska, która służy do nazywania aprowizowanych zasobów w Azure i zarządzania różnymi środowiskami, takimi jak
dev
iprod
.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
generuje wiele plików i umieszcza je w katalogu roboczym. Są to następujące pliki:
- azure.yaml: opisuje usługi aplikacji, takie jak projekt .NET Aspire AppHost, i mapuje je na zasoby Azure.
-
.azure/config.json: plik konfiguracji, który informuje
azd
, jakie jest bieżące aktywne środowisko. - .azure/aspireazddev/.env: zawiera ustawienia specyficzne dla środowiska.
Wdrażanie szablonu
Po zainicjowaniu szablonu
azd
proces provisionowania i wdrażania można wykonać jednym poleceniem z katalogu projektu AppHost przy użyciu azd up.azd up
Wybierz subskrypcję, do której chcesz wdrożyć, z listy dostępnych opcji:
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)
Wybierz odpowiednią lokalizację Azure, która ma być używana z listy dostępnych opcji:
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)
Po wybraniu opcji azd
wykonuje proces aprowizacji i wdrażania.
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.
Polecenie azd up
działa jako osłona dla następujących poleceń azd
, mające na celu aprowizację i wdrażanie zasobów w jednym kroku:
-
azd package
: projekty aplikacji i ich zależności są pakowane w kontenery. -
azd provision
: zasoby Azure, których aplikacja będzie potrzebować, są zapewniane. -
azd deploy
: Projekty są przesyłane jako kontenery do instancji Azure Container Registry, a następnie wykorzystywane do tworzenia nowych wersji Azure Container Apps, w których będzie hostowany kod.
Po zakończeniu etapów azd up
aplikacja będzie dostępna w Azurei możesz otworzyć portal Azure, aby eksplorować zasoby.
azd
również generuje adresy URL w celu uzyskania bezpośredniego dostępu do wdrożonych aplikacji.
Testowanie wdrożonej aplikacji
Teraz, gdy aplikacja została aprowizowana i wdrożona, możesz przejść do portalu Azure. W grupie zasobów, w której wdrożono aplikację, zobaczysz trzy aplikacje kontenera i inne zasoby.
Kliknij aplikację kontenera web
, aby otworzyć ją w portalu.
Kliknij link Adres URL aplikacji, aby otworzyć interfejs użytkownika w przeglądarce.
Po kliknięciu węzła "Pogoda" na pasku nawigacyjnym aplikacja kontenera frontonu web
wykonuje wywołanie aplikacji kontenera apiservice
w celu pobrania danych. Wyjście front-endu będzie buforowane przy użyciu aplikacji kontenerowej redis
oraz integracji buforowania wyjścia .NET AspireRedis. Gdy kilkukrotnie odświeżysz interfejs, zauważysz, że dane pogodowe są buforowane. Zostanie ona zaktualizowana po kilku sekundach.
Wdróż pulpit nawigacyjny .NET.NET Aspire
Pulpit nawigacyjny .NET.NET Aspire można wdrożyć w ramach hostowanej aplikacji. Ta funkcja jest teraz w pełni obsługiwana. Podczas wdrażania dzienniki wyjściowe azd drukują dodatkowy adres URL do wdrożonego pulpitu nawigacyjnego.
Możesz uruchomić azd monitor
, aby automatycznie uruchomić pulpit nawigacyjny.
azd monitor
Czyszczenie zasobów
Uruchom następujące polecenie CLI Azure, aby usunąć grupę zasobów, gdy nie potrzebujesz już zasobów utworzonych w Azure. Usunięcie grupy zasobów powoduje również usunięcie zawartych w niej zasobów.
az group delete --name <your-resource-group-name>
Aby uzyskać więcej informacji, zobacz Czyszczenie zasobów w Azure.