Samouczek: Wdrażanie projektu .NET Aspire z bazą danych SQL Server do Azure
Z tego samouczka nauczysz się, jak skonfigurować aplikację ASP.NET Core z bazą danych SQL Server do wdrożenia do Azure. .NET Aspire udostępnia wiele konfiguracji integracji SQL Server, które udostępniają różne usługi bazy danych w Azure. Dowiesz się, jak wykonywać następujące działania:
- Tworzenie podstawowej aplikacji ASP.NET Core skonfigurowanej do korzystania z integracji .NET AspireSQL Server
- Skonfiguruj aplikację, aby przygotować bazę danych Azure SQL Database
- Skonfiguruj aplikację do aprowizacji konteneryzowanej bazy danych SQL Server
Notatka
Ten dokument koncentruje się na konfiguracjach .NET Aspire w celu przygotowywania i wdrażania zasobów SQL Server w środowisku Azure. Zapoznaj się z samouczkiem dotyczącym wdrażania Azure Container Apps, aby dowiedzieć się więcej na temat pełnego procesu wdrażania .NET.NET Aspire.
Warunki wstępne
Aby pracować z .NET.NET Aspire, musisz mieć lokalnie zainstalowane następujące:
- .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 opcjonalną wtyczką .NET.NET Aspire
Aby uzyskać więcej informacji, zobacz .NET.NET Aspire setup and toolingi .NET.NET Aspire SDK.
Tworzenie przykładowego rozwiązania
- W górnej części Visual Studioprzejdź do File>New>Project.
- W oknie dialogowym wyszukaj Aspire i wybierz pozycję .NET.NET Aspire — aplikacja startowa. Wybierz pozycję Dalej.
- Na ekranie Skonfiguruj nowy projekt:
- Wprowadź nazwę projektu AspireSQL.
- Pozostaw rest wartości na ustawieniach domyślnych i wybierz Dalej.
- Na ekranie Dodatkowe informacje:
- Sprawdź, czy wybrano .NET 9.0, a następnie wybierz pozycję Utwórz.
Visual Studio tworzy nowe rozwiązanie ASP.NET Core, które jest ustrukturyzowane do używania .NET Aspire. Rozwiązanie składa się z następujących projektów:
- AspireSQL.Web: projekt Blazor, który zależy od ustawień domyślnych usługi.
- AspireSQL.ApiService: projekt interfejsu API, który zależy od ustawień domyślnych usługi.
- AspireSQL.AppHost: projekt orkiestratora zaprojektowany pod kątem łączenia i konfigurowania różnych projektów i usług aplikacji. Orkiestrator powinien być ustawiony jako projekt startowy.
- AspireSQL.ServiceDefaults: udostępniona biblioteka klas do przechowywania konfiguracji, które mogą być ponownie używane w projektach w rozwiązaniu.
Konfigurowanie aplikacji na potrzeby wdrażania SQL Server
.NET Aspire oferuje dwie wbudowane opcje konfiguracji, które usprawniają wdrażanie SQL Server w Azure:
- Aprowizuj konteneryzowaną bazę danych SQL Server przy użyciu Azure Container Apps
- Skonfiguruj instancję Azure SQL Database
Dodawanie integracji .NET.NET Aspire do aplikacji
Dodaj odpowiednią integrację .NET.NET Aspire do projektu AspireSQL.AppHost dla żądanej usługi hostingu.
Dodaj 📦Aspire.Hosting.Azure.Sql do projektu AspireSQL.AppHost:
dotnet add package Aspire.Hosting.Azure.Sql
Konfigurowanie projektu AppHost
Skonfiguruj projekt
Zastąp zawartość pliku
var builder = DistributedApplication.CreateBuilder(args);
var apiService = builder.AddProject<Projects.AspireSql_ApiService>("apiservice");
// Provisions an Azure SQL Database when published
var sqlServer = builder.AddAzureSqlServer("sqlserver")
.AddDatabase("sqldb");
builder.AddProject<Projects.AspireSql_Web>("webfrontend")
.WithExternalHttpEndpoints()
.WithReference(apiService)
.WaitFor(apiService);
builder.Build().Run();
Powyższy kod dodaje do aplikacji zasób kontenera SQL Server i konfiguruje połączenie z bazą danych o nazwie sqldata
. Metoda PublishAsAzureSqlDatabase
zapewnia, że narzędzia, takie jak Azure Developer CLI lub Visual Studio, tworzą zasób usługi Azure SQL Database podczas procesu wdrażania.
Wdrażanie aplikacji
Narzędzia takie jak Azure Developer CLI (azd
) obsługują konfiguracje integracji .NET AspireSQL Server w celu usprawnienia wdrożeń.
azd
używa tych ustawień i dostarcza prawidłowo skonfigurowane zasoby.
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
, zobacz azd init.Wybierz Użyj kodu w bieżącym katalogu, gdy
azd
zaprezentuje dwie opcje 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
pojawi się prośba o potwierdzenie, że znaleziono prawidłowy projekt .NET.NET AspireAppHost. Wybierz opcję Potwierdź i kontynuuj inicjowanie 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 będzie używana do nadawania nazw przygotowywanym zasobom w Azure oraz do 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 konfiguracyjny informujący
azd
, jakie jest bieżące aktywne środowisko. - .azure/aspireazddev/.env: zawiera przesłonięcia specyficzne dla środowiska.
Wdrażanie szablonu
Po zainicjowaniu szablonu
azd
proces aprowizacji i wdrażania można wykonać jako jedno polecenie 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
, umożliwiając 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ą rozlokowane. -
azd deploy
: projekty są wypychane jako kontenery do wystąpienia usługi Azure Container Registry, a następnie używane 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.
Proces wdrażania przydzielił zasób SQL Database
Czyszczenie zasobów
Uruchom następujące polecenie CLI Azure, aby usunąć grupę zasobów, gdy nie potrzebujesz już zasobów Azure, które utworzyłeś. 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.
Zobacz też
- wdrażanie .NET Aspire za pośrednictwem Azure Container Apps
- .NET Aspire Azure Container Apps szczegółowe omówienie wdrożenia
- Wdrażanie projektu .NET Aspire przy użyciu GitHub Actions