Dela via


Distribuera ett Aspire projekt till Azure Container Apps med CLI Aspire

aspire deploy CLI-kommandot ger ett effektivt sätt att distribuera Aspire program direkt till Azure Container Apps. Det här kommandot automatiserar hela distributionsprocessen, från att skapa containeravbildningar till att Azure etablera infrastruktur och distribuera dina program. Den här artikeln beskriver hur du använder aspire deploy kommandot för att distribuera en Aspire lösning till Container Apps. Du får lära dig hur du utför följande uppgifter:

  • Använd kommandot aspire deploy för att distribuera till Container Apps.
  • Verifiera Azure CLI-autentisering för distribution.
  • Etablera Azure infrastruktur med hjälp av Bicep-mallar.
  • Skapa och skicka containeravbildningar till Azure Container Registry.
  • Distribuera beräkningsresurser till Container Apps.
  • Övervaka distributionens förlopp och få åtkomst till det distribuerade programmet.

Förutsättningar

För att arbeta med Aspirebehöver du följande installerat lokalt:

För mer information, se Aspire konfiguration och verktyg och Aspire SDK.

Kontrollera att du har följande innan du använder aspire deploy kommandot:

  • Azure CLI: Installerat och autentiserat med ditt Azure konto.
  • Docker: Installerad för att skapa containeravbildningar.
  • Azure prenumeration: Med lämpliga behörigheter för att skapa resurser.

Aktivera kommandot deploy

Kommandot aspire deploy är för närvarande i förhandsversion och inaktiverat som standard. För att aktivera den:

aspire config set features.deployCommandEnabled true

Autentisera med Azure

Innan du distribuerar måste du autentisera med Azure CLI. Kör följande kommando:

az login

Det här kommandot öppnar en webbläsare där du kan logga in med dina Azure autentiseringsuppgifter. Kommandot aspire deploy verifierar automatiskt DIN Azure CLI-autentisering innan du fortsätter med distributionen. Mer information finns i:

Skapa ett Aspire projekt

Som utgångspunkt förutsätter den här artikeln att du har skapat ett Aspire projekt från mallen Aspire Startprogram . Mer information finns i Snabbstart: Skapa ditt första Aspire projekt.

