Machen Sie Ihr Projekt mit der Azure Developer CLI kompatibel

Azure Developer CLI (azd) ermöglicht Entwicklern das Gerüst ihrer Anwendungen für die Cloud mithilfe von Vorlagen , die auf GitHub gehostet werden. Microsoft bietet mehrere Vorlagen für die ersten Schritte. In diesem Artikel erfahren Sie, wie Sie Ihre eigene Anwendung azd kompatibel machen.

Grundlegendes zur Vorlagenarchitektur

Das folgende Diagramm bietet einen schnellen Überblick über den Prozess zum Erstellen einer azd Vorlage:

Diagram of Azure Developer CLI template workflow.

Alle azd Vorlagen haben die gleiche Dateistruktur, basierend auf azd Konventionen. Die folgende Hierarchie zeigt die Verzeichnisstruktur, die Sie in diesem Lernprogramm erstellen.

├── .azdo                                        [ Configures an Azure Pipeline ]
├── .devcontainer                                [ For DevContainer ]
├── .github                                      [ Configures a GitHub workflow ]
├── .vscode                                      [ VS Code workspace configurations ]
├── .azure                                       [ Stores Azure configurations and environment variables ]
├── infra                                        [ Contains infrastructure as code files ]
│   ├── main.bicep/main.tf                       [ Main infrastructure file ]
│   ├── main.parameters.json/main.tfvars.json    [ Parameters file ]
│   └── core/modules                             [ Contains reusable Bicep/Terraform modules ]
└── azure.yaml                                   [ Describes the app and type of Azure resources]

Initialisieren der Vorlage

Der azd init Befehl wird verwendet, um Ihre Anwendung für die Bereitstellung und Bereitstellung der App-Ressourcen in Azure zu initialisieren. Mit diesem Befehl werden Sie aufgefordert, zwischen zwei verschiedenen Workflows auszuwählen, um eine Vorlage zu initialisieren, die in den folgenden Abschnitten beschrieben ist.

  • Verwenden Sie Code im aktuellen Verzeichnis: Wählen Sie diese Option aus, um azd den Code in Ihrem Verzeichnis zu analysieren, um zu ermitteln, welche Technologien verwendet werden, z. B. die Programmiersprache, das Framework und das Datenbanksystem. azd generiert dann automatisch Vorlagenressourcen für Sie, z. B. die azure.yaml Dienstdefinitionsdatei und den infra Ordner mit Infrastruktur-as-Code-Dateien.

  • Wählen Sie eine Vorlage aus: Wählen Sie diese Option aus, um eine vorhandene Vorlage als Ausgangspunkt zu verwenden. Standardmäßig azd können Sie Vorlagen aus dem Awesome AZD-Katalog durchsuchen, aber Sie können auch Eigene Vorlagenkataloge konfigurieren. Wenn Sie eine Vorlage auswählen, werden die Ressourcen dieser Vorlage ihrem vorhandenen Projektverzeichnis hinzugefügt.

