Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Mit dem Azure Developer CLI (azd) können Sie Aspire Projekte mithilfe GitHub Aktionen oder Azure Devops-Pipelines bereitstellen, indem Sie die erforderlichen Authentifizierungs- und Umgebungseinstellungen automatisch konfigurieren. Dieser Artikel führt Sie durch den Prozess des Erstellens und Bereitstellens eines Aspire-Projekts auf Azure Container Apps unter Verwendung von azd. Sie lernen die folgenden Konzepte kennen:
- Erfahren Sie, wie
azddie Integration mit Aspire Projekten funktioniert - Erstellen und konfigurieren eines GitHub oder Azure DevOps-Repositorys für ein Aspire Projekt mithilfe von
azd - Überwachen und Ermitteln von GitHub Actions-Workflow- oder Azure DevOps-Pipeline-Ausführungen und Azure-Bereitstellungen
Voraussetzungen
Um mit Aspire zu arbeiten, müssen Sie Folgendes lokal installiert haben:
-
.NET 8,0 oder .NET 9,0.
- Aspire Ab 9.4 .NET wird 10 Preview 5 oder höher unterstützt.
- Eine OCI-kompatible Containerlaufzeit, z. B.:
- Docker Desktop oder Podman. Weitere Informationen finden Sie unter container runtime.
- Eine integrierte Entwicklerumgebung (Integrated Developer Environment, IDE) oder ein Code-Editor, z. B.:
- Visual Studio 2022 , Version 17.9 oder höher (optional)
-
Visual Studio Code (optional)
- C# Dev Kit: Erweiterung (Optional)
- JetBrains Rider mit Aspire Plug-In (Optional)
Weitere Informationen finden Sie unter Aspire Setup und Tooling und Aspire SDK.
- Erstellen einer Azure DevOps-Organisation oder Auswählen einer vorhandenen Organisation
-
Erstellen Sie ein Azure DevOps Personal Access Token (PAT) und speichern Sie es zur späteren Verwendung. Konfigurieren Sie das Token mit den folgenden Berechtigungen:
- Agent-Pools (Lesen, verwalten)
- Build (Lesen und Ausführen)
- Code (vollständig)
- Projekt und Team (Lesen, Schreiben und Verwalten)
- Freigabe (Lesen, Schreiben, Ausführen und Verwalten)
- Dienstverbindungen (Lesen, Abfragen und Verwalten)
Sie müssen auch Azure Developer CLIlokal installiert (Version 1.5.1 oder höher) haben. Zu den allgemeinen Installationsoptionen gehören die folgenden:
Erstellen einer Aspire Lösung
Als Ausgangspunkt geht in diesem Artikel davon aus, dass Sie eine Aspire Lösung aus der Aspire Vorlage "Startanwendung " erstellt haben. Weitere Informationen finden Sie in der Schnellstartanleitung: Erstellen Ihrer ersten Aspire App.
Initialisieren der Vorlage
Öffnen Sie ein neues Terminalfenster und navigieren Sie zu dem Verzeichnis Ihrer
cd-Lösung.Führen Sie den befehl
azd initaus, um Ihr Projekt mitazdzu initialisieren, wodurch die lokale Verzeichnisstruktur überprüft und der App-Typ bestimmt wird.azd initWeitere Informationen zum
azd init-Befehl finden Sie unter azd init.Wählen Sie "Code im aktuellen Verzeichnis verwenden" aus, wenn
azdIhnen drei Optionen zur App-Initialisierung angeboten werden.? 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 projectNach dem Scannen des Verzeichnisses werden Sie aufgefordert, zu bestätigen,
azddass es das richtige AspireAppHost-Projekt gefunden hat. Wählen Sie die Option Bestätigen und mit der Initialisierung meiner App fortfahren.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 exitGeben Sie einen Umgebungsnamen ein, der verwendet wird, um bereitgestellte Ressourcen in Azure zu benennen und verschiedene Umgebungen wie
devundprodzu verwalten.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 generiert eine Reihe von Dateien und platziert sie in das Arbeitsverzeichnis. Diese Dateien sind:
- azure.yaml: Beschreibt die Dienste der App, z. B. Aspire AppHost-Projekt, und ordnet sie Azure Ressourcen zu.
-
.azure/config.json: Konfigurationsdatei, die
azdinformiert, was die aktuelle aktive Umgebung ist. - .azure/aspireazddev/.env: Enthält umgebungsspezifische Überschreibungen.
Erstellen Sie das GitHub Repository und die Pipeline.
Mit Azure Developer CLI können Sie automatisch CI/CD-Pipelines mit den richtigen Konfigurationen und Berechtigungen erstellen, um Ressourcen für Azure bereitzustellen und zu verteilen.
azd kann auch ein GitHub-Repository für Ihre App erstellen, falls es noch nicht existiert.
Führen Sie den Befehl
azd pipeline configaus, um Die Bereitstellungspipeline zu konfigurieren und sicher mit Azurezu verbinden:azd pipeline configWählen Sie das Abonnement aus, in dem die Ressourcen der App bereitgestellt werden sollen.
Wählen Sie den Azure Speicherort aus, der für die Ressourcen verwendet werden soll.
Wenn Sie gefragt werden, ob Sie ein neues Git-Repository im Verzeichnis erstellen möchten, geben Sie y ein und drücken Eingabe.
Hinweis
Zum Erstellen eines GitHub Repositorys mussten Sie bei GitHubangemeldet sein. Es gibt einige Auswahlmöglichkeiten, die je nach Ihren Vorlieben variieren. Nach der Anmeldung werden Sie aufgefordert, ein neues Repository im aktuellen Verzeichnis zu erstellen.
Wählen Sie Erstellen eines neuen privaten GitHub Repositorys aus, um die Git-Remote zu konfigurieren.
Geben Sie einen Namen Ihrer Wahl für das neue GitHub Repository ein, oder drücken Sie die EINGABETASTE, um den Standardnamen zu verwenden.
azderstellt ein neues Repository in GitHub und konfiguriert es mit den erforderlichen Geheimschlüsseln, die für die Authentifizierung bei Azureerforderlich sind.
Geben Sie und ein, um fortzufahren, wenn
azdSie auffordert, einen Commit auszuführen und Ihre lokalen Änderungen zu übertragen, um die konfigurierte Pipeline zu starten.
Entdecken des GitHub-Aktions-Workflows und der Bereitstellung
Navigieren Sie mittels des Links, den GitHubausgibt, zu Ihrem neuen
azd-Repository.Wählen Sie die Registerkarte Aktionen, um die Workflows für das Repository zu sehen. Sie sollten sehen, dass der neue Workflow entweder ausgeführt wird oder bereits abgeschlossen ist. Wählen Sie den Workflow aus, um die Schritte des Jobs und die Details in den Protokollen des ausgeführten Vorgangs zu sehen. Sie können beispielsweise Die Schritte wie " Anwendung bereitstellen" erweitern, um die Details der abgeschlossenen Aktion anzuzeigen.
GitHub-Aktions-Workflows.
Wählen Sie Anwendungsbereitstellung aus, um die Protokolle für diesen Schritt zu erweitern. Sie sollten zwei Endpunkt-URLs für die
apiserviceundwebfrontendsehen. Wählen Sie einen dieser Links, um sie in einer anderen Registerkarte des Browsers zu öffnen und die bereitgestellte Anwendung zu entdecken.
Glückwunsch! Sie haben ein Aspire Projekt mit den Azure Developer CLI und GitHub Aktionen erfolgreich bereitgestellt.
Konfigurieren des Arbeitsverzeichnisses für Multi-Projekt-Lösungen
Wenn Sie GitHubAktionen zu einer vorhandenen AspireProjektmappe mit mehreren Projekten hinzufügen, bei denen sich das AppHost-Projekt nicht im Stammverzeichnis befindet, müssen Sie den working-directoryParameter möglicherweise für bestimmte Workflow-Schritte konfigurieren. In diesem Abschnitt wird erläutert, wann und wie Diese Anpassungen vorgenommen werden.
Wenn die Arbeitsverzeichniskonfiguration erforderlich ist
Der azd pipeline config Befehl generiert einen GitHub Actions-Workflow, der davon ausgeht, dass sich Ihr Aspire AppHost-Projekt im Stammverzeichnis Ihres Repositorys befindet. In vielen realen Szenarien, insbesondere beim Hinzufügen zu Aspire vorhandenen Anwendungen, befindet sich das AppHost-Projekt möglicherweise in einem Unterverzeichnis.
Wenn Ihre Repositorystruktur z. B. wie folgt aussieht:
└───📂 MyAspireApp
├───📂 MyAspireApp.ApiService
├───📂 MyAspireApp.AppHost
│ ├─── MyAspireApp.AppHost.csproj
│ └─── AppHost.cs
├───📂 MyAspireApp.Web
└─── MyAspireApp.sln
Die generierten Workflowschritte für die Bereitstellungsinfrastruktur und die Bereitstellungsanwendung müssen aus dem MyAspireApp.AppHost Verzeichnis und nicht aus dem Repositorystamm ausgeführt werden.
Aktualisieren des GitHub Aktions-Workflows
Überprüfen Sie nach der Ausführung azd pipeline configdie generierte Workflowdatei in .github/workflows/azure-dev.yml. Suchen Sie nach Schritten zum Ausführen von azd Befehlen, und fügen Sie den working-directory Parameter nach Bedarf hinzu.
Hier ist ein Beispiel für die ursprünglich generierten Schritte:
- 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 }}
Aktualisieren Sie die folgenden Schritte, um den Parameter einzuschließen 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 }}
Suchen des richtigen Arbeitsverzeichnisses
Das Arbeitsverzeichnis sollte auf den Ordner verweisen, der Ihr Aspire AppHost-Projekt enthält (das Projekt, das die von azd init generierte Datei enthält). Sie können dieses Verzeichnis anhand der folgenden Aktionen identifizieren:
- Suchen Sie nach dem Projekt mit dem Paketverweis in der
Aspire.AppHost.csprojDatei. - Suchen Sie das Verzeichnis, das die Datei "azure.yaml " enthält.
- Suchen Sie das Projekt, auf das in Ihrer Lösung verwiesen wird, das andere Dienste koordiniert.
Hinweis
Einige azd Befehle, wie z. B. azd init während der Einrichtung der Pipeline, benötigen möglicherweise auch den Parameter working-directory, wenn sie nicht aus dem AppHost-Projektverzeichnis ausgeführt werden.
Erstellen Sie das Azure DevOps-Repository und die Pipeline
Von Bedeutung
Wie in den Voraussetzungen erwähnt, müssen Sie eine Azure-DevOps Organisation erstellen oder eine bestehende Organisation auswählen, um die nächsten Schritte abzuschließen. Außerdem müssen Sie ein persönliches Zugriffstoken (PAT) mit den in den Voraussetzungen aufgeführten Berechtigungen erstellen.
Mit Azure Developer CLI können Sie automatisch Pipelines mit den richtigen Konfigurationen und Berechtigungen erstellen, um Ressourcen für Azure bereitzustellen und zu verteilen.
azd kann auch ein Azure Pipelines-Repository für Ihre App erstellen, sofern es noch nicht vorhanden ist.
Führen Sie den Befehl
azd pipeline configaus, um die Bereitstellungspipeline zu konfigurieren und sie sicher mit Azurezu verbinden. Fügen Sie die Option--provider azdoein, um Azure-Pipelines anstelle der Standardkonfiguration GitHub-Aktionen zu verwenden.azd pipeline config --provider azdoVon Bedeutung
Stellen Sie vor dem Ausführen von
azd pipeline configsicher, dass Sieazd initerfolgreich ausgeführt haben, um Ihr Projekt zu initialisieren. Wenn während der Pipelineausführung Fehler wie "Kein Projekt vorhanden" auftreten, sehen Sie im Abschnitt zur Problembehandlung nach Lösungen.Wählen Sie das Abonnement aus, in dem die Ressourcen der App bereitgestellt werden sollen.
Wählen Sie den Azure Speicherort aus, der für die Ressourcen verwendet werden soll.
Fügen Sie das zuvor erstellte persönliche Zugriffstoken ein.
Geben Sie den namen der Azure DevOps-Organisation ein, den Sie erstellt oder ausgewählt haben.
Wenn Sie aufgefordert werden, ein neues Repository im aktuellen Verzeichnis zu erstellen, geben Sie y ein und drücken Sie Eingabe.
Wenn Sie aufgefordert werden, die Git-Remote zu konfigurieren, wählen Sie Erstellen eines neuen Azure DevOps-Projektsaus.
Geben Sie einen eindeutigen Namen Ihrer Wahl für das neue Repository ein, z. B.
aspireazd.azderstellt ein neues Repository in Azure Repos und konfiguriert es mit den erforderlichen geheimen Schlüsseln, die für die Authentifizierung bei Azureerforderlich sind.Geben Sie und ein, um fortzufahren, wenn
azdSie auffordert, einen Commit auszuführen und Ihre lokalen Änderungen zu übertragen, um die konfigurierte Pipeline zu starten.
Entdecken der Pipeline und der bereitgestellte App
Navigieren Sie zu Ihrer neuen Azure-Pipeline über den von
azdausgegebenen Link zum Status.Wählen Sie die ausgeführte Pipeline aus, um die Zusammenfassung anzuzeigen.
Wählen Sie den Joblink am unteren Rand der Ansicht aus, um zu den Jobdetails zu gelangen.
Auf der Seite "Auftragsdetails" wird der Status aller einzelnen Phasen angezeigt. Wählen Sie Infrastruktur bereitstellen, um die Protokolle für diese Phase anzuzeigen, in denen alle von
azdabgeschlossenen Schritte der Bereitstellung aufgeführt sind. Beachten Sie unten in den Protokollen die abschließende Nachricht über den Status und den Link zu der bereitgestellten Azure-Ressourcengruppe.Wählen Sie den Link unten in den Bereitstellungsausgabeprotokollen aus, um zur neuen Azure Ressourcengruppe zu navigieren.
Hinweis
Sie können auch direkt zu Ihrer neuen Ressourcengruppe navigieren, indem Sie im Azure Portal danach suchen. Der Name Ihrer Ressourcengruppe ist der Name der Umgebung, die Sie
azdmit dem Präfixrg-angegeben haben.Wählen Sie die webfrontend Container-App aus, die den öffentlich zugänglichen Teil Ihrer Website hosten soll.
Wählen Sie auf der webfrontend Detailseite den Link Anwendungs-URL aus, um Ihre Website im Browser zu öffnen.
Von Bedeutung
Wenn beim Anzeigen Ihrer Website im Browser ein 403 Forbidden-Fehler auftritt, stellen Sie sicher, dass die Ingress-Einstellungen ordnungsgemäß konfiguriert sind. Navigieren Sie auf der webfrontend App-Seite im Azure Portal zu Ingress auf der linken Navigationsleiste. Vergewissern Sie sich, dass Ingress-Datenverkehr auf Annahme von Datenverkehr von überall festgelegt ist und speichern Sie Ihre Änderungen.
Glückwunsch! Sie haben erfolgreich ein Aspire-Projekt mit den Azure Developer CLI- und Azure-Pipelines bereitgestellt.
Fehlerbehebung Azure DevOps-Pipeline Bereitstellung
In diesem Abschnitt werden häufig auftretende Probleme behandelt, die beim Bereitstellen von Aspire Projekten mithilfe von Azure DevOps-Pipelines auftreten können.
FEHLER: Es ist kein Projekt vorhanden; um ein neues Projekt zu erstellen, führen Sie azd init aus
Problem: Während des Bereitstellungsschritts Ihrer Azure DevOps-Pipeline tritt die Fehlermeldung auf:
ERROR: no project exists; to create a new project, run azd init
Ursache: Dieser Fehler tritt auf, da der azd init Befehl Dateien (azure.yaml und den Ordner) generiert, die .azure in der Regel nicht an Ihr Repository gebunden sind. Wenn die Pipeline in einer sauberen Umgebung ausgeführt wird, sind diese Dateien nicht vorhanden, wodurch azd Befehle fehlschlagen.
Lösung: Es gibt mehrere Ansätze, um dieses Problem zu beheben:
Option 1: Ausführen von azd init in Ihrer Pipeline (empfohlen)
Fügen Sie Ihrer azd init DevOps-Pipeline vor dem Bereitstellungsschritt einen Azure Schritt hinzu. Sie können die --from-code- und --no-prompt-Flags verwenden, um den Befehl nicht interaktiv auszuführen.
- 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)
Hinweis
Wenn Sie auch bei Aufforderungen mit --no-prompt auf Probleme stoßen, versuchen Sie, azd init und azd env new als separate Schritte auszuführen, oder verwenden Sie Umgebungsvariablen, um Antworten auf irgendwelche Eingabeaufforderungen bereitzustellen. Das --from-code Flag weist azd an, den vorhandenen Code im aktuellen Verzeichnis zu verwenden, anstatt ein neues Projekt aus einer Vorlage zu erstellen.
Stellen Sie sicher, dass Sie die folgenden Variablen in Ihrer Pipeline definieren:
-
AZURE_ENV_NAME: Ihr Umgebungsname (z. Bdev. oderprod). -
AZURE_LOCATION: Ihre Azure Region (z. Beastus2. ). -
AZURE_SUBSCRIPTION_ID: Ihre Azure Abonnement-ID.
Option 2: Committen Sie die erforderlichen Dateien in Ihr Repository
Wenn Sie die generierten Dateien lieber in Ihr Repository übernehmen möchten:
- Führen Sie
azd initlokal in Ihrem Projektverzeichnis aus. - Fügen Sie die generierte
azure.yamlDatei zu Ihrem Repository hinzu. - Fügen Sie optional den
.azureOrdner zu Ihrem Repository hinzu, wenn Sie umgebungsspezifische Einstellungen beibehalten möchten.
Hinweis
Der .azure Ordner enthält eine umgebungsspezifische Konfiguration, die vertrauliche Informationen enthalten kann. Überprüfen Sie die Inhalte sorgfältig, bevor Sie sich für Ihr Repository verpflichten.
Option 3: Verwenden der azd-Pipeline-Konfiguration mit korrekter Initialisierung
Stellen Sie sicher, dass Sie azd pipeline config --provider azdo ausführen, nachdem Sie azd init lokal erfolgreich ausgeführt haben. Dieser Befehl sollte die Pipeline mit der richtigen Konfiguration einrichten, die die Initialisierung automatisch behandelt.
Wenn weiterhin Probleme auftreten, überprüfen Sie Folgendes:
- Die Projektstruktur stimmt mit den
azdErwartungen für Aspire Projekte überein. - Sie führen die Befehle aus dem richtigen Verzeichnis aus (normalerweise wo sich Ihre
.slnDatei befindet). - Ihre Azure DevOps-Dienstverbindung verfügt über die erforderlichen Berechtigungen für die Bereitstellung von Ressourcen.
Bereinigen von Ressourcen
Führen Sie den folgenden Azure CLI-Befehl aus, um die Ressourcengruppe zu löschen, wenn Sie die von Ihnen erstellten Azure Ressourcen nicht mehr benötigen. Durch das Löschen der Ressourcengruppe werden auch die darin enthaltenen Ressourcen gelöscht.
az group delete --name <your-resource-group-name>
Weitere Informationen finden Sie unter Ressourcen bereinigen in Azure.