Självstudie: Distribuera .NET Aspire-projektet med en SQL Server-databas till Azure
I den här handledningen lär du dig att konfigurera en ASP.NET Core-app med en SQL Server-databas för distribution till Azure. .NET Aspire innehåller flera SQL Server integreringskonfigurationer som etablerar olika databastjänster i Azure. Du får lära dig att:
- Skapa en grundläggande ASP.NET Core app som är konfigurerad för att använda .NET AspireSQL Server-integreringen
- Konfigurera appen för att etablera en Azure SQL Database
- Konfigurera appen för att etablera en containerbaserad SQL Server databas
Obs
Det här dokumentet fokuserar specifikt på .NET Aspire konfigurationer för att etablera och distribuera SQL Server resurser i Azure. Gå till handledningen Azure Container Apps distribution för att lära sig mer om hela distributionsprocessen för .NET.NET Aspire.
Förutsättningar
Om du vill arbeta med .NET.NET Aspirebehöver du följande installerat lokalt:
- .NET 8,0 eller .NET 9,0
- En OCI-kompatibel containermiljö, till exempel:
- Docker Desktop eller Podman. Mer information finns i Container Runtime.
- En IDE (Integrated Developer Environment) eller kodredigerare, till exempel:
- Visual Studio 2022 version 17.9 eller senare (valfritt)
-
Visual Studio Code (valfritt)
- C# Dev Kit: Tillägg (valfritt)
- JetBrains Rider med .NET.NET Aspire insticksprogram (valfritt)
Mer information finns i .NET.NET Aspire installation och verktygoch .NET.NET Aspire SDK.
Skapa exempellösningen
- Överst i Visual Studionavigerar du till File>New>Project.
- I dialogrutan söker du efter Aspire och väljer .NET.NET Aspire – Startprogram. Välj Nästa.
- På skärmen Konfigurera ditt nya projekt:
- Ange ett projektnamn för AspireSQL.
- Låt resten av värdena vara som standard och välj Nästa.
- På skärmen Ytterligare information:
- Kontrollera att .NET 9.0 är markerat och välj Skapa.
Visual Studio skapar en ny ASP.NET Core lösning som är strukturerad för att använda .NET Aspire. Lösningen består av följande projekt:
- AspireSQL.Web: Ett Blazor projekt som är beroende av tjänststandarder.
- AspireSQL.ApiService: Ett API-projekt som är beroende av tjänststandarder.
- AspireSQL.AppHost: Ett orchestrator-projekt som är utformat för att ansluta och konfigurera de olika projekten och tjänsterna i din app. Orkestratorn ska ställas in som startprojekt.
- AspireSQL.ServiceDefaults: Ett bibliotek för delad klass som innehåller konfigurationer som kan återanvändas i alla projekt i din lösning.
Konfigurera appen för SQL Server distribution
.NET Aspire innehåller två inbyggda konfigurationsalternativ för att effektivisera SQL Server distribution på Azure:
- Etablera en containerbaserad SQL Server databas med hjälp av Azure Container Apps
- Skapa en SQL-databasinstans för Azure
Lägg till .NET.NET Aspire-integreringen i appen
Lägg till lämplig .NET.NET Aspire integrering i projektet AspireSQL.AppHost för din önskade värdtjänst.
Lägg till 📦Aspire.Hosting.Azure.Sql NuGet-paket till AspireSQL.AppHost-projektet:
dotnet add package Aspire.Hosting.Azure.Sql
Konfigurera AppHost-projektet
Konfigurera projektet AspireSQL.AppHost för din önskade SQL-databastjänst.
Ersätt innehållet i Program.cs-filen i projektet AspireSQL.AppHost med följande kod:
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();
Föregående kod lägger till en SQL Server Container-resurs i din app och konfigurerar en anslutning till en databas med namnet sqldata
. Metoden PublishAsAzureSqlDatabase
ser till att verktyg som Azure Developer CLI eller Visual Studio skapa en Azure SQL Database-resurs under distributionsprocessen.
Distribuera appen
Verktyg som Azure Developer CLI (azd
) stöder .NET AspireSQL Server integreringskonfigurationer för att effektivisera distributioner.
azd
använder dessa inställningar och etablerar korrekt konfigurerade resurser åt dig.
Initiera mallen
Öppna ett nytt terminalfönster och
cd
in i katalogen för din .NET.NET Aspire-lösning.Kör kommandot
azd init
för att initiera projektet medazd
, som kommer att granska den lokala katalogstrukturen och fastställa typen av app.azd init
Mer information om kommandot
azd init
finns i azd init.Välj Använd kod i den aktuella katalogen när
azd
uppmanar dig med två alternativ för appinitiering.? How do you want to initialize your app? [Use arrows to move, type to filter] > Use code in the current directory Select a template
När du har genomsökt katalogen uppmanar
azd
dig att bekräfta att den hittade rätt .NET.NET AspireAppHost- projekt. Välj alternativet Bekräfta och fortsätt initiera min app.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
Ange ett miljönamn som används för att namnge etablerade resurser i Azure och hantera olika miljöer, till exempel
dev
ochprod
.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
genererar ett antal filer och placerar dem i arbetskatalogen. Dessa filer är:
- azure.yaml: Beskriver tjänsterna i appen, till exempel .NET Aspire AppHost-projekt, och mappar dem till Azure resurser.
-
.azure/config.json: Konfigurationsfil som informerar
azd
vad den aktuella aktiva miljön är. - .azure/aspireazddev/.env: Innehåller miljöspecifika åsidosättningar.
Distribuera mallen
När en
azd
mall har initierats kan etablerings- och distributionsprocessen köras som ett enda kommando från projektkatalogen AppHost med azd up:azd up
Välj den prenumeration som du vill distribuera till i listan över tillgängliga alternativ:
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)
Välj önskad Azure-plats från listan över tillgängliga alternativ som ska användas:
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)
När du har valt kör azd
etablerings- och distributionsprocessen.
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.
Kommandot azd up
fungerar som omslutning för följande enskilda azd
kommandon för att etablera och distribuera dina resurser i ett enda steg:
-
azd package
: Appprojekten och deras beroenden paketeras i containrar. -
azd provision
: De Azure resurser som appen behöver förses. -
azd deploy
: Projekten skickas som containrar till en Azure Container Registry-instans och används sedan för att skapa nya revisioner av Azure Container Apps där koden ska finnas.
När azd up
faserna är klara blir appen tillgänglig på Azureoch du kan öppna Azure-portalen för att utforska resurserna.
azd
matar också ut URL:er för att komma åt de distribuerade apparna direkt.
Distributionsprocessen skapade en Azure SQL Database-resurs på grund av .AppHost-konfigurationen som du angav.
Rensa resurser
Kör följande Azure CLI-kommando för att ta bort resursgruppen när du inte längre behöver de Azure resurser som du skapade. Om du tar bort resursgruppen tas även de resurser som ingår i den bort.
az group delete --name <your-resource-group-name>
Mer information finns i Rensa resurser i Azure.
Se även
.NET Aspire