Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Met de Azure Developer CLI (azd) kunt u Aspire projecten implementeren met behulp van GitHub Actions of Azure Devops-pijplijnen door automatisch de vereiste verificatie- en omgevingsinstellingen te configureren. In dit artikel wordt u begeleid bij het maken en implementeren van een Aspire project op Azure Container Apps met behulp van azd. U leert de volgende concepten:
- Ontdekken hoe
azdintegratie werkt met Aspire projecten - Een DevOps-opslagplaats GitHub of Azure maken en configureren voor een Aspire project met behulp van
azd - Bewaken en verkennen van de werkstroom voor GitHub-acties, de Azure DevOps-pijplijnuitvoeringen en de Azure-implementaties.
Vereiste voorwaarden
Om met Aspire te werken, moet u het volgende lokaal geïnstalleerd hebben:
-
.NET 8,0 of .NET 9,0.
- Aspire Vanaf 9.4 .NET wordt 10 Preview 5 of hoger ondersteund.
- Een OCI-compatibele containerruntime, zoals:
- Docker Desktop of Podman. Voor meer informatie, zie Container runtime.
- Een IDE (Integrated Developer Environment) of code-editor, zoals:
- Visual Studio 2022 versie 17.9 of hoger (optioneel)
-
Visual Studio Code (optioneel)
- C# Dev Kit: extensie- (optioneel)
- JetBrains Rider met Aspire plugin (optioneel)
Zie setup en hulpprogramma's en SDK voor meer informatieAspire.Aspire
- Een Azure DevOps-organisatie maken of een bestaande organisatie kiezen
-
Maak een Azure DevOps Personal Access Token (PAT) en sla het op voor later gebruik. Configureer het token met de volgende machtigingen:
- Agentpools (lezen, beheren)
- Compileren (lezen en uitvoeren)
- Code (volledig)
- Het project en team (lezen, schrijven en beheren)
- Release (lezen, schrijven, uitvoeren en beheren)
- Serviceverbindingen (lezen, query's uitvoeren en beheren)
U moet ook versie 1.5.1 of hoger van de Azure Developer CLIlokaal geïnstalleerd hebben. Algemene installatieopties zijn onder andere:
Aspire Een oplossing maken
In dit artikel wordt ervan uitgegaan dat u een Aspire oplossing hebt gemaakt op basis van de Aspire starterstoepassingssjabloon . Zie Quickstart: Uw eerste Aspire app bouwen voor meer informatie.
De sjabloon initialiseren
Open een nieuw terminalvenster en
cdga naar de map van uw Aspire oplossing.Voer de opdracht
azd inituit om uw project te initialiseren metazd, waarmee de lokale mapstructuur wordt gecontroleerd en het type app wordt bepaald.azd initSelecteer Code gebruiken in de huidige map wanneer
azdu wordt gevraagd om drie opties voor app-initialisatie.? 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 projectNadat u de map hebt gescand,
azdwordt u gevraagd om te bevestigen dat het juiste AspireAppHost-project is gevonden. Selecteer de optie Bevestigen en ga verder met het initialiseren van mijn app optie.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 exitVoer een omgevingsnaam in die wordt gebruikt om ingerichte resources in Azure een naam te geven en verschillende omgevingen zoals
devenprodte beheren.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 genereert een aantal bestanden en plaatst deze in de werkmap. Deze bestanden zijn:
- azure.yaml: beschrijft de services van de app, zoals Aspire AppHost-project, en wijst deze toe aan Azure resources.
-
.azure/config.json: configuratiebestand dat
azdinformeert wat de huidige actieve omgeving is. - .azure/aspireazddev/.env: Bevat omgevingsspecifieke overschrijvingen.
De GitHub opslagplaats en pijplijn maken
Met de Azure Developer CLI kunt u automatisch CI/CD-pijplijnen maken met de juiste configuraties en machtigingen voor het inrichten en implementeren van resources in Azure.
azd kunt ook een GitHub opslagplaats voor uw app maken als deze nog niet bestaat.
Voer de opdracht
azd pipeline configuit om uw implementatiepijplijn te configureren en deze veilig te verbinden met Azure:azd pipeline configSelecteer het abonnement waarnaar u de app-resources wilt inrichten en implementeren.
Selecteer de Azure locatie die u voor de resources wilt gebruiken.
Wanneer u wordt gevraagd of u een nieuwe Git-opslagplaats in de map wilt maken, voert u y- in en drukt u op Enter-.
Opmerking
Het maken van een GitHub opslagplaats vereist dat u bent aangemeld bij GitHub. Er zijn enkele selecties die variëren op basis van uw voorkeuren. Nadat u zich hebt aangemeld, wordt u gevraagd een nieuwe opslagplaats te maken in de huidige map.
Selecteer Een nieuwe privé-GitHub opslagplaats maken om de externe git te configureren.
Voer een naam van uw keuze in voor de nieuwe GitHub opslagplaats of druk op Enter om de standaardnaam te gebruiken.
azdmaakt een nieuwe opslagplaats in GitHub en configureert deze met de benodigde geheimen die nodig zijn voor verificatie bij Azure.
Voer y- in om door te gaan wanneer
azdu vraagt om uw lokale wijzigingen door te voeren en te pushen om de geconfigureerde pijplijn te starten.
De werkstroom en implementatie van GitHub Acties verkennen
Navigeer naar uw nieuwe GitHub-opslagplaats met de link die wordt weergegeven door
azd.Selecteer het tabblad Acties om de werkstromen van de opslagplaats weer te geven. U ziet dat de nieuwe werkstroom wordt uitgevoerd of al is voltooid. Selecteer de werkstroom om de taakstappen en details in de logboeken van de uitvoering weer te geven. U kunt bijvoorbeeld stappen zoals De toepassing implementeren uitvouwen om de details van de voltooide actie weer te geven.
Kies Toepassing implementeren om de logs voor die stap uit te breiden. Er moeten twee eindpunt-URL's worden weergegeven voor de
apiserviceenwebfrontend. Selecteer een van deze koppelingen om ze te openen in een ander browsertabblad en verken de geïmplementeerde toepassing.
Gefeliciteerd! U hebt een Aspire project geïmplementeerd met behulp van de Azure Developer CLI en GitHub acties.
Werkmap configureren voor oplossingen voor meerdere projecten
Wanneer u Acties toevoegt GitHub aan een bestaande oplossing voor meerdere projecten Aspire waarbij het AppHost-project zich niet in de hoofdmap bevindt, moet u mogelijk de working-directory parameter configureren voor bepaalde werkstroomstappen. In deze sectie wordt uitgelegd wanneer en hoe u deze aanpassingen kunt aanbrengen.
Wanneer de configuratie van de werkmap nodig is
Met de azd pipeline config opdracht wordt een GitHub werkstroom acties gegenereerd die ervan uitgaat dat uw Aspire AppHost-project zich in de hoofdmap van uw opslagplaats bevindt. In veel praktijkscenario's, met name bij het toevoegen Aspire aan bestaande toepassingen, kan het AppHost-project zich echter in een submap bevinden.
Als uw opslagplaatsstructuur er bijvoorbeeld als volgt uitziet:
└───📂 MyAspireApp
├───📂 MyAspireApp.ApiService
├───📂 MyAspireApp.AppHost
│ ├─── MyAspireApp.AppHost.csproj
│ └─── AppHost.cs
├───📂 MyAspireApp.Web
└─── MyAspireApp.sln
De gegenereerde werkstroomstappen voor de inrichtingsinfrastructuur en de implementatietoepassing moeten worden uitgevoerd vanuit de MyAspireApp.AppHost map, niet vanuit de hoofdmap van de opslagplaats.
De Actiewerkstroom bijwerken
Nadat azd pipeline config is uitgevoerd, onderzoekt u het gegenereerde werkstroombestand in .github/workflows/azure-dev.yml. Zoek naar stappen die opdrachten uitvoeren azd en voeg indien nodig de working-directory parameter toe.
Hier volgt een voorbeeld van de oorspronkelijke gegenereerde stappen:
- 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 }}
Werk deze stappen bij om de working-directory parameter op te nemen:
- 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 }}
De juiste werkmap zoeken
De werkmap moet verwijzen naar de map met uw Aspire AppHost-project (het project dat het bestand azure.yaml bevat dat is gegenereerd door azd init). U kunt deze map identificeren door:
- Zoek naar het project dat de
Aspire.AppHostpakketreferentie in zijn.csprojbestand heeft. - Zoek de map met het bestand azure.yaml .
- Zoek het project waarnaar wordt verwezen in uw oplossing waarmee andere services worden ingedeeld.
Opmerking
Sommige azd opdrachten, zoals azd init tijdens het instellen van de pijplijn, hebben mogelijk ook de working-directory parameter nodig als ze niet worden uitgevoerd vanuit de AppHost-projectmap.
De Azure DevOps-opslagplaats en -pijplijn maken
Belangrijk
Zoals vermeld in de vereisten, moet u een Azure DevOps-organisatie maken of een bestaande organisatie selecteren om de stappen vooruit te voltooien. Je moet ook een persoonlijke toegangstoken (PAT) maken met de machtigingen zoals vermeld in de vereisten.
Met de Azure Developer CLI kunt u automatisch pijplijnen maken met de juiste configuraties en machtigingen voor het inrichten en implementeren van resources voor Azure.
azd kunt ook een Azure Pipelines-opslagplaats voor uw app maken als deze nog niet bestaat.
Voer de opdracht
azd pipeline configuit om uw implementatiepijplijn te configureren en deze veilig te verbinden met Azure. Neem de--provider azdooptie op om Azure Pijplijnen te gebruiken in plaats van de standaardconfiguratie GitHub Acties.azd pipeline config --provider azdoBelangrijk
Voordat u
azd pipeline configuitvoert, zorg ervoor dat uazd initmet succes hebt uitgevoerd om uw project te initialiseren. Als er fouten optreden zoals 'geen project bestaat' tijdens het uitvoeren van de pijplijn, raadpleegt u de sectie probleemoplossing voor oplossingen.Selecteer het abonnement waarnaar u de app-resources wilt inrichten en implementeren.
Selecteer de Azure locatie die u voor de resources wilt gebruiken.
Plak het persoonlijke toegangstoken dat u eerder hebt gemaakt.
Voer de Azure DevOps-organisatienaam in die u hebt gemaakt of geselecteerd.
Wanneer u wordt gevraagd om een nieuwe opslagplaats in de huidige map te maken, voert u y- in en drukt u op Enter-.
Wanneer u wordt gevraagd om de externe git te configureren, selecteert u Een nieuw Azure DevOps-project maken.
Voer een unieke naam van uw keuze in voor de nieuwe opslagplaats, zoals
aspireazd.azdmaakt een nieuwe repository aan in Azure Repos en configureert deze met de benodigde gegevens die nodig zijn voor authenticatie bij Azure.Voer y- in om door te gaan wanneer
azdu vraagt om uw lokale wijzigingen door te voeren en te pushen om de geconfigureerde pijplijn te starten.
De pijplijn en de geïmplementeerde app verkennen
Navigeer naar de nieuwe Azure-pijplijn met de statuskoppeling verstrekt door
azd.Selecteer de voltooide pijplijnuitvoering om de samenvatting weer te geven.
Selecteer de taakkoppeling onderaan de weergave om naar de taakdetails te gaan.
Op de pagina met taakdetails ziet u de status van alle afzonderlijke fasen. Selecteer Infrastructuur inrichten om de logboeken voor die fase weer te geven, waarin alle inrichtingsstappen worden beschreven die zijn voltooid door
azd. Noteer onder aan de logboeken het laatste statusbericht en maak een koppeling naar de ingerichte Azure resourcegroep.Selecteer de link onderaan de logboeken van de inrichtingsuitvoer om naar de nieuwe Azure resourcegroep te gaan.
Opmerking
U kunt ook rechtstreeks naar uw nieuwe resourcegroep navigeren door ernaar te zoeken in de Azure Portal. De naam van uw resourcegroep is de omgevingsnaam die u hebt opgegeven voor
azd, voorafgegaan doorrg-.Selecteer de webfrontend container-app, die als host fungeert voor het openbare gedeelte van uw site.
Selecteer op de pagina webfrontend details de toepassings-URL koppeling om uw site in de browser te openen.
Belangrijk
Als er een 403 Forbidden fout optreedt bij het weergeven van uw site in de browser, controleert u of de instellingen voor inkomend verkeer correct zijn geconfigureerd. Ga op de webfrontend app pagina in het Azure-Portaal naar Ingress in de linker navigatiebalk. Zorg ervoor dat inkomend verkeer is ingesteld op Verkeer vanaf elke locatie accepteren en uw wijzigingen opslaan.
Gefeliciteerd! U hebt een Aspire project geïmplementeerd met behulp van de Azure Developer CLI en Azure pijplijnen.
Problemen met devOps-pijplijnimplementatie oplossen Azure
In deze sectie worden veelvoorkomende problemen behandeld die kunnen optreden bij het implementeren van Aspire projecten met behulp van Azure DevOps-pijplijnen.
FOUT: er bestaat geen project; om een nieuw project te maken, voert u azd init uit
Probleem: Tijdens de inrichtingsstap van uw Azure DevOps-pijplijn treedt het foutbericht op:
ERROR: no project exists; to create a new project, run azd init
Oorzaak: Deze fout treedt op omdat met de azd init opdracht bestanden (azure.yaml en de .azure map) worden gegenereerd die doorgaans niet worden doorgevoerd in uw opslagplaats. Wanneer de pijplijn wordt uitgevoerd in een schone omgeving, bestaan deze bestanden niet, waardoor azd opdrachten mislukken.
Oplossing: Er zijn verschillende benaderingen om dit probleem op te lossen:
Optie 1: Voer azd init uit in uw pijplijn (aanbevolen)
Voeg vóór de inrichtingsstap een azd init stap toe aan uw Azure DevOps-pijplijn. U kunt de --from-code opdracht en --no-prompt vlaggen gebruiken om de opdracht niet interactief uit te voeren:
- 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)
Opmerking
Als u zelfs prompts tegenkomt met --no-prompt, probeer dan azd init en azd env new als afzonderlijke stappen uit te voeren, of gebruik omgevingsvariabelen om antwoorden te geven op eventuele prompts. De --from-code vlag vertelt azd dat de bestaande code in de huidige map moet worden gebruikt in plaats van een nieuw project te maken op basis van een sjabloon.
Zorg ervoor dat u de volgende variabelen in uw pijplijn definieert:
-
AZURE_ENV_NAME: uw omgevingsnaam (bijvoorbeelddevofprod). -
AZURE_LOCATION: Uw Azure regio (bijvoorbeeldeastus2). -
AZURE_SUBSCRIPTION_ID: uw abonnements-id Azure .
Optie 2: Vereiste bestanden doorvoeren in uw opslagplaats
Als u de gegenereerde bestanden liever doorvoert in uw opslagplaats:
- Voer
azd initlokaal uit in uw projectmap. - Voeg het gegenereerde
azure.yamlbestand toe aan uw opslagplaats. - Voeg desgewenst de
.azuremap toe aan uw opslagplaats als u omgevingsspecifieke instellingen wilt behouden.
Opmerking
De .azure map bevat omgevingsspecifieke configuratie die mogelijk gevoelige informatie bevat. Controleer de inhoud zorgvuldig voordat u commit naar uw repository.
Optie 3: azd pipeline-configuratie gebruiken met de juiste initialisatie
Zorg ervoor dat u azd pipeline config --provider azdo uitvoert nadat u azd init lokaal hebt uitgevoerd. Met deze opdracht moet u de pijplijn instellen met de juiste configuratie waarmee de initialisatie automatisch wordt verwerkt.
Als u problemen blijft ondervinden, controleert u of:
- Uw projectstructuur komt overeen met wat
azdverwacht voor Aspire projecten. - U voert de opdrachten uit vanuit de juiste map (meestal waar het
.slnbestand zich bevindt). - Uw Azure DevOps-serviceverbinding heeft de benodigde machtigingen voor het inrichten van resources.
De hulpbronnen opschonen
Voer de volgende Azure CLI-opdracht uit om de resourcegroep te verwijderen wanneer u de Azure resources die u hebt gemaakt niet meer nodig hebt. Als u de resourcegroep verwijdert, worden ook de resources in de resourcegroep verwijderd.
az group delete --name <your-resource-group-name>
Zie Resources opschonen in Azurevoor meer informatie.