Bereitstellen von Azure Container Apps mit dem Befehl „az containerapp up“
Der Befehl az containerapp up
(oder up
) ist die schnellste Option zum Bereitstellen einer App in Azure Container Apps über ein vorhandenes Image, über lokalen Quellcode oder ein GitHub-Repository. Mit diesem einzelnen Befehl ist Ihre Container-App innerhalb von wenigen Minuten einsatzbereit.
Der Befehl az containerapp up
ist eine optimierte Option zum Erstellen und Bereitstellen von Container-Apps, die in erster Linie Standardeinstellungen verwenden. Sie müssen jedoch weitere CLI-Befehle ausführen, um erweiterte Einstellungen zu konfigurieren:
- Dapr:
az containerapp dapr enable
- Geheimnisse:
az containerapp secret set
- Datentransportprotokolle:
az containerapp ingress update
Um die Ressourcen- oder Skalierungseinstellungen Ihrer Container-App anzupassen, können Sie den Befehl up
und dann den Befehl az containerapp update
verwenden, um diese Einstellungen zu ändern. Der Befehl az containerapp up
ist keine Abkürzung des Befehls az containerapp update
.
Der Befehl up
kann vorhandene Ressourcen erstellen oder verwenden, einschließlich:
- Resource group
- Azure Container Registry
- Container Apps-Umgebung und Log Analytics-Arbeitsbereich
- Container-App
Der Befehl kann ein Containerimage erstellen und an eine Azure Container Registry-Instanz (ACR) pushen, wenn Sie lokalen Quellcode oder ein GitHub-Repository bereitstellen. Wenn Sie in einem GitHub-Repository arbeiten, wird ein GitHub Actions-Workflow erstellt, der automatisch ein neues Containerimage erstellt und pusht, wenn Sie Änderungen in Ihrem GitHub-Repository committen.
Wenn Sie die Container Apps-Umgebung anpassen müssen, erstellen Sie zunächst mit dem Befehl az containerapp env create
die Umgebung. Wenn Sie keine vorhandene Umgebung bereitstellen, sucht der Befehl up
nach einer Umgebung in Ihrer Ressourcengruppe und verwendet diese, falls er eine findet. Wird keine Umgebung gefunden, wird eine mit einem Log Analytics-Arbeitsbereich erstellt.
Weitere Informationen zum Befehl az containerapp up
und seinen Optionen finden Sie unter az containerapp up
.
Voraussetzungen
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 | Wenn Sie ein GitHub-Repository verwenden, können Sie sich kostenlos registrieren. |
Azure CLI | Installieren Sie die Azure CLI. |
Lokaler Quellcode | Sie benötigen ein lokales Quellcodeverzeichnis, wenn Sie lokalen Quellcode verwenden. |
Vorhandenes Image | Wenn Sie ein vorhandenes Image verwenden, benötigen Sie den Registrierungsserver, den Imagenamen und das Tag. Wenn Sie eine private Registrierung verwenden, benötigen Sie Ihre Anmeldeinformationen. |
Einrichten
Melden Sie sich über die Azure-Befehlszeilenschnittstelle bei Azure an.
az login
Installieren Sie als Nächstes die Azure Container Apps-Erweiterung für die CLI.
az extension add --name containerapp --upgrade
Die aktuelle Erweiterung oder das aktuelle Modul wurde installiert. Registrieren Sie nun den Namespace
Microsoft.App
.az provider register --namespace Microsoft.App
Registrieren Sie den Anbieter
Microsoft.OperationalInsights
für den Azure Monitor Log Analytics-Arbeitsbereich.az provider register --namespace Microsoft.OperationalInsights
Bereitstellen über ein vorhandenes Image
Sie können eine Container-App, die ein vorhandenes Image verwendet, in einer öffentlichen oder privaten Containerregistrierung bereitstellen. Bei der Bereitstellung über eine private Registrierung müssen Sie Ihre Anmeldeinformationen mithilfe der Optionen --registry-server
, --registry-username
und --registry-password
angeben.
In diesem Beispiel werden mit dem Befehl az containerapp up
die folgenden Aktionen ausgeführt:
- Erstellen einer Ressourcengruppe
- Erstellen einer Umgebung und eines Log Analytics-Arbeitsbereichs
- Erstellen und Bereitstellen einer Container-App, die das Image aus einer öffentlichen Registrierung pullt
- Festlegen des Eingangs der Container-App auf extern mit einem auf den angegebenen Wert festgelegten Zielport
Führen Sie den folgenden Befehl aus, um eine Container-App über ein vorhandenes Image bereitzustellen. Ersetzen Sie die <PLATZHALTER> durch Ihre Werte.
az containerapp up \
--name <CONTAINER_APP_NAME> \
--image <REGISTRY_SERVER>/<IMAGE_NAME>:<TAG> \
--ingress external \
--target-port <PORT_NUMBER>
Sie können den Befehl up
verwenden, um eine Container-App erneut bereitzustellen. Wenn Sie eine erneute Bereitstellung mit einem neuen Image durchführen möchten, verwenden Sie die Option --image
, um ein neues Image anzugeben. Stellen Sie sicher, dass die Optionen --resource-group
und environment
auf die gleichen Werte wie die ursprüngliche Bereitstellung festgelegt sind.
az containerapp up \
--name <CONTAINER_APP_NAME> \
--image <REGISTRY_SERVER>/<IMAGE_NAME>:<TAG> \
--resource-group <RESOURCE_GROUP_NAME> \
--environment <ENVIRONMENT_NAME> \
--ingress external \
--target-port <PORT_NUMBER>
Bereitstellen über lokalen Quellcode
Wenn Sie den Befehl up
für die Bereitstellung aus einer lokalen Quelle verwenden, wird das Containerimage erstellt und in eine Registrierung gepusht und die Container-App bereitgestellt. Wird keine Angabe gemacht, wird die Registrierung in Azure Container Registry erstellt.
Der Befehl kann das Image mit oder ohne Dockerfile erstellen. Bei der Erstellung ohne Dockerfile werden die folgenden Sprachen unterstützt:
- .NET
- Node.js
- PHP
- Python
Das folgende Beispiel zeigt, wie Sie eine Container-App aus lokalem Quellcode bereitstellen.
Im Beispiel werden mit dem Befehl az containerapp up
die folgenden Aktionen ausgeführt:
- Erstellen einer Ressourcengruppe
- Erstellen einer Umgebung und eines Log Analytics-Arbeitsbereichs
- Erstellen einer Registrierung in Azure Container Registry
- Erstellen des Containerimages (mit dem Dockerfile, sofern vorhanden)
- Pushen des Images in die Registrierung
- Erstellen und Bereitstellen der Container-App
Führen Sie den folgenden Befehl aus, um eine Container-App über lokalen Quellcode bereitzustellen:
az containerapp up \
--name <CONTAINER_APP_NAME> \
--source <SOURCE_DIRECTORY>\
--ingress external
Wenn das Dockerfile die EXPOSE-Anweisung enthält, konfiguriert der Befehl up
den Eingangs- und Zielport der Container-App anhand der Informationen im Dockerfile.
Wenn Sie den Eingang über Ihre Dockerfile konfigurieren oder Ihre App keinen Eingang erfordert, können Sie die Option ingress
weglassen.
Die Ausgabe des Befehls enthält die URL für die Container-App.
Wenn ein Fehler auftritt, können Sie den Befehl mit der Option --debug
erneut ausführen, um weitere Informationen zum Fehler zu erhalten. Wenn der Build ohne Dockerfile nicht erfolgreich ist, können Sie versuchen, ein Dockerfile hinzuzufügen und den Befehl erneut auszuführen.
Um den Befehl az containerapp up
zum erneuten Bereitstellen Ihrer Container-App mit einem aktualisierten Image zu verwenden, schließen Sie die Argumente --resource-group
und --environment
ein. Das folgende Beispiel zeigt, wie Sie eine Container-App aus lokalem Quellcode erneut bereitstellen.
Nehmen Sie Änderungen am Quellcode vor.
Führen Sie den folgenden Befehl aus:
az containerapp up \ --name <CONTAINER_APP_NAME> \ --source <SOURCE_DIRECTORY> \ --resource-group <RESOURCE_GROUP_NAME> \ --environment <ENVIRONMENT_NAME>
Bereitstellen über ein GitHub-Repository
Wenn Sie den Befehl az containerapp up
für die Bereitstellung über ein GitHub-Repository verwenden, generiert er einen GitHub Actions-Workflow, der das Containerimage erstellt und an eine Registrierung pusht und die Container-App bereitstellt. Wird keine Angabe gemacht, erstellt der Befehl die Registrierung in Azure Container Registry.
Zum Erstellen des Images ist ein Dockerfile erforderlich. Wenn das Dockerfile die EXPOSE-Anweisung enthält, konfiguriert der Befehl den Eingangs- und Zielport der Container-App anhand der Informationen im Dockerfile.
Das folgende Beispiel zeigt, wie Sie eine Container-App über ein GitHub-Repository bereitstellen.
Im Beispiel werden mit dem Befehl az containerapp up
die folgenden Aktionen ausgeführt:
- Erstellen einer Ressourcengruppe
- Erstellen einer Umgebung und eines Log Analytics-Arbeitsbereichs
- Erstellen einer Registrierung in Azure Container Registry
- Erstellen des Containerimages mit dem Dockerfile
- Pushen des Images in die Registrierung
- Erstellen und Bereitstellen der Container-App
- Erstellen eines GitHub Actions-Workflows, um das Containerimage zu erstellen und die Container-App bereitzustellen, wenn zukünftige Änderungen an das GitHub-Repository gepusht werden
Führen Sie den folgenden Befehl aus, um eine App aus einem GitHub-Repository bereitzustellen:
az containerapp up \
--name <CONTAINER_APP_NAME> \
--repo <GitHub repository URL> \
--ingress external
Wenn Sie den Eingang über Ihre Dockerfile konfigurieren oder Ihre App keinen Eingang erfordert, können Sie die Option ingress
weglassen.
Da der Befehl up
einen GitHub Actions-Workflow erstellt, hat die erneute Ausführung zum Bereitstellen von Änderungen am Image Ihrer App den unerwünschten Effekt, dass mehrere Workflows erstellt werden. Pushen Sie stattdessen Änderungen an Ihr GitHub-Repository, und der GitHub-Workflow erstellt automatisch Ihre App und stellt sie bereit. Um den Workflow zu ändern, bearbeiten Sie die Workflowdatei in GitHub.