Kurz: Nasazení projektu .NET Aspire s databází SQL Server do Azure
V tomto kurzu se naučíte nakonfigurovat ASP.NET Core aplikaci s SQL Server Database pro nasazení do Azure. .NET Aspire poskytuje více konfigurací integrace SQL Server, které zřizují různé databázové služby v Azure. Naučíte se:
- Vytvoření základní ASP.NET Core aplikace, která je nakonfigurovaná tak, aby používala integraci .NET AspireSQL Server
- Konfigurace aplikace pro zřízení Azure SQL Database
- Konfigurace aplikace pro zřízení kontejnerizované databáze SQL Server
Poznámka
Tento dokument se zaměřuje konkrétně na konfigurace .NET Aspire pro zřizování a nasazování prostředků SQL Server v Azure. Další informace o úplném procesu nasazení
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 Desktop nebo Podman. Další informace viz modul runtime 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.
Vytvoření ukázkového řešení
- V horní části Visual Studiopřejděte na File>New>Project.
- V dialogovém okně vyhledejte Aspire a vyberte .NET.NET Aspire -úvodní aplikace. Zvolte Další.
- Na obrazovce Konfigurace nového projektu:
- Zadejte název projektu z AspireSQL.
- Ponechte rest hodnot ve výchozím nastavení a vyberte Další.
- Na obrazovce Další informace:
- Ověřte, že je vybraná .NET 9.0 a zvolte Vytvořit.
Visual Studio vytvoří nové ASP.NET Core řešení, které je strukturované pro použití .NET Aspire. Řešení se skládá z následujících projektů:
- AspireSQL.Web: Projekt Blazor, který závisí na výchozích nastaveních služby.
- AspireSQL.ApiService: Projekt rozhraní API, který závisí na výchozích nastaveních služby.
- AspireSQL.AppHost: Projekt orchestrátoru navržený pro připojení a konfiguraci různých projektů a služeb vaší aplikace. Orchestrátor by měl být nastaven jako spouštěcí projekt.
- AspireSQL.ServiceDefaults: Sdílená knihovna tříd pro uložení konfigurací, které je možné znovu použít v rámci projektů ve vašem řešení.
Konfigurace aplikace pro nasazení SQL Server
.NET Aspire nabízí dvě předdefinované možnosti konfigurace, které zjednoduší nasazení SQL Server na Azure:
- Zřízení kontejnerizované databáze SQL Server pomocí Azure Container Apps
- Zřízení instance služby SQL Database Azure
Přidání integrace .NET.NET Aspire do aplikace
Přidejte odpovídající integraci .NET.NET Aspire do projektu AspireSQL.AppHost pro vaši požadovanou hostující službu.
Přidejte 📦Aspire.Hosting.Azure.Sql NuGet balíček do projektu AspireSQL.AppHost
dotnet add package Aspire.Hosting.Azure.Sql
Konfigurace projektu AppHost
Nakonfigurujte projekt AspireSQL.AppHost pro požadovanou službu databáze SQL.
Nahraďte obsah souboru Program.cs v projektu AspireSQL.AppHost následujícím kódem:
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();
Předchozí kód přidá do aplikace prostředek kontejneru SQL Server a nakonfiguruje připojení k databázi s názvem sqldata
. Metoda PublishAsAzureSqlDatabase
zajišťuje, že nástroje, jako jsou Azure Developer CLI nebo Visual Studio, během procesu nasazení vytvoří prostředek Azure SQL Database.
Nasazení aplikace
Nástroje, jako je Azure Developer CLI (azd
), podporují konfigurace integrace .NET AspireSQL Server, aby se zjednodušila nasazení.
azd
tato nastavení využívá a zřídí správně nakonfigurované prostředky za vás.
Inicializujte šablonu
Otevřete nové okno terminálu a použijte příkaz
cd
, abyste se dostali do adresáře projektu AppHost ve vašem projektu .NET.NET Aspire řešení.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 spustit proces zřizování a nasazení jako jediný příkaz v adresáři projektu AppHost pomocí azd up.azd up
Ze seznamu dostupných možností vyberte předplatné, které chcete použít pro nasazení.
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
slouží jako obal pro následující jednotlivé příkazy azd
k nasazení a zajištění vašich prostředků v jednom kroku:
-
azd package
: Projekty aplikací a jejich závislosti jsou zabalené do kontejnerů. -
azd provision
: Azure prostředky, které bude aplikace potřebovat, 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.
Proces nasazení zřídil prostředek Azure SQL Database z důvodu . AppHost konfiguraci, kterou jste zadali.
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.