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.
- Installation von Go: Version 1.18 oder höher
- Docker Desktop
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:
Erstellen einer Azure-Ressourcengruppe.
az group create \ --name <resourceGroupName> \ --location eastus
Erstellen Sie eine Azure Container Registry.
az acr create \ --resource-group <resourceGroupName> \ --name <azureContainerRegistryName> \ --sku basic \ --admin-enabled true
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:
Rufen Sie die Anmeldeserverinformationen ab.
az acr show \ --name <azureContainerRegistryName> \ --resource-group <resourceGroupName> \ --query loginServer \ --output tsv
Erstellen Sie das Docker-Image lokal.
docker build -t <loginServer>/<imageName>:latest .
Übertragen des Docker-Images an Azure Container Registry per Pushvorgang.
docker push <loginServer>/<imageName>:latest
Ü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:
Rufen Sie das Administratorkennwort für die Azure-Containerregistrierung ab.
ACR_PASSWORD=$(az acr credential show \ --name <azureContainerRegistryName> \ --query 'passwords[0].value' \ --out tsv)
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
Feedback
https://aka.ms/ContentUserFeedback.
Bald verfügbar: Im Laufe des Jahres 2024 werden wir GitHub-Issues stufenweise als Feedbackmechanismus für Inhalte abbauen und durch ein neues Feedbacksystem ersetzen. Weitere Informationen finden Sie unterFeedback senden und anzeigen für