Om du vill konfigurera ditt projekt för Azure Container Apps distribution, lägg till en paketreferens till ditt AppHost-projekt som inkluderar NuGet-paketet `📦Aspire.Hosting.Azure.AppContainers.

<Project Sdk="Microsoft.NET.Sdk">

    <Sdk Name="Aspire.AppHost.Sdk" Version="9.5.2" />

    <PropertyGroup>
    <OutputType>Exe</OutputType>
    <TargetFramework>net9.0</TargetFramework>
    <ImplicitUsings>enable</ImplicitUsings>
    <Nullable>enable</Nullable>
    <UserSecretsId>7b352f08-305b-4032-9a21-90deb02efc04</UserSecretsId>
    </PropertyGroup>

    <ItemGroup>
    <PackageReference Include="Aspire.Hosting.AppHost" Version="9.5.2" />
    <PackageReference Include="Aspire.Hosting.Azure.AppContainers" Version="9.5.2" />
    </ItemGroup>

</Project>

I AppHost-projektets AppHost.cs-fil lägger du till containerappmiljön:

var builder = DistributedApplication.CreateBuilder(args);

// Add Azure Container Apps environment
var containerAppEnv = builder.AddAzureContainerAppEnvironment("aspire-env");

// Add your services
var cache = builder.AddRedis("cache");

var apiService = builder.AddProject<Projects.AspireApp_ApiService>("apiservice")
    .WithExternalHttpEndpoints();

builder.AddProject<Projects.AspireApp_Web>("webfrontend")
    .WithExternalHttpEndpoints()
    .WithReference(cache)
    .WithReference(apiService);

builder.Build().Run();

Mer information finns i Konfigurera Azure Container Apps miljöer.

Resursnamngivning

När du skapar nya Azure resurser är det viktigt att följa namngivningskraven. För Azure Container Appsmåste namnet vara 2–32 tecken långt och bestå av gemener, siffror och bindestreck. Namnet måste börja med en bokstav och sluta med ett alfanumeriskt tecken.

Mer information finns i Namngivningsregler och begränsningar för Azure resurser.

Distribuera med aspire-distribution

När projektet har konfigurerats distribuerar du det med kommandot aspire deploy :

aspire deploy

Tips/Råd

Kommandot aspire deploy är interaktivt som standard. Om du vill distribuera utan frågor anger du dessa miljövariabler först:

  • Azure__SubscriptionId: Målabonnemangets-ID Azure.
  • Azure__Location: Azure region (till exempel eastus).
  • Azure__ResourceGroup: Namn på resursgrupp som ska skapas eller återanvändas.

Du kan också ange ytterligare alternativ:

aspire deploy --project ./MyApp.AppHost/MyApp.AppHost.csproj

Utrullningsprocess

Kommandot aspire deploy utför följande steg automatiskt. Först verifierar kommandot att du är autentiserad med Azure CLI. Om du inte är inloggad visas ett felmeddelande där du uppmanas att köra az login.

Aspire Därefter uppmanas du att ange det Azure prenumerations-, plats- och resursgruppsnamn som distributionen ska riktas till. Vilka prenumerationer och platser som är tillgängliga beror på det konto som är autentiserat med AzureAzure CLI från steget ovan.

Aspire Därefter analyserar du programmodellen och frågar efter eventuella nödvändiga distributionsparametrar som inte har värden angivna. Du kommer att se uppmaningar som:

There are unresolved parameters that need to be set. Please provide values for them. [y/n] (n): y
Please provide values for the unresolved parameters. Parameters can be saved to user secrets for future use.
weatherApiKey: 
Save to user secrets: [y/n] (n): n

Anmärkning

CLI frågar kontinuerligt tills alla olösta parametrar har tilldelats värden. När Azure distributionen är i förhandsversion uppmanas CLI att spara värden i användarhemligheter men inte använda dem, eftersom distributionstillståndet inte stöds.

När parametrarna har samlats in Azure etableras infrastrukturen med hjälp av Bicep-mallar. Det här steget skapar nödvändiga Azure resurser, inklusive Container Apps-miljön, Container Registry och eventuella säkerhetskopieringstjänster som Redis cacheminnen:

Step 3: Deploying Azure resources

    ✓ DONE: Deploying aca-env                              00:01:08
        Successfully provisioned aca-env
    ✓ DONE: Deploying storage                              00:00:04
        Successfully provisioned storage
    ✓ DONE: Deploying cosmosdb                             00:01:08
        Successfully provisioned cosmosdb
    ✓ DONE: Deploying apiservice-identity                  00:00:03
        Successfully provisioned apiservice-identity
    ✓ DONE: Deploying apiservice-roles-storage             00:00:11
        Successfully provisioned apiservice-roles-storage
    ✓ DONE: Deploying apiservice-roles-cosmosdb            00:01:10
        Successfully provisioned apiservice-roles-cosmosdb

Efter infrastrukturetablering skapas dina programprojekt som containeravbildningar och skickas till Azure Container Registry.

Step 4: Building container images for resources

    ✓ DONE: Checking Docker health               00:00:00
        Docker is healthy.
    ✓ DONE: Building image: apiservice           00:00:04
        Building image for apiservice completed
    ✓ DONE: Building image: webfrontend          00:00:05
        Building image for webfrontend completed

✅ COMPLETED: Building container images completed

Step 5: Authenticating to container registries

    ✓ DONE: Logging in to acrname         00:00:08
        Successfully logged in to acrname

✅ COMPLETED: Successfully authenticated to 1 container registries

Step 6: Pushing 2 images to container registries

    ✓ DONE: Pushing apiservice to acrname                                                              00:00:04
        Successfully pushed apiservice to acrname.azurecr.io/apiservice:aspire-deploy-20250922203320
    ✓ DONE: Pushing webfrontend to acrname                                                             00:00:04
        Successfully pushed webfrontend to acrname.azurecr.io/webfrontend:aspire-deploy-20250922203320

✅ COMPLETED: Successfully pushed 2 images to container registries

Slutligen skickas alla .NET projekt som har skapats som containeravbildningar från föregående steg till det etablerade Azure containerregistret , där de kommer att finnas, vilket gör dem tillgängliga för Container Apps:

Step 7: Deploying compute resources

    ✓ DONE: Deploying apiservice                                                                                   00:00:35
        Successfully deployed apiservice to https://apiservice.proudplant-5c457a5d.westus2.azurecontainerapps.io
    ✓ DONE: Deploying webfrontend                                                                                  00:00:19
        Successfully deployed webfrontend to https://webfrontend.proudplant-5c457a5d.westus2.azurecontainerapps.io

✅ COMPLETED: Successfully deployed 2 compute resources

När distributionen är klar visas Aspire instrumentpanelens URL där du kan övervaka och hantera ditt distribuerade program:

✅ Deployment completed successfully. View Aspire dashboard at https://aspire-env.proudwater-12345678.eastus.azurecontainerapps.io

Mer information om vilka alternativ som är tillgängliga för aspire deploy kommandot och exempel på hur du anger dem i CLI finns i kommandoreferensenaspire deploy.

Övervaka distribution

Under distributionen kan du övervaka förloppet genom att:

  1. Konsolutmatning: Realtidsförloppsuppdateringar och statusmeddelanden.
  2. Azure portal: Visa resurser som skapas i resursgruppen.
  3. Azure CLI: Används az containerapp list för att se distribuerade program.

Felsöka utveckling

När du använder aspire deploy kommandot kan du stöta på olika problem under distributionen. Använd det här avsnittet om du vill lära dig vanliga problem och vi ger dig tips för felsökning som hjälper dig att snabbt identifiera och åtgärda fel. Med rätt metod och förståelse för vanliga problem kan du säkerställa en smidigare distributionsprocess.

Autentiseringsproblem

Om du får autentiseringsfel:

❌ Azure CLI authentication failed. Please run 'az login' to authenticate before deploying.

Kör az login och se till att du har de behörigheter som krävs i din Azure prenumeration. Mer information finns i Logga in med Azure CLI.

Namnkonflikter för resurser

Om resursnamnen är i konflikt med befintliga Azure resurser ändrar du resursnamnen i AppHost:

var containerAppEnv = builder.AddAzureContainerAppEnvironment(
        "my-unique-env-name"
    );

Fel vid containerbygge

Om containerbyggen misslyckas, kontrollera att följande:

  • Docker körs och är tillgänglig.
  • Projektet byggs framgångsrikt lokalt: dotnet build.
  • Container-runtime är korrekt konfigurerad.

Få åtkomst till ditt distribuerade program

Efter en lyckad distribution:

  1. Aspire Instrumentpanel: Få åtkomst till instrumentpanelens URL som anges i distributionsutdata.

  2. Programslutpunkter: Hitta dina program-URL:er i portalen Azure under Container Apps.

  3. Azure CLI: Lista slutpunkter med hjälp av:

    az containerapp show --name <app-name> --resource-group <resource-group> --query properties.configuration.ingress.fqdn
    

Rensa resurser

Ta bort distribuerade resurser genom att ta bort resursgruppen:

az group delete --name <resource-group-name>

Nästa steg