Tutorial: Erstellen und Bereitstellen Ihrer App in Azure Container Apps
In diesem Artikel wird veranschaulicht, wie Sie mithilfe Ihrer bevorzugten Programmiersprache einen Microservice für Azure Container Apps aus einem Quell-Repository erstellen und bereitstellen.
Dies ist das erste Tutorial in einer Reihe von Artikeln, die Sie durch die Verwendung der wichtigsten Funktionen in Azure Container Apps führen. Der erste Schritt besteht darin, einen Back-End-Web-API-Dienst zu erstellen, der eine statische Sammlung von Musikalben zurückgibt.
Hinweis
Sie können diese App auch mit dem Befehl az containerapp up erstellen und bereitstellen. Folgen Sie dazu den Anleitungen im Artikel Schnellstart: Erstellen und Bereitstellen einer App in Azure Container Apps aus einem Repository. Der Befehl az containerapp up
bietet eine schnelle und praktische Methode, um Ihre App mithilfe eines einzigen Befehls zu erstellen und in Azure Container Apps bereitzustellen. Es bietet jedoch nicht die gleichen Anpassungsmöglichkeiten für Ihre Container-App.
Im nächsten Tutorial in der Reihe wird die Front-End-Webanwendung erstellt und in Azure Container Apps bereitgestellt.
Der folgende Screenshot zeigt die Ausgabe der Album-API, die in diesem Tutorial bereitgestellt wird.
Voraussetzungen
Zum Abschließen dieses Projekts benötigen Sie die folgenden Elemente:
Anforderung | Anweisungen |
---|---|
Azure-Konto | Erstellen Sie ein kostenloses Konto, falls Sie keines besitzen. Sie benötigen die Berechtigung Benutzerzugriffsadministrator oder Besitzer für das Azure-Abonnement, um den Vorgang fortzusetzen. Stellen Sie sicher, dass Sie die restriktivste Rolle für Ihren Kontext verwenden. Weitere Details finden Sie unter Zuweisen von Azure-Rollen über das Azure-Portal sowie unter Azure-Rollen, Microsoft Entra-Rollen und Administratorrollen für klassische Abonnements. |
GitHub-Konto | Registrieren Sie sich kostenlos. |
Git | git installieren |
Azure CLI | Installieren Sie die Azure CLI. |
Anforderung | Anweisungen |
---|---|
Azure-Konto | Erstellen Sie ein kostenloses Konto, falls Sie keines besitzen. Sie benötigen die Berechtigung Mitwirkender oder Besitzer für das Azure-Abonnement, um den Vorgang fortzusetzen. Weitere Einzelheiten finden Sie unter Zuweisen von Azure-Rollen über das Azure-Portal. |
GitHub-Konto | Registrieren Sie sich kostenlos. |
Git | git installieren |
Azure CLI | Installieren Sie die Azure CLI. |
Docker Desktop | Docker stellt Installationsprogramme zur Verfügung, die die Docker-Umgebung für macOS, Windows und Linux konfigurieren. Geben Sie an der Eingabeaufforderung docker ein, um sicherzustellen, dass Docker ausgeführt wird. |
Setup
Um sich ausgehend von der CLI bei Azure anzumelden, führen Sie den folgenden Befehl aus und befolgen Sie die Anweisungen, um den Authentifizierungsprozess abzuschließen.
az login
Verwenden Sie den Upgradebefehl, um sicherzustellen, dass Sie die neueste Version der CLI ausführen.
az upgrade
Installieren oder aktualisieren Sie als Nächstes die Azure Container Apps-Erweiterung für die CLI.
Falls Sie Fehler aufgrund fehlender Parameter erhalten, wenn Sie az containerapp
-Befehle in der Azure CLI oder Cmdlets aus dem Az.App
-Modul in Azure PowerShell ausführen, stellen Sie sicher, dass die aktuelle Version der Azure Container Apps-Erweiterung installiert ist.
az extension add --name containerapp --upgrade
Hinweis
Ab Mai 2024 aktivieren Azure CLI-Erweiterungen standardmäßig keine Previewfunktionen mehr. Um auf Previewfunktionen von Container Apps zuzugreifen, installieren Sie die Container Apps-Erweiterung mit --allow-preview true
.
az extension add --name containerapp --upgrade --allow-preview true
Nachdem die aktuelle Erweiterung oder das aktuelle Modul installiert ist, registrieren Sie nun die Namespaces Microsoft.App
und Microsoft.OperationalInsights
.
az provider register --namespace Microsoft.App
az provider register --namespace Microsoft.OperationalInsights
Erstellen von Umgebungsvariablen
Nachdem die Einrichtung Ihrer Azure CLI abgeschlossen ist, können Sie die Umgebungsvariablen definieren, die in diesem Artikel verwendet werden.
Definieren Sie die folgenden Variablen in Ihrer Bash-Shell.
RESOURCE_GROUP="album-containerapps"
LOCATION="canadacentral"
ENVIRONMENT="env-album-containerapps"
API_NAME="album-api"
FRONTEND_NAME="album-ui"
GITHUB_USERNAME="<YOUR_GITHUB_USERNAME>"
Bevor Sie diesen Befehl ausführen, müssen Sie <YOUR_GITHUB_USERNAME>
durch Ihren GitHub-Benutzernamen ersetzen.
Definieren Sie als Nächstes einen für Sie eindeutigen Containerregistrierungsnamen.
ACR_NAME="acaalbums"$GITHUB_USERNAME
Vorbereiten des GitHub-Repositorys
Navigieren Sie zum Repository für Ihre bevorzugte Sprache und forken (verzweigen) Sie das Repository.
Wählen Sie oben im Album API-Repository die Schaltfläche Forken aus, um das Repository in Ihr Konto zu forken.
Jetzt können Sie Ihre Fork des Beispiel-Repositorys klonen.
Verwenden Sie den folgenden git-Befehl, um Ihr geforktes Repository in den Code-zu-Cloud-Ordner zu klonen:
git clone https://github.com/$GITHUB_USERNAME/containerapps-albumapi-csharp.git code-to-cloud
Ändern Sie als Nächstes das Verzeichnis in das Stammverzeichnis des geklonten Repositorys.
cd code-to-cloud/src
Erstellen einer Azure-Ressourcengruppe
Erstellen Sie eine Ressourcengruppe, um die Dienste im Zusammenhang mit der Bereitstellung Ihrer Container-App zu organisieren.
az group create \
--name $RESOURCE_GROUP \
--location "$LOCATION"
Erstellen einer Azure-Containerregistrierung
Nachdem das Album-API-Containerimage erstellt wurde, erstellen Sie eine Azure Container Registry-Instanz (ACR) in Ihrer Ressourcengruppe, um es zu speichern.
az acr create \ --resource-group $RESOURCE_GROUP \ --location $LOCATION \ --name $ACR_NAME \ --sku Basic
Ihre Containerregistrierung muss ARM-Zielgruppentoken (Azure Resource Manager) für die Authentifizierung zulassen, um eine verwaltete Identität zum Pullen von Images zu verwenden.
Verwenden Sie den folgenden Befehl, um zu überprüfen, ob ARM-Token auf Ihre ACR-Instanz (Azure Container Registry) zugreifen dürfen:
az acr config authentication-as-arm show --registry "$ACR_NAME"
Wenn ARM-Token zulässig sind, gibt der Befehl Folgendes aus:
{ "status": "enabled" }
Wenn
disabled
fürstatus
angegeben ist, lassen Sie ARM-Token mit dem folgenden Befehl zu:az acr config authentication-as-arm update --registry "$ACR_NAME" --status enabled
Erstellen einer benutzerseitig zugewiesenen verwalteten Identität
Um die Verwendung von Administratoranmeldeinformationen zu vermeiden, pullen Sie Images aus privaten Repositorys in Microsoft Azure Container Registry unter Verwendung von verwalteten Identitäten für die Authentifizierung. Verwenden Sie nach Möglichkeit eine benutzerseitig zugewiesene verwaltete Identität zum Pullen von Images.
Erstellen einer benutzerseitig zugewiesenen verwalteten Identität. Wählen Sie vor dem Ausführen der folgenden Befehle einen Namen für die verwaltete Identität aus, und ersetzen Sie
\<PLACEHOLDER\>
durch den Namen.IDENTITY="<YOUR_IDENTITY_NAME>"
az identity create \ --name $IDENTITY \ --resource-group $RESOURCE_GROUP
Rufen Sie die Ressourcen-ID der Identität ab.
IDENTITY_ID=$(az identity show \ --name $IDENTITY \ --resource-group $RESOURCE_GROUP \ --query id \ --output tsv)
Erstellen Ihrer Anwendung
Mit ACR-Aufgaben können Sie das Docker-Image für die Album-API erstellen und mithilfe von Push zu übertragen, ohne Docker lokal zu installieren.
Erstellen des Containers mit ACR
Führen Sie den folgenden Befehl aus, um den Prozess zur Erstellung und zum Übertragen des Image mithilfe von ACR zu initiieren. Das .
am Ende des Befehls stellt den Docker-Build-Kontext dar, was bedeutet, dass dieser Befehl innerhalb des src-Ordners ausgeführt werden sollte, in dem sich die Dockerfile befindet.
az acr build --registry $ACR_NAME --image $API_NAME .
Die Ausgabe aus dem az acr build
-Befehl zeigt den Upload-Fortschritt des Quellcodes in Azure und die Details der Vorgänge docker build
und docker push
.
Erstellen Ihrer Anwendung
Die folgenden Schritte zeigen, wie Sie Ihr Containerimage lokal mithilfe von Docker erstellen und das Image mithilfe von Push an die neue Containerregistrierung übertragen.
Erstellen des Containers mit Docker
Der folgende Befehl erstellt ein Containerimage für die Album-API und markiert es mit dem vollqualifizierten Namen des ACR-Anmeldeservers. Das .
am Ende des Befehls stellt den Docker-Build-Kontext dar, was bedeutet, dass dieser Befehl innerhalb des src-Ordners ausgeführt werden sollte, in dem sich die Dockerfile befindet.
docker build --tag $ACR_NAME.azurecr.io/$API_NAME .
Übertragen des Images mithilfe von Push an Ihre Containerregistrierung
Melden Sie sich zuerst bei Ihrer Azure Container Registry an.
az acr login --name $ACR_NAME
Übertragen Sie jetzt das Image mithilfe von Push an Ihre Registrierung.
docker push $ACR_NAME.azurecr.io/$API_NAME
Erstellen einer Container-Apps-Umgebung
Die Azure Container Apps-Umgebung fungiert als eine sichere Grenze, die eine Gruppe von Container-Apps umgibt.
Erstellen Sie die Container-Apps-Umgebung mit dem folgenden Befehl.
az containerapp env create \
--name $ENVIRONMENT \
--resource-group $RESOURCE_GROUP \
--location "$LOCATION"
Bereitstellen Ihres Images in einer Container-App
Nachdem Sie eine Umgebung erstellt haben, können Sie Ihre Container-App mit dem Befehl az containerapp create
erstellen und bereitstellen.
Erstellen Sie Ihre Container App mit dem folgenden Befehl und stellen Sie sie bereit.
az containerapp create \
--name $API_NAME \
--resource-group $RESOURCE_GROUP \
--environment $ENVIRONMENT \
--image $ACR_NAME.azurecr.io/$API_NAME \
--target-port 8080 \
--ingress external \
--registry-server $ACR_NAME.azurecr.io \
--user-assigned "$IDENTITY_ID" \
--registry-identity "$IDENTITY_ID" \
--query properties.configuration.ingress.fqdn
Wenn Sie
--ingress
aufexternal
setzen, ist Ihre Container-App über das öffentliche Internet zugänglich.target-port
wird auf8080
festgelegt, damit es mit dem Port übereinstimmt, an dem der Container auf Anforderungen lauscht.Ohne eine
query
-Eigenschaft gibt der Aufruf anaz containerapp create
eine JSON-Antwort zurück, die umfangreiche Details zur Anwendung enthält. Durch das Hinzufügen eines Abfrageparameters wird die Ausgabe auf nur den vollqualifizierten Domänennamen (FQDN) der App gefiltert.Mit diesem Befehl wird der benutzerseitig zugewiesenen verwalteten Identität die Rolle
acrPull
hinzugefügt, sodass Images aus der Containerregistrierung gepullt werden können.
Überprüfen der Bereitstellung
Kopieren Sie den vollqualifizierten Domänennamen in einen Webbrowser. Navigieren Sie im Webbrowser zum Endpunkt /albums
des vollqualifizierten Domänennamen.
Bereinigen von Ressourcen
Wenn Sie das Tutorial Kommunikation zwischen Microservices nicht fortsetzen möchten, können Sie die Azure-Ressourcen entfernen, die während dieser Schnellstartanleitung erstellt wurden. Führen Sie den folgenden Befehl aus, um die Ressourcengruppe zusammen mit allen in dieser Schnellstartanleitung erstellten Ressourcen zu löschen.
az group delete --name $RESOURCE_GROUP
Tipp
Treten Probleme auf? Informieren Sie uns über GitHub, indem Sie ein Problem im Azure Container Apps-Repository öffnen.
Nächste Schritte
Diese Schnellstartanleitung ist der Einstiegspunkt für eine Reihe aufeinander aufbauender Tutorials, die die verschiedenen Funktionen in Azure Container Apps vorstellen. Fahren Sie fort, um zu erfahren, wie Sie die Kommunikation über ein Web-Front-End aktivieren, das die API aufruft, die Sie in diesem Artikel bereitgestellt haben.