Udostępnij za pośrednictwem


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:

Aby uzyskać więcej informacji, zobacz .NET.NET Aspire setup and toolingi .NET.NET Aspire SDK.

Tworzenie przykładowego rozwiązania

  1. W górnej części Visual Studioprzejdź do File>New>Project.
  2. W oknie dialogowym wyszukaj Aspire i wybierz pozycję .NET.NET Aspire — aplikacja startowa. Wybierz pozycję Dalej.
  3. Na ekranie Skonfiguruj nowy projekt:
    • Wprowadź nazwę projektu AspireSQL.
    • Pozostaw rest wartości na ustawieniach domyślnych i wybierz Dalej.
  4. 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 AspireSQL.AppHost dla żądanej usługi bazy danych SQL.

Zastąp zawartość pliku w projekcie AspireSQL.AppHost następującym kodem:

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

  1. Otwórz nowe okno terminalu i cd w katalogu projektu AppHost rozwiązania .NET.NET Aspire.

  2. Wykonaj polecenie azd init, aby zainicjować projekt przy użyciu azd, 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.

  3. 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
    
  4. 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
    
  5. 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 i prod.

    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

  1. 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
    
  2. 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)
    
  3. 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:

  1. azd package: projekty aplikacji i ich zależności są pakowane w kontenery.
  2. azd provision: zasoby Azure, których aplikacja będzie potrzebować, są rozlokowane.
  3. 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 na podstawie konfiguracji AppHost, którą podałeś, wynikającej z .

Zrzut ekranu przedstawiający wdrożony Azure 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ż