Share via


Bereitstellen einer Go Web App in Azure-Container-Apps

In dieser Schnellstartanleitung erfahren Sie, wie Sie eine containerisierte Go-Web-App in Azure-Container-Apps bereitstellen.

Mit Azure Container-Apps können Sie Anwendungscode ausführen, der in einem beliebigen Container verpackt ist, ohne komplizierte Cloudinfrastruktur oder komplexe Container-Orchestratoren verwalten zu müssen, und ohne sich gedanken über die Laufzeit oder das Programmiermodell zu machen. Häufige Verwendungsmöglichkeiten von Azure Container-Apps umfassen: Bereitstellen von API-Endpunkten, Hosten von Hintergrundverarbeitungsanwendungen, Behandeln von ereignisgesteuerter Verarbeitung und Ausführen von Microservices.

Führen Sie dieses Lernprogramm aus, um durch die Erstellung eines Docker-Images zu gehen, dieses Image in der Azure-Containerregistrierung bereitzustellen und eine Go Web App in Azure-Container-Apps bereitzustellen.

Voraussetzungen

  • Azure-Abonnement: Wenn Sie kein Azure-Abonnement besitzen, können Sie ein kostenloses Konto erstellen, bevor Sie beginnen.

Herunterladen der Beispiel-App

Um diesem Lernprogramm zu folgen, benötigen Sie eine Beispielanwendung zum Containerisieren. Eine Beispiel-Go-Web-App wird im GitHub-Repository "msdocs-go-webapp-quickstart " bereitgestellt. Laden Sie die Beispielanwendung auf Ihre lokale Arbeitsstation herunter, oder klonen Sie sie.

git clone https://github.com/Azure-Samples/msdocs-go-webapp-quickstart.git

cd msdocs-go-webapp-quickstart

Erstellen einer Azure-Containerregistrierung

Mit der Azure Container Registry können Sie Containerimages erstellen, speichern und verwalten. Sie verwenden es, um das Docker-Image zu speichern, das die Go-Web-Beispiel-App enthält, die im Beispiel-Repository Erwähnung zuvor bereitgestellt wurde.

Führen Sie die folgenden Befehle aus, um eine Azure Container-Registrierung zu erstellen:

  1. Erstellen einer Azure-Ressourcengruppe.

    az group create \
        --name <resourceGroupName> \
        --location eastus
    
  2. Erstellen Sie eine Azure Container Registry.

    az acr create \
        --resource-group <resourceGroupName> \
        --name <azureContainerRegistryName> \
        --sku basic \
        --admin-enabled true
    
  3. Melden Sie sich bei der Azure-Containerinstanz an.

    az acr login --name <azureContainerRegistryName>  
    

Ersetzen Sie <resourceGroupName> und <azureContainerRegistryName> durch die entsprechenden Werte. Beachten Sie, dass Ihr Azure-Containerregistrierungsname global eindeutig sein muss.

Erstellen und Pushen des Docker-Images

Nachdem Sie eine Azure Container-Registrierung erstellt haben, erstellen Sie das Docker-Image der Go-Web-Beispiel-App, und übertragen Sie es.

Führen Sie die folgenden Befehle aus, und übertragen Sie das Image an die Registrierung:

  1. Rufen Sie die Anmeldeserverinformationen ab.

    az acr show \
        --name <azureContainerRegistryName> \
        --resource-group <resourceGroupName> \
        --query loginServer \
        --output tsv  
    
  2. Erstellen Sie das Docker-Image lokal.

    docker build -t <loginServer>/<imageName>:latest .
    
  3. Übertragen des Docker-Images an Azure Container Registry per Pushvorgang.

    docker push <loginServer>/<imageName>:latest
    
  4. Überprüfen Sie, ob das Image erfolgreich an die Azure-Containerregistrierung übertragen wurde.

    az acr repository list \
        --name <azureContainerRegistryName> \
        --output table
    

Ersetzen Sie loginServer, imageName und azureContainerRegistryName durch die entsprechenden Werte. Der Imagename ist das Docker-Image, das an die Azure-Containerregistrierung übertragen und später für die Bereitstellung in Azure-Container-Apps verwendet wird.

Nachdem Sie nun ein Image in der Azure-Containerregistrierung verfügbar haben, können Sie die Azure-Container-App und seine Umgebung bereitstellen.

Azure Container Apps-Umgebung erstellen

Azure-Container-Apps verfügen nicht über die Komplexität eines Container-Orchestrators, aber sie benötigt dennoch eine Möglichkeit, sichere Grenzen einzurichten, in denen Azure-Container-Apps-Umgebungen enthalten sind. Container-Apps, die in derselben Umgebung bereitgestellt werden, verwenden dasselbe virtuelle Netzwerk und schreiben Protokolle in denselben Log Analytics-Arbeitsbereich. Bevor Sie eine Azure Container-App bereitstellen können, benötigen Sie eine Umgebung für die Bereitstellung.

Führen Sie die folgenden Befehle aus, um eine Azure-Container-Apps-Umgebung zu erstellen:

  1. Rufen Sie das Administratorkennwort für die Azure-Containerregistrierung ab.

    ACR_PASSWORD=$(az acr credential show \
        --name <azureContainerRegistryName> \
        --query 'passwords[0].value' \
        --out tsv)
    
  2. Erstellen Sie eine Container Apps-Umgebung.

    az containerapp env create \
        --name <containerAppEnvName> \
        --resource-group <resourceGroupName> \
        --location "East US"
    

Bereitstellen von Azure Container Apps

Zu diesem Zeitpunkt haben Sie eine Azure-Containerregistrierung erstellt, erstellt und ein Docker-Image darauf übertragen und eine Azure-Container-Apps-Umgebung erstellt. Alles, was noch übrig ist, besteht darin, die Anwendung bereitzustellen.

Führen Sie den folgenden Befehl aus, um die Go Web App für Azure-Container-Apps bereitzustellen:

az containerapp create \
    --name <containerAppName> \
    --resource-group <resourceGroupName> \
    --environment <containerAppEnvName> \
    --image "<loginServer>/<imageName>:latest" \
    --registry-server "<loginServer>" \
    --registry-username "<azureContainerRegistryName>" \
    --registry-password "$ACR_PASSWORD" \
    --target-port 8080 \
    --ingress 'external'

Überprüfen der Web-App-URL

Führen Sie den folgenden Azure CLI-Befehl aus, um den FQDN (Fully Qualified Do Standard Name) des Eingangs der Webanwendung abzurufen.

APP_FQDN=$(az containerapp show \
    --name <containerAppName> \
    --resource-group <resourceGroupName> \
    --query properties.configuration.ingress.fqdn \
    --output tsv)

Führen Sie als Nächstes den Curl-Befehl für den FQDN aus, und bestätigen Sie, dass die Ausgabe den HTML-Code der Website widerspiegelt.

curl "https://$APP_FQDN"

Bereinigen von Ressourcen

Wenn Sie mit der Beispiel-App fertig sind, können Sie alle Ressourcen für die App aus Azure entfernen. Dies vermeidet laufende Gebühren und hält Ihr Azure-Abonnement übersichtlich. Wenn Sie die Ressourcengruppe entfernen, werden auch alle Ressourcen in der Ressourcengruppe entfernt. Dies stellt die schnellste Möglichkeit dar, alle Azure-Ressourcen für Ihre App zu entfernen.

az group delete \
    --name <resourceGroupName> \
    --no-wait

Nächste Schritte