Freigeben über


Erstellen einer containerisierten Python-Web-App in Azure

In diesem Teil der Lernprogrammreihe erfahren Sie, wie Sie eine containerisierte Python-Web-App direkt in azure Container Registry erstellen, ohne Docker lokal zu installieren. Das Erstellen des Docker-Images in Azure ist häufig schneller und einfacher als das lokale Erstellen des Images und das anschließende Pushen an die Azure-Containerregistrierung. Darüber hinaus beseitigt die cloudbasierte Imageerstellung die Notwendigkeit, dass Docker in Ihrer Entwicklungsumgebung ausgeführt werden kann.

Mit App Service können Sie containerisierte Web-Apps ausführen und diese über die Funktionen für kontinuierliche Integration/kontinuierliche Bereitstellung (CI/CD) von Docker Hub, Azure Container Registry und Visual Studio Team Services bereitstellen. Dieser Artikel ist Teil 3 einer 5-partigen Lernprogrammreihe zum Containerisieren und Bereitstellen einer Python-Web-App in Azure App Service. In diesem Teil des Lernprogramms erfahren Sie, wie Sie die containerisierte Python-Web-App in Azure erstellen.

Mit Azure App Service können Sie containerisierte Web-Apps mithilfe von CI/CD-Pipelines von Plattformen wie Docker Hub, Azure Container Registry und Azure DevOps bereitstellen und ausführen. Dieser Artikel ist Teil 3 einer 5-teiligen Lernprogrammreihe.

In Teil 2 dieser Lernprogrammreihe haben Sie das Containerimage lokal erstellt und ausgeführt. Im Gegensatz dazu erstellen Sie in diesem Teil des Lernprogramms dieselbe Python-Web-App (containerisieren) direkt in ein Docker-Image in der Azure-Containerregistrierung. Das Erstellen des Images in Azure ist in der Regel schneller und einfacher als lokal zu erstellen und dann das Image an eine Registrierung zu übertragen. Außerdem erfordert die Erstellung in der Cloud nicht, dass Docker in Ihrer Entwicklungsumgebung ausgeführt wird.

Sobald sich das Docker-Image in der Azure-Containerregistrierung befindet, kann es im Azure App-Dienst bereitgestellt werden.

Dieses Dienstdiagramm hebt die in diesem Artikel behandelten Komponenten hervor.

Ein Screenshot der im Tutorial verwendeten Dienste – Containerisierte Python-App in Azure mit hervorgehobenem Cloud-internen Build-Pfad.

Erstellen einer Azure-Containerregistrierung

Wenn Sie über eine vorhandene Azure Container-Registrierung verfügen, die Sie verwenden möchten, überspringen Sie diesen nächsten Schritt, und fahren Sie mit dem nächsten Schritt fort. Erstellen Sie andernfalls eine neue Azure-Containerregistrierung mithilfe der Azure CLI.

Azure CLI-Befehle können in der Azure Cloud Shell oder in Ihrer lokalen Entwicklungsumgebung mit der installierten Azure CLI ausgeführt werden.

Anmerkung

Verwenden Sie die gleichen Namen wie in Teil 2 dieser Lernprogrammreihe.

  1. Erstellen Sie eine Azure-Containerregistrierung mit dem Befehl "az acr create ".

    #!/bin/bash
    # Use the resource group that you created in part 2 of this tutorial series.
    RESOURCE_GROUP_NAME='msdocs-web-app-rg'
    # REGISTRY_NAME must be unique within Azure and contain 5-50 alphanumeric characters.
    REGISTRY_NAME='msdocscontainerregistryname'
    
    echo "Creating Azure Container Registry $REGISTRY_NAME..."
    az acr create -g $RESOURCE_GROUP_NAME -n $REGISTRY_NAME --sku Standard
    

    Suchen Sie in der JSON-Ausgabe des Befehls den loginServer Wert. Dieser Wert stellt den vollqualifizierten Registrierungsnamen (alle Kleinbuchstaben) dar und enthält den Registrierungsnamen.

  2. Wenn Sie die Azure CLI auf Ihrem lokalen Computer verwenden, führen Sie den Az acr-Anmeldebefehl aus, um sich bei der Containerregistrierung anzumelden.

    az acr login -n $REGISTRY_NAME
    

    Der Befehl fügt „azurecr.io“ an den Namen an, um den voll qualifizierten Registrierungsnamen zu erstellen. Bei erfolgreicher Ausführung wird die Meldung "Anmeldung erfolgreich" angezeigt.

    Anmerkung

    In der Azure Cloud Shell ist die Az acr login command nicht erforderlich, da die Authentifizierung automatisch über Ihre Cloud Shell-Sitzung verarbeitet wird. Wenn jedoch Authentifizierungsprobleme auftreten, können Sie sie weiterhin verwenden.

Erstellen eines Images in Azure Container Registry

Sie können das Containerimage direkt in Azure mithilfe verschiedener Ansätze generieren:

  • Mit der Azure Cloud Shell können Sie das Image vollständig in der Cloud erstellen, unabhängig von Ihrer lokalen Umgebung.
  • Alternativ können Sie VS Code oder die Azure CLI verwenden, um ihn in Azure aus Ihrem lokalen Setup zu erstellen, ohne Dass Docker lokal ausgeführt werden muss.

Azure CLI-Befehle können entweder in Ihrer lokalen Entwicklungsumgebung ausgeführt werden, in der die Azure CLI installiert ist, oder in Azure Cloud Shell.

  1. In der Konsole navigieren Sie zum Wurzelverzeichnis Ihres geklonten Repositories aus Teil 2 dieser Lernprogrammreihe.

  2. Erstellen Sie das Containerimage mithilfe des Az acr-Buildbefehls .

    az acr build -r $REGISTRY_NAME -g $RESOURCE_GROUP_NAME -t msdocspythoncontainerwebapp:latest .
    # When using Azure Cloud Shell, run one of the following commands instead:
    # az acr build -r $REGISTRY_NAME -g $RESOURCE_GROUP_NAME -t msdocspythoncontainerwebapp:latest https://github.com/Azure-Samples/msdocs-python-django-container-web-app.git
    # az acr build -r $REGISTRY_NAME -g $RESOURCE_GROUP_NAME -t msdocspythoncontainerwebapp:latest https://github.com/Azure-Samples/msdocs-python-flask-container-web-app.git
    

    Das letzte Argument im Befehl ist der vollqualifizierte Pfad zum Repository. Verwenden Sie bei der Ausführung in Azure Cloud Shell https://github.com/Azure-Samples/msdocs-python-django-container-web-app.git für die Django-Beispiel-App und https://github.com/Azure-Samples/msdocs-python-flask-container-web-app.git für die Flask-Beispiel-App.

  3. Bestätigen Sie, dass das Container-Image erstellt wurde mit dem Befehl az acr repository list.

    az acr repository list -n $REGISTRY_NAME
    

Nächster Schritt