Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Med Azure Developer CLI (azd) kan du distribuera Aspire projekt med hjälp av GitHub Actions eller Azure Devops-pipelines genom att automatiskt konfigurera nödvändiga autentiserings- och miljöinställningar. Den här artikeln beskriver hur du skapar och distribuerar ett Aspire-projekt på Azure Container Apps med hjälp av azd. Du lär dig följande begrepp:
- Utforska hur
azdintegrering fungerar med Aspire projekt - Skapa och konfigurera en GitHub DevOps-lagringsplats Azure för ett Aspire projekt med hjälp av
azd - Övervaka och utforska arbetsflödet för GitHub Actions eller Azure DevOps-pipelineexekveringar och Azure implementeringar
Förutsättningar
För att arbeta med Aspirebehöver du följande installerat lokalt:
-
.NET 8.0 eller .NET 9.0.
- Från och med Aspire 9.4 .NET stöds 10 Förhandsversion 5 eller senare .
- En OCI-kompatibel containerkörmiljö, 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 Aspire plugin (valfritt)
För mer information, se Aspire konfiguration och verktyg och Aspire SDK.
- Skapa en Azure DevOps-organisation eller välj en befintlig organisation
-
Skapa en Azure DevOps Personlig åtkomsttoken (PAT) och spara den för senare användning. Konfigurera token med följande behörigheter:
- Agentgrupper (läsa, hantera)
- Kompilera (läs och kör)
- Kod (fullständig)
- Projekt och team (läsa, skriva, hantera)
- Frisläpp (läsa, skriva, exekvera och hantera)
- Tjänstanslutningar (läsa, fråga och hantera)
Du måste också ha Azure Developer CLIinstallerat lokalt (version 1.5.1 eller senare). Vanliga installationsalternativ är följande:
Skapa en Aspire lösning
Som utgångspunkt förutsätter den här artikeln att du har skapat en Aspire lösning från mallenAspire Startprogram. Mer information finns i Snabbstart: Skapa din första Aspire app.
Initiera mallen
Öppna ett nytt terminalfönster och kör
cdför att navigera till katalogen för din Aspire lösning.Kör kommandot
azd initför att initiera projektet medazd, som kommer att granska den lokala katalogstrukturen och fastställa typen av app.azd initMer information om kommandot
azd initfinns i azd init.Välj Använd kod i den aktuella katalogen när
azddu uppmanas att använda tre 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 Create a minimal projectNär du har genomsökt katalogen
azduppmanas du att bekräfta att den hittade rätt 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 exitAnge ett miljönamn som används för att namnge etablerade resurser i Azure och hantera olika miljöer, till exempel
devochprod.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 Aspire AppHost-projekt, och mappar dem till Azure resurser.
-
.azure/config.json: Konfigurationsfil som informerar
azdvad den aktuella aktiva miljön är. - .azure/aspireazddev/.env: Innehåller miljöspecifika åsidosättningar.
Skapa GitHub lagringsplats och pipeline
Med Azure Developer CLI kan du automatiskt skapa CI/CD-pipelines med rätt konfigurationer och behörigheter för att etablera och distribuera resurser till Azure.
azd kan också skapa en GitHub lagringsplats för din app om den inte redan finns.
Kör kommandot
azd pipeline configför att konfigurera distributionspipelinen och anslut den på ett säkert sätt till Azure:azd pipeline configVälj den prenumeration som appresurserna ska etableras och distribueras till.
Välj platsen Azure som ska användas för resurserna.
När du tillfrågas om du vill skapa en ny Git lagringsplats i katalogen anger du y och trycker på Retur.
Anmärkning
När du skapade en GitHub lagringsplats måste du vara inloggad på GitHub. Det finns några val som varierar beroende på dina inställningar. När du har loggat in uppmanas du att skapa en ny lagringsplats i den aktuella katalogen.
Välj Skapa en ny privat GitHub lagringsplats för att konfigurera git-fjärren.
Ange ett valfritt namn för den nya GitHub lagringsplatsen eller tryck på Retur för att använda standardnamnet.
azdskapar en ny lagringsplats i GitHub och konfigurerar den med de hemligheter som krävs för att autentisera för att Azure.
Ange y för att fortsätta när
azduppmanar dig att checka in och push-överföra dina lokala ändringar för att starta den konfigurerade pipelinen.
Utforska arbetsflödet och distributionen av GitHub Actions
Gå till ditt nya GitHub-lager med länken som genereras av
azd.Välj fliken Åtgärder för att visa lagringsplatsens arbetsflöden. Du bör se att det nya arbetsflödet antingen körs eller redan har slutförts. Välj arbetsflödet för att visa jobbstegen och informationen i körningens loggar. Du kan till exempel expandera steg som Distribuera program för att se information om den slutförda åtgärden.
Välj Implementera applikation för att expandera loggarna för det steget. Du bör se två slutpunkts-URL:er utskrivna för
apiserviceochwebfrontend. Välj någon av dessa länkar för att öppna dem på en annan webbläsarflik och utforska det distribuerade programmet.
Grattis! Du har implementerat ett Aspire-projekt med hjälp av Azure Developer CLI och GitHub-åtgärder.
Konfigurera arbetskatalog för lösningar för flera projekt
När du lägger till GitHub Åtgärder i en befintlig lösning för flera projekt Aspire där AppHost-projektet inte finns i rotkatalogen kan du behöva konfigurera parametern working-directory för vissa arbetsflödessteg. I det här avsnittet förklaras när och hur du gör dessa justeringar.
När det behövs konfiguration av arbetskatalogen
Kommandot azd pipeline config genererar ett GitHub åtgärdsarbetsflöde som förutsätter att ditt Aspire AppHost-projekt finns i rotkatalogen på lagringsplatsen. Men i många verkliga scenarier, särskilt när du lägger Aspire till i befintliga program, kan AppHost-projektet vara i en underkatalog.
Om lagringsplatsens struktur till exempel ser ut så här:
└───📂 MyAspireApp
├───📂 MyAspireApp.ApiService
├───📂 MyAspireApp.AppHost
│ ├─── MyAspireApp.AppHost.csproj
│ └─── AppHost.cs
├───📂 MyAspireApp.Web
└─── MyAspireApp.sln
De genererade arbetsflödesstegen för Etableringsinfrastruktur och Distribuera program måste köras från MyAspireApp.AppHost katalogen, inte från lagringsplatsens rot.
GitHub Uppdatera arbetsflödet Åtgärder
När du har kört azd pipeline configundersöker du den genererade arbetsflödesfilen i .github/workflows/azure-dev.yml. Leta efter steg som kör azd kommandon och lägg till parametern working-directory efter behov.
Här är ett exempel på de ursprungliga genererade stegen:
- name: Provision Infrastructure
run: azd provision --no-prompt
env:
AZURE_ENV_NAME: ${{ vars.AZURE_ENV_NAME }}
AZURE_LOCATION: ${{ vars.AZURE_LOCATION }}
AZURE_SUBSCRIPTION_ID: ${{ vars.AZURE_SUBSCRIPTION_ID }}
- name: Deploy Application
run: azd deploy --no-prompt
env:
AZURE_ENV_NAME: ${{ vars.AZURE_ENV_NAME }}
AZURE_LOCATION: ${{ vars.AZURE_LOCATION }}
AZURE_SUBSCRIPTION_ID: ${{ vars.AZURE_SUBSCRIPTION_ID }}
Uppdatera de här stegen så att parametern inkluderas working-directory :
- name: Provision Infrastructure
run: azd provision --no-prompt
working-directory: ./MyAspireApp.AppHost
env:
AZURE_ENV_NAME: ${{ vars.AZURE_ENV_NAME }}
AZURE_LOCATION: ${{ vars.AZURE_LOCATION }}
AZURE_SUBSCRIPTION_ID: ${{ vars.AZURE_SUBSCRIPTION_ID }}
- name: Deploy Application
run: azd deploy --no-prompt
working-directory: ./MyAspireApp.AppHost
env:
AZURE_ENV_NAME: ${{ vars.AZURE_ENV_NAME }}
AZURE_LOCATION: ${{ vars.AZURE_LOCATION }}
AZURE_SUBSCRIPTION_ID: ${{ vars.AZURE_SUBSCRIPTION_ID }}
Hitta rätt arbetskatalog
Arbetskatalogen ska peka på mappen som innehåller ditt Aspire AppHost-projekt (projektet som innehåller filen azure.yaml som genereras av azd init). Du kan identifiera den här katalogen genom att:
- Leta efter projektet med paketreferensen
Aspire.AppHosti filen.csproj. - Hitta katalogen som innehåller filen azure.yaml .
- Leta upp projektet som refereras till i din lösning som samordnar andra tjänster.
Anmärkning
Vissa azd kommandon, till exempel azd init under pipelinekonfigurationen, kan också behöva parametern working-directory om de inte körs från AppHost-projektkatalogen.
Skapa Azure DevOps-repository och pipeline
Viktigt!
Som du nämnde i förhandskraven måste du skapa en Azure DevOps-organisation eller välja en befintlig organisation för att slutföra stegen framåt. Du måste också skapa en personlig åtkomsttoken (PAT) med de behörigheter som anges i förhandskraven.
Med Azure Developer CLI kan du automatiskt skapa pipelines med rätt konfigurationer och behörigheter för att etablera och distribuera resurser till Azure.
azd kan också skapa en Azure Pipelines-lagringsplats för din app om den inte redan finns.
Kör kommandot
azd pipeline configför att konfigurera distributionspipelinen och ansluta den på ett säkert sätt till Azure. Inkludera alternativet--provider azdoatt använda Azure Pipelines i stället för standardkonfigurationen GitHub Actions.azd pipeline config --provider azdoViktigt!
Innan du kör
azd pipeline configkontrollerar du att du har körtazd initför att initiera projektet. Om du stöter på fel som "inget projekt finns" under pipelinekörningen kan du läsa felsökningsavsnittet för lösningar.Välj den prenumeration som appresurserna ska etableras och distribueras till.
Välj platsen Azure som ska användas för resurserna.
Klistra in den personliga åtkomsttoken som du skapade tidigare.
Ange det Azure DevOps-organisationsnamn som du skapade eller valde.
När du uppmanas att skapa en ny lagringsplats i den aktuella katalogen anger du och och trycker på Enter.
När du uppmanas att konfigurera git-fjärr, välj Skapa ett nytt Azure DevOps-projekt.
Ange ett unikt namn som du väljer för den nya lagringsplatsen, till exempel
aspireazd.azdskapar en ny lagringsplats i Azure Repos och konfigurerar den med nödvändiga hemligheter som krävs för att autentisera till Azure.Ange y för att fortsätta när
azduppmanar dig att checka in och push-överföra dina lokala ändringar för att starta den konfigurerade pipelinen.
Utforska pipelinen och den implementerade appen
Navigera till din nya Azure-pipeline genom att använda statuslänken som skapades av
azd.Välj den slutförda pipelinekörningen för att visa sammanfattningen.
Välj jobblänken längst ned i vyn för att gå till jobbinformationen.
På sidan med jobbinformation visas status för alla enskilda faser. Välj Etablera infrastruktur för att visa loggarna för den fasen, som beskriver alla etableringssteg som slutförts av
azd. Längst ned i loggarna noterar du det slutliga statusmeddelandet och länkar till den etablerade Azure resursgruppen.Välj länken längst ned i utdata från provisioneringen för att navigera till den nya Azure resursgrupp.
Anmärkning
Du kan också navigera direkt till den nya resursgruppen genom att söka efter den i Azure-portalen. Resursgruppens namn kommer att vara det miljönamn du angav för
azdmed prefixetrg-.Välj webfrontend containerapp, som är värd för den offentliga delen av webbplatsen.
På sidan webfrontend information väljer du länken program-URL för att öppna webbplatsen i webbläsaren.
Viktigt!
Om du får ett 403 Forbidden fel när du visar webbplatsen i webbläsaren kontrollerar du att ingressinställningarna är korrekt konfigurerade. På sidan webfrontend app i Azure Portal går du till Ingress på den vänstra navigeringspanelen. Kontrollera att inkommande trafik är inställd på acceptera trafik från vilken plats som helst och spara ändringarna.
Grattis! Du har framgångsrikt distribuerat ett Aspire-projekt med hjälp av Azure Developer CLI och Azure pipelines.
Felsöka Azure Utplacering av DevOps-pipeline
Det här avsnittet beskriver vanliga problem som kan uppstå när du distribuerar Aspire projekt med DevOps-pipelines Azure .
FEL: det finns inget projekt. för att skapa ett nytt projekt kör du azd init
Problem: Under etableringssteget i DevOps-pipelinen Azure visas felmeddelandet:
ERROR: no project exists; to create a new project, run azd init
Orsak: Det här felet beror på att azd init-kommandot genererar filer (azure.yaml och .azure-mappen) som vanligtvis inte läggs till i ditt repository. När pipelinen körs i en ren miljö finns inte dessa filer, vilket gör azd att kommandona misslyckas.
Lösning: Det finns flera sätt att lösa problemet:
Alternativ 1: Kör azd init i pipelinen (rekommenderas)
Lägg till ett azd init steg i Azure DevOps-pipelinen före försörjningssteget. Du kan använda flaggorna --from-code och --no-prompt för att köra kommandot icke-interaktivt:
- task: AzureCLI@2
displayName: 'Initialize Azure Developer CLI'
inputs:
azureSubscription: '$(AZURE_SERVICE_CONNECTION)'
scriptType: 'bash'
scriptLocation: 'inlineScript'
inlineScript: |
azd init --from-code --no-prompt
azd env new $(AZURE_ENV_NAME) --location $(AZURE_LOCATION) --subscription $(AZURE_SUBSCRIPTION_ID)
Anmärkning
Om du får frågor även med --no-promptkan du prova att köra azd init och azd env new som separata steg, eller använda miljövariabler för att ge svar på eventuella frågor. Flaggan --from-code instruerar azd att använda den befintliga koden i den aktuella katalogen i stället för att skapa ett nytt projekt från en mall.
Se till att definiera följande variabler i pipelinen:
-
AZURE_ENV_NAME: Ditt miljönamn (till exempeldevellerprod). -
AZURE_LOCATION: Din Azure region (till exempeleastus2). -
AZURE_SUBSCRIPTION_ID: Ditt prenumerations-ID Azure .
Alternativ 2: Committa nödvändiga filer till ditt källförråd
Om du föredrar att spara de genererade filerna i ditt arkiv:
- Kör
azd initlokalt i projektkatalogen. - Lägg till den genererade
azure.yaml-filen till ditt arkiv. - Du kan valfritt lägga till mappen i
.azure-lagringsplatsen om du vill bevara miljöspecifika inställningar.
Anmärkning
Mappen .azure innehåller miljöspecifik konfiguration som kan innehålla känslig information. Granska innehållet noggrant innan du lägger till det i din repository.
Alternativ 3: Använd azd pipeline-konfiguration med rätt initiering
Se till att du kör azd pipeline config --provider azdo efter att du framgångsrikt har kört azd init lokalt. Det här kommandot bör konfigurera pipelinen med rätt konfiguration som hanterar initieringen automatiskt.
Om du fortsätter att uppleva problem kontrollerar du att:
- Projektstrukturen matchar vad som
azdförväntas för Aspire projekt. - Du kör kommandona från rätt katalog (vanligtvis där
.slnfilen finns). - Din Azure DevOps-tjänstanslutning har de behörigheter som krävs för etablering av resurser.
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.