Die Details zu den einzelnen Workflows werden in den folgenden Abschnitten beschrieben.

  1. Sie können die schritte weiter mit Ihrem eigenen Projekt ausführen. Wenn Sie jedoch lieber eine Beispielanwendung verwenden möchten, klonen Sie das folgende Startrepo in ein leeres Verzeichnis auf Ihrem Computer:

    git clone https://github.com/Azure-Samples/msdocs-python-flask-webapp-quickstart
    
  2. Öffnen Sie das Befehlszeilentool ihrer Wahl im Stammverzeichnis des Projekts.

  3. Führen Sie den azd init Befehl aus, um die Vorlage zu initialisieren.

    azd init
    
  4. Wenn Sie dazu aufgefordert werden, wählen Sie die Option zum Verwenden von Code im aktuellen Verzeichnis aus. azd analysiert das Projekt und stellt eine Zusammenfassung der erkannten Dienste und empfohlenen Azure-Hostingressourcen bereit.

  5. Wählen Sie "Bestätigen" aus, und initialisieren Sie die App weiter. azd generiert die folgenden Ressourcen im Projektstammverzeichnis:

    • Eine azure.yaml Datei mit entsprechenden Dienstdefinitionen.
    • Ein infra Ordner mit Infrastruktur-as-Code-Dateien zum Bereitstellen und Bereitstellen des Projekts in Azure.
    • Ein .azure Ordner mit Umgebungsvariablen, die in einer .env Datei festgelegt sind.

    Weitere Details zu diesem Erkennungs- und Generierungsprozess finden Sie weiter unten im Artikel.

  6. Die generierten Dateien funktionieren wie für die bereitgestellte Beispiel-App und können auch für Ihre eigenen Apps verwendet werden. Bei Bedarf können die generierten Dateien entsprechend Ihren Anforderungen geändert werden. Beispielsweise müssen Sie die Infrastruktur-as-Code-Dateien im infra Ordner möglicherweise weiter ändern, wenn Ihre App auf Azure-Ressourcen basiert, die über diejenigen hinausgehen, die durch azdidentifiziert wurden.

  7. Führen Sie den azd up Befehl aus, um Ihre App in Azure bereitzustellen und bereitzustellen.

    azd up
    
  8. Wenn Sie dazu aufgefordert werden, wählen Sie das gewünschte Abonnement und den gewünschten Speicherort aus, um den Bereitstellungs- und Bereitstellungsprozess zu starten.

  9. Wenn der Vorgang abgeschlossen ist, klicken Sie auf den Link in der azd Ausgabe, um die App im Browser zu öffnen.

Erkunden der Initialisierungsschritte

Wenn Sie den Code im aktuellen Verzeichnisworkflow verwenden auswählen, analysiert der azd init Befehl Ihr Projekt und generiert code automatisch basierend auf dem, was es ermittelt. In den folgenden Abschnitten werden die Details dazu erläutert, wie dieser Prozess funktioniert und welche Technologien derzeit unterstützt werden.

Erkennung

Der azd init Befehl erkennt Projektdateien für unterstützte Sprachen, die sich in Ihrem Projektverzeichnis und unterverzeichnissen befinden. azd überprüft außerdem Paketabhängigkeiten, um Informationen zu den von Ihrer App verwendeten Webframeworks oder Datenbanken zu sammeln. Bei Bedarf können Sie die erkannten Komponenten wie in der Bestätigungszusammenfassungsaufforderung dargestellt manuell hinzufügen oder bearbeiten.

Die aktuelle Erkennungslogik lautet wie folgt:

  • Unterstützte Sprachen:
    • Python
    • JavaScript/TypeScript
    • .NET
    • Java
  • Unterstützte Datenbanken:
    • MongoDB
    • PostgreSQL
  • Für Python und JavaScript/TypeScript werden Webframeworks und Datenbanken automatisch erkannt.
  • Wenn ein JavaScript/TypeScript-Projekt ein Front-End-Webframework (oder clientseitiges) Webframework verwendet, wird es als Front-End-Dienst klassifiziert. Wenn Ihr Dienst ein Front-End-Webframework verwendet, das derzeit nicht erkannt wird, können Sie JQuery auswählen, um gleichwertige Front-End-Dienstklassifizierung und -verhalten bereitzustellen.

Generation

Nachdem Sie die erkannten Komponenten bestätigt haben, werden die Infrastruktur-as-Code-Dateien generiert, azd init die für die Bereitstellung Ihrer Anwendung in Azure erforderlich sind.

Die Generierungslogik lautet wie folgt:

  • Unterstützte Hosts:
    • Azure Container Apps.
  • Für Datenbanken wird die unterstützte Zuordnung zwischen Datenbanktechnologie und Dienst verwendet:
    • MongoDB: Azure CosmosDB-API für MongoDB
    • PostgreSQL: Azure Database for PostgreSQL flexible Server
    • Redis: Azure Container Apps Redis-Add-On
  • Dienste, die Datenbanken verwenden, verfügen über Umgebungsvariablen, die standardmäßig eine Verbindung mit der datenbank bereitstellen, die vorkonfiguriert ist.
  • Wenn sowohl Front-End- als auch Back-End-Dienste erkannt werden, wird die CORS-Konfiguration auf dem Azure-Host für Back-End-Dienste aktualisiert, um die Standardhosting-Funktion zu ermöglichen Standard von Front-End-Diensten. Dies kann bei Bedarf in der Infrastruktur als Codekonfigurationsdateien geändert oder entfernt werden.

Hinzufügen von Unterstützung für Entwicklercontainer

Sie können Ihre Vorlage auch mit Entwicklungscontainern und Codespaces kompatibel machen. Mit einem Entwicklercontainer können Sie einen Container als umfassende Entwicklungsumgebung verwenden. Es kann verwendet werden, um eine Anwendung auszuführen, tools, Bibliotheken oder Laufzeiten zu trennen, die für die Arbeit mit einer Codebasis erforderlich sind, und um die kontinuierliche Integration und Tests zu unterstützen. Dev-Container können lokal oder remote in einer privaten oder öffentlichen Cloud ausgeführt werden. (Quelle: https://containers.dev/)

So fügen Sie Unterstützung für Entwicklercontainer hinzu:

  1. Erstellen Sie einen DEVCONTAINER-Ordner im Stammverzeichnis Ihres Projekts.

  2. Erstellen Sie eine devcontainer.json Datei innerhalb des .devcontainer Ordners mit den gewünschten Konfigurationen. Die azd Startvorlage enthält eine Beispieldatei devcontainer.json , die Sie nach Bedarf in Ihr Projekt kopieren und ändern können.

Weitere Informationen zum Arbeiten mit Entwicklercontainern finden Sie in der Visual Studio Code-Dokumentation.

Hinzufügen von Unterstützung für eine CI/CD-Pipeline

Sie können ihrer Vorlage auch Unterstützung für CI/CD hinzufügen, indem Sie GitHub-Aktionen oder Azure DevOps verwenden, indem Sie die folgenden Schritte ausführen:

  1. Fügen Sie einen .github Ordner für GitHub-Aktionen oder einen .ado Ordner für Azure DevOps zum Stammverzeichnis Ihres Projekts hinzu.

  2. Fügen Sie dem neuen Ordner eine Workflowdatei hinzu. Die azd Startvorlage enthält eine Workflowdatei für GitHub-Aktionen und Beispieldateien für Azure DevOps Pipelines für jede Plattform, die Sie nach Bedarf in Ihr Projekt kopieren und ändern können.

  3. Möglicherweise müssen Sie die main.parameters.json Datei auch in Ihrem infra Ordner mit den erforderlichen Umgebungsvariablen aktualisieren, damit Der Workflow ausgeführt werden kann.

Konfigurieren der CI/CD-Pipeline

Wenn Ihre Vorlage Unterstützung für GitHub-Aktionen oder Azure-Pipelines enthält, können Sie eine CI/CD-Pipeline mit den folgenden Schritten konfigurieren:

  1. Führen Sie den folgenden Befehl aus, um Updates an das Repository zu übertragen. Der GitHub Actions-Workflow wird aufgrund des Updates ausgelöst.

    azd pipeline config    
    
  2. Wechseln Sie mit Ihrem Browser zum GitHub-Repository für Ihr Projekt.

  3. Wählen Sie "Aktionen" aus, um den ausgeführten Workflow anzuzeigen.

Bereinigen von Ressourcen

Wenn Sie die in diesem Artikel erstellten Ressourcen nicht mehr benötigen, führen Sie den folgenden Befehl aus:

azd down

Siehe auch

Hilfe anfordern

Informationen zum Ablegen eines Fehlers, Anfordern von Hilfe oder Vorschlagen eines neuen Features für die Azure Developer CLI finden Sie auf der Seite "Problembehandlung und Support ".

Nächste Schritte