Pullen von Azure Container Apps-Images mit verwalteter Identität
Sie können Images aus privaten Repositorys in Microsoft Azure Container Registry unter Verwendung von verwalteten Identitäten für die Authentifizierung pullen. So lässt sich die Verwendung von Administratoranmeldeinformationen vermeiden.
Für die Authentifizierung gegenüber Azure Container Registry kann eine benutzerseitig oder systemseitig zugewiesene verwaltete Identität verwendet werden.
- Bei einer benutzerseitig zugewiesenen verwalteten Identität erstellen und verwalten Sie die Identität außerhalb von Azure Container Apps. Diese Identität kann mehreren Azure-Ressourcen zugewiesen werden (einschließlich Azure Container Apps).
- Bei einer systemseitig zugewiesenen verwalteten Identität wird die Identität von Azure Container Apps erstellt und verwaltet. Sie ist an Ihre Container-App gebunden und wird gelöscht, wenn Ihre App gelöscht wird.
- Wenn möglich, sollten Sie eine benutzerseitig zugewiesene verwaltete Identität verwenden, um Images abzurufen.
Container Apps sucht immer dann nach einer neuen Version des Images, wenn ein Container gestartet wird. In Docker- oder Kubernetes-Terminologie legt Container Apps die Image-Pull-Richtlinie jedes Containers auf always
fest.
In diesem Artikel wird beschrieben, wie Sie Ihre Container-App über das Azure-Portal so konfigurieren, dass benutzerseitig und systemseitig zugewiesene verwaltete Identitäten zum Pullen von Images aus privaten Azure Container Registry-Repositorys verwendet werden.
Benutzerseitig zugewiesene verwaltete Identität
Mit den folgenden Schritten wird aufgezeigt, wie Sie Ihre Container-App so konfigurieren, dass eine benutzerseitig zugewiesene verwaltete Identität verwendet wird, um Images aus privaten Azure Container Registry-Repositorys zu pullen.
- Erstellen Sie eine Container-App mit einem öffentlichen Image.
- Fügen Sie die benutzerseitig zugewiesene verwaltete Identität zur Container-App hinzu.
- Erstellen Sie eine Container-App-Revision mit einem privaten Image und der benutzerseitig zugewiesenen verwalteten Identität.
Voraussetzungen
Ein Azure-Konto mit einem aktiven Abonnement.
- Falls Sie keins haben, können Sie kostenlos eins erstellen.
Ein privates Azure Container Registry-Repository mit einem Image, das Sie pullen möchten.
Ihre Azure Container Registry muss ARM-Zielgruppentoken für die Authentifizierung zulassen, um verwaltete Identität zum Abrufen von Images zu verwenden. Verwenden Sie den folgenden Befehl, um zu überprüfen, ob ARM-Token auf Ihr ACR zugreifen dürfen:
az acr config authentication-as-arm show -r <REGISTRY>
Wenn ARM-Token nicht zulässig sind, können Sie sie mit dem folgenden Befehl zulassen:
az acr config authentication-as-arm update -r <REGISTRY> --status enabled
Erstellen Sie eine benutzerseitig zugewiesene verwaltete Identität. Weitere Informationen finden Sie unter Erstellen einer benutzerseitig zugewiesenen verwalteten Identität.
Erstellen einer Container-App
Führen Sie die folgenden Schritte aus, um eine Container-App mit dem Standardimage für den Schnellstart zu erstellen.
Navigieren Sie zur Startseite des Portals.
Suchen Sie in der oberen Suchleiste nach Container Apps.
Wählen Sie in den Suchergebnissen Container Apps aus.
Wählen Sie die Schaltfläche Erstellen.
Gehen Sie auf der Registerkarte Grundeinstellungen wie folgt vor:
Einstellung Aktion Abonnement Wählen Sie Ihr Azure-Abonnement. Ressourcengruppe Wählen Sie eine vorhandene Ressourcengruppe aus, oder erstellen Sie eine neue. Name der Container-App Geben Sie einen Namen für die Container-App ein. Location Wählen Sie einen Standort aus. Erstellen einer Container-App-Umgebung Erstellen Sie eine neue Umgebung, oder wählen Sie eine vorhandene Umgebung aus. Wählen Sie auf der Seite Container-App erstellen die Schaltfläche Überprüfen und erstellen aus.
Wählen Sie unten im Fenster Container-App erstellen die Schaltfläche Erstellen aus.
Es dauert einige Minuten, bis die Bereitstellung der Container-App abgeschlossen ist. Klicken Sie nach Abschluss der Bereitstellung auf Zu Ressource wechseln.
Hinzufügen der benutzerseitig zugewiesenen verwalteten Identität
- Wählen Sie im linken Menü Identität aus.
- Wählen Sie die Registerkarte Benutzerseitig zugewiesen aus.
- Wählen Sie die Schaltfläche Benutzerseitig zugewiesene verwaltete Identität hinzufügen aus.
- Wählen Sie Ihr Abonnement aus.
- Wählen Sie die von Ihnen erstellte Identität aus.
- Wählen Sie Hinzufügen aus.
Erstellen einer Container-App-Revision
Erstellen Sie eine Container-App-Revision mit einem privaten Image und der systemseitig zugewiesenen verwalteten Identität.
Wählen Sie im linken Menü Revision Management (Revisionsverwaltung) aus.
Wählen Sie Create new revision (Neue Revision erstellen) aus.
Wählen Sie in der Tabelle Containerimage das Containerimage aus.
Geben Sie im Dialogfeld Edit a container (Container bearbeiten) die erforderlichen Informationen ein.
Feld Aktion Name Geben Sie einen Namen für den Container ein. Bildquelle Wählen Sie Azure Container Registry aus. Authentifizierung Wählen Sie Verwaltete Identität aus. Identität Wählen Sie im Dropdownmenü die Identität aus, die Sie erstellt haben. Registrierung Wählen Sie im Dropdownmenü die Registrierung aus, die verwendet werden soll. Image Geben Sie den Namen des Images ein, das Sie verwenden möchten. Imagetag Geben Sie den Namen und das Tag des Images ein, das Sie pullen möchten. Hinweis
Wenn die Administratoranmeldeinformationen nicht für Ihre Azure Container Registry-Registrierung aktiviert sind, wird eine Warnmeldung angezeigt, und Sie müssen den Imagenamen und die Taginformationen manuell eingeben.
Wählen Sie Speichern.
Wählen Sie auf der Seite Create and deploy new revision (Neue Revision erstellen und bereitstellen) die Option Erstellen aus.
Eine neue Revision wird erstellt und bereitgestellt. Das Portal versucht automatisch, der benutzerseitig zugewiesenen verwalteten Identität die acrpull
-Rolle hinzuzufügen. Wenn die Rolle nicht hinzugefügt wird, können Sie sie manuell hinzufügen.
Sie können verifizieren, ob die Rolle hinzugefügt wurde, indem Sie die Identität im Bereich Identität der Seite der Container-App überprüfen.
- Wählen Sie im linken Menü Identität aus.
- Wählen Sie die Registerkarte Benutzerseitig zugewiesen aus.
- Wählen Sie die benutzerseitig zugewiesene verwaltete Identität aus.
- Wählen Sie im Menü auf der Seite der Ressource für die verwaltete Identität die Option Azure-Rollenzuweisungen aus.
- Vergewissern Sie sich, dass der benutzerseitig zugewiesenen verwalteten Identität die Rolle
acrpull
zugewiesen ist.
Erstellen einer Container-App mit einem privaten Image
Wenn Sie eine Container-App mit nicht mit einem öffentlichen Image erstellen möchten, können Sie auch die folgenden Schritte ausführen.
- Erstellen Sie eine benutzerseitig zugewiesene verwaltete Identität.
- Fügen Sie der benutzerseitig zugewiesenen verwalteten Identität die Rolle
acrpull
hinzu. - Erstellen Sie eine Container-App mit einem privaten Image und der benutzerseitig zugewiesenen verwalteten Identität.
Diese Methode ist typisch für Szenarien mit Infrastruktur als Code (IaC).
Bereinigen von Ressourcen
Wenn Sie diese Anwendung nicht weiter verwenden möchten, können Sie die Azure Container Apps-Instanz und alle zugehörigen Dienste löschen, indem Sie die Ressourcengruppe entfernen.
Warnung
Durch das Löschen der Ressourcengruppe werden alle Ressourcen in der Gruppe gelöscht. Wenn Sie über weitere Ressourcen in der Gruppe verfügen, werden auch diese Ressourcen gelöscht. Wenn Sie die Ressourcen beibehalten möchten, können Sie die Container-App-Instanz und die Container-App-Umgebung löschen.
- Wählen Sie Ihre Ressourcengruppe im Abschnitt Übersicht aus.
- Wählen Sie oben in der Übersicht der Ressourcengruppe die Option Ressourcengruppe löschen aus.
- Geben Sie im Bestätigungsdialogfeld den Namen der Ressourcengruppe ein.
- Klicken Sie auf Löschen. Der Vorgang zum Löschen der Ressourcengruppe kann einige Minuten dauern.
Systemseitig zugewiesene verwaltete Identität
Die Methode zum Konfigurieren einer systemseitig zugewiesenen verwalteten Identität im Azure-Portal entspricht der Methode zum Konfigurieren einer benutzerseitig zugewiesenen verwalteten Identität. Der einzige Unterschied besteht darin, dass Sie keine benutzerseitig zugewiesene verwaltete Identität erstellen müssen. Stattdessen wird die systemseitig zugewiesene verwaltete Identität erstellt, wenn Sie die Container-App erstellen.
Nachfolgend sind die Schritte zum Konfigurieren einer systemseitig zugewiesenen verwalteten Identität im Azure-Portal aufgeführt:
- Erstellen Sie eine Container-App mit einem öffentlichen Image.
- Erstellen Sie eine Container-App-Revision mit einem privaten Image und der systemseitig zugewiesenen verwalteten Identität.
Voraussetzungen
- Ein Azure-Konto mit einem aktiven Abonnement.
- Falls Sie keins haben, können Sie kostenlos eins erstellen.
- Ein privates Azure Container Registry-Repository mit einem Image, das Sie pullen möchten. Weitere Informationen finden Sie unter Erstellen einer privaten Azure Container Registry-Instanz.
Erstellen einer Container-App
Führen Sie die folgenden Schritte aus, um eine Container-App mit dem Standardimage für den Schnellstart zu erstellen.
Navigieren Sie zur Startseite des Portals.
Suchen Sie in der oberen Suchleiste nach Container Apps.
Wählen Sie in den Suchergebnissen Container Apps aus.
Wählen Sie die Schaltfläche Erstellen.
Gehen Sie auf der Registerkarte Grundeinstellungen wie folgt vor:
Einstellung Aktion Abonnement Wählen Sie Ihr Azure-Abonnement. Ressourcengruppe Wählen Sie eine vorhandene Ressourcengruppe aus, oder erstellen Sie eine neue. Name der Container-App Geben Sie einen Namen für die Container-App ein. Location Wählen Sie einen Standort aus. Erstellen einer Container-App-Umgebung Erstellen Sie eine neue Umgebung, oder wählen Sie eine vorhandene Umgebung aus. Wählen Sie auf der Seite Container-App erstellen die Schaltfläche Überprüfen und erstellen aus.
Wählen Sie auf der Seite Container-App erstellen die Schaltfläche Erstellen aus.
Es dauert einige Minuten, bis die Bereitstellung der Container-App abgeschlossen ist. Klicken Sie nach Abschluss der Bereitstellung auf Zu Ressource wechseln.
Bearbeiten und Bereitstellen einer Revision
Bearbeiten Sie den Container so, dass das Image aus Ihrer privaten Azure Container Registry-Instanz verwendet wird, und konfigurieren Sie die Authentifizierung unter Verwendung einer systemseitig zugewiesenen verwalteten Identität.
Wählen Sie im Menü auf der linken Seite Container aus.
Wählen Sie Bearbeiten und bereitstellen aus.
Wählen Sie in der Liste den Container simple-hello-world-container aus.
Einstellung Aktion Name Geben Sie den Namen der Container-App ein. Bildquelle Wählen Sie Azure Container Registry aus. Authentifizierung Wählen Sie Verwaltete Identität aus. Identität Wählen Sie System assigned (Systemseitig zugewiesen) aus. Registrierung Geben Sie den Registrierungsnamen ein. Image Geben Sie den Imagenamen ein. Imagetag Geben Sie das Tag ein. Hinweis
Wenn die Administratoranmeldeinformationen nicht für Ihre Azure Container Registry-Registrierung aktiviert sind, wird eine Warnmeldung angezeigt, und Sie müssen den Imagenamen und die Taginformationen manuell eingeben.
Wählen Sie unten auf der Seite Speichern aus.
Wählen Sie unten auf der Seite Create and deploy new revision (Neue Revision erstellen und bereitstellen) die Option Erstellen aus.
Wählen Sie auf der Seite Revision management (Revisionsverwaltung) nach einigen Minuten Aktualisieren aus, um die neue Revision anzuzeigen.
Eine neue Revision wird erstellt und bereitgestellt. Das Portal versucht automatisch, der systemseitig zugewiesenen verwalteten Identität die Rolle acrpull
hinzuzufügen. Wenn die Rolle nicht hinzugefügt wird, können Sie sie manuell hinzufügen.
Sie können verifizieren, ob die Rolle hinzugefügt wurde, indem Sie die Identität im Bereich Identität der Seite der Container-App überprüfen.
- Wählen Sie im linken Menü Identität aus.
- Wählen Sie die Registerkarte Systemseitig zugewiesen aus.
- Wählen Sie Azure-Rollenzuweisungen aus.
- Vergewissern Sie sich, dass die Rolle
acrpull
der systemseitig zugewiesenen verwalteten Identität zugewiesen ist.
Bereinigen von Ressourcen
Wenn Sie diese Anwendung nicht weiter verwenden möchten, können Sie die Azure Container Apps-Instanz und alle zugehörigen Dienste löschen, indem Sie die Ressourcengruppe entfernen.
Warnung
Durch das Löschen der Ressourcengruppe werden alle Ressourcen in der Gruppe gelöscht. Wenn Sie über weitere Ressourcen in der Gruppe verfügen, werden auch diese Ressourcen gelöscht. Wenn Sie die Ressourcen beibehalten möchten, können Sie die Container-App-Instanz und die Container-App-Umgebung löschen.
- Wählen Sie Ihre Ressourcengruppe im Abschnitt Übersicht aus.
- Wählen Sie oben in der Übersicht der Ressourcengruppe die Option Ressourcengruppe löschen aus.
- Geben Sie im Bestätigungsdialogfeld den Namen der Ressourcengruppe ein.
- Klicken Sie auf Löschen. Der Vorgang zum Löschen der Ressourcengruppe kann einige Minuten dauern.
In diesem Artikel wird beschrieben, wie Sie Ihre Container-App für die Verwendung von verwalteten Identitäten zum Pullen von Images aus einem privaten Azure Container Registry-Repository über die Azure CLI und Azure PowerShell konfigurieren.
Voraussetzungen
Voraussetzung | Beschreibung |
---|---|
Azure-Konto | Ein Azure-Konto mit einem aktiven Abonnement. Falls Sie keins haben, können Sie kostenlos eins erstellen. |
Azure CLI | Bei Verwendung der Azure CLI installieren Sie die Azure CLI auf Ihrem lokalen Computer. |
Azure PowerShell | Bei Verwendung von PowerShell installieren Sie Azure PowerShell auf Ihrem lokalen Computer. Stellen Sie sicher, dass die neueste Version des Az.App-Moduls installiert ist. Führen Sie dazu den Befehl Install-Module -Name Az.App aus. |
Azure Container Registry | Ein privates Azure Container Registry-Repository mit einem Image, das Sie pullen möchten. Schnellstart: Erstellen einer privaten Containerregistrierung mit der Azure CLI oder Schnellstart: Erstellen einer privaten Containerregistrierung mit Azure PowerShell |
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
Legen Sie anschließend die folgenden Umgebungsvariablen fest. Ersetzen Sie die Platzhalter, die von <>
umgeben sind, durch Ihre Werte.
RESOURCE_GROUP="<YOUR_RESOURCE_GROUP_NAME>"
LOCATION="<YOUR_LOCATION>"
CONTAINERAPPS_ENVIRONMENT="<YOUR_ENVIRONMENT_NAME>"
REGISTRY_NAME="<YOUR_REGISTRY_NAME>"
CONTAINERAPP_NAME="<YOUR_CONTAINERAPP_NAME>"
IMAGE_NAME="<YOUR_IMAGE_NAME>"
Wenn Sie bereits über eine Ressourcengruppe verfügen, überspringen Sie diesen Schritt. Anderenfalls erstellen Sie eine Ressourcengruppe.
az group create \
--name $RESOURCE_GROUP \
--location $LOCATION
Erstellen einer Container-App-Umgebung
Wenn die Umgebung nicht vorhanden ist, führen Sie den folgenden Befehl aus:
Führen Sie den folgenden Befehl aus, um die Umgebung zu erstellen:
az containerapp env create \
--name $CONTAINERAPPS_ENVIRONMENT \
--resource-group $RESOURCE_GROUP \
--location $LOCATION
Fahren Sie mit dem nächsten Abschnitt fort, um eine benutzerseitig zugewiesene verwaltete Identität zu konfigurieren, oder fahren Sie mit dem Abschnitt Systemseitig zugewiesene verwaltete Identität fort.
Benutzerseitig zugewiesene verwaltete Identität
Führen Sie diese Schritte aus, um eine benutzerseitig zugewiesene verwaltete Identität zu konfigurieren:
- Erstellen Sie eine benutzerseitig zugewiesene verwaltete Identität.
- Wenn Sie PowerShell verwenden, weisen Sie der verwalteten Identität eine
acrpull
-Rolle für Ihre Registrierung zu. Die Azure CLI weist diese Rolle automatisch zu. - Erstellen Sie eine Container-App mit dem Image aus der privaten Registrierung, die mit der benutzerseitig zugewiesenen verwalteten Identität authentifiziert wird.
Erstellen einer benutzerseitig zugewiesenen verwalteten Identität
Erstellen Sie eine benutzerseitig zugewiesene verwaltete Identität. Ersetzen Sie vor dem Ausführen des folgenden Befehls die <PLATZHALTER> durch den Namen Ihrer verwalteten Identität.
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)
Erstellen einer Container-App
Erstellen Sie Ihre Container-App mit Ihrem Image aus der privaten Registrierung, die mit der Identität authentifiziert wurde.
Kopieren Sie die Ressourcen-ID der Identität, und fügen Sie sie im unten stehenden Befehl anstelle der <IDENTITY_ID>-Platzhalter ein. Wenn Ihr Imagetag nicht latest
lautet, ersetzen Sie „latest“ durch Ihr Tag.
echo $IDENTITY_ID
az containerapp create \
--name $CONTAINERAPP_NAME \
--resource-group $RESOURCE_GROUP \
--environment $CONTAINERAPPS_ENVIRONMENT \
--user-assigned <IDENTITY_ID> \
--registry-identity <IDENTITY_ID> \
--registry-server "${REGISTRY_NAME}.azurecr.io" \
--image "${REGISTRY_NAME}.azurecr.io/${IMAGE_NAME}:latest"
Bereinigung
Achtung
Mit dem folgenden Befehl werden die angegebene Ressourcengruppe und alle darin enthaltenen Ressourcen gelöscht. Falls in der angegebenen Ressourcengruppe Ressourcen enthalten sind, die nicht zum Umfang dieser Schnellstartanleitung gehören, werden sie ebenfalls gelöscht.
az group delete --name $RESOURCE_GROUP
Systemseitig zugewiesene verwaltete Identität
Zum Konfigurieren einer systemseitig zugewiesenen Identität führen Sie folgende Schritte aus:
- Erstellen Sie eine Container-App mit einem öffentlichen Image.
- Weisen Sie der Container-App eine systemseitig zugewiesene verwaltete Identität zu.
- Aktualisieren Sie die Container-App mit dem privaten Image.
Erstellen einer Container-App
Erstellen Sie einen Container mit einem öffentlichen Image.
az containerapp create \
--name $CONTAINERAPP_NAME \
--resource-group $RESOURCE_GROUP \
--environment $CONTAINERAPPS_ENVIRONMENT \
--image mcr.microsoft.com/k8se/quickstart:latest \
--target-port 80 \
--ingress external
Aktualisieren der Container-App
Aktualisieren Sie die Container-App mit dem Image aus Ihrer privaten Containerregistrierung, und fügen Sie eine systemseitig zugewiesene verwaltete Identität für die Authentifizierung des Azure Container Registry-Pulls hinzu. Sie können auch weitere Einstellungen hinzufügen, die für Ihre Container-App benötigt werden (z. B. Eingangs-, Skalierungs- und Dapr-Einstellungen).
Legen Sie den Registrierungsserver fest, und aktivieren Sie die systemseitig zugewiesene verwaltete Identität in der Container-App.
az containerapp registry set \
--name $CONTAINERAPP_NAME \
--resource-group $RESOURCE_GROUP \
--identity system \
--server "${REGISTRY_NAME}.azurecr.io"
az containerapp update \
--name $CONTAINERAPP_NAME \
--resource-group $RESOURCE_GROUP \
--image "${REGISTRY_NAME}.azurecr.io/${IMAGE_NAME}:latest"
Bereinigung
Achtung
Mit dem folgenden Befehl werden die angegebene Ressourcengruppe und alle darin enthaltenen Ressourcen gelöscht. Falls in der angegebenen Ressourcengruppe Ressourcen enthalten sind, die nicht zum Umfang dieser Schnellstartanleitung gehören, werden sie ebenfalls gelöscht.
az group delete --name $RESOURCE_GROUP
In diesem Artikel wird beschrieben, wie Sie Ihre Container-App mit einer Bicep-Vorlage so konfigurieren, dass benutzerseitig zugewiesene verwaltete Identitäten zum Pullen von Images aus privaten Azure Container Registry-Repositorys verwendet werden.
Voraussetzungen
- Ein Azure-Konto mit einem aktiven Abonnement.
- Falls Sie keins haben, können Sie kostenlos eins erstellen.
- Bei Verwendung der Azure CLI installieren Sie die Azure CLI auf Ihrem lokalen Computer.
- Bei Verwendung von PowerShell installieren Sie Azure PowerShell auf Ihrem lokalen Computer. Stellen Sie sicher, dass die neueste Version des Az.App-Moduls installiert ist. Führen Sie dazu den Befehl
Install-Module -Name Az.App
aus. - Ein privates Azure Container Registry-Repository mit einem Image, das Sie pullen möchten. Informationen zum Erstellen einer Containerregistrierung und zum Pushen eines Images finden Sie unter Schnellstart: Erstellen einer privaten Containerregistrierung mit der Azure CLI oder Schnellstart: Erstellen einer privaten Containerregistrierung mit Azure PowerShell
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
Installieren von Bicep
Wenn Sie Bicep nicht installiert haben, können Sie es wie folgt installieren.
az bicep install
Wenn Sie Bicep installiert haben, stellen Sie sicher, dass Sie über die neueste Version verfügen.
az bicep upgrade
Weitere Informationen finden Sie unter Installieren von Bicep.
Festlegen von Umgebungsvariablen
Legen Sie anschließend die folgenden Umgebungsvariablen fest. Ersetzen Sie Platzhalter, die von <>
umgeben sind, durch Ihre Werte.
RESOURCE_GROUP="<RESOURCE_GROUP_NAME>"
LOCATION="<LOCATION>"
REGISTRY_NAME="<REGISTRY_NAME>"
IMAGE_NAME="<IMAGE_NAME>"
IMAGE_TAG="<IMAGE_TAG>"
BICEP_TEMPLATE="<BICEP_TEMPLATE>"
CONTAINERAPPS_ENVIRONMENT="<ENVIRONMENT_NAME>"
CONTAINER_NAME="<CONTAINER_NAME>"
CONTAINERAPP_NAME="<CONTAINERAPP_NAME>"
USER_ASSIGNED_IDENTITY_NAME="<USER_ASSIGNED_IDENTITY_NAME>"
LOG_ANALYTICS_WORKSPACE_NAME="<LOG_ANALYTICS_WORKSPACE_NAME>"
APP_INSIGHTS_NAME="<APP_INSIGHTS_NAME>"
ACR_PULL_DEFINITION_ID="7f951dda-4ed3-4680-a7ca-43fe172d538d"
Die Rolle AcrPull
gewährt Ihrer benutzerseitig zugewiesenen verwalteten Identität die Berechtigung zum Abrufen des Images aus der Registrierung.
Bicep-Vorlage
Kopieren Sie die folgende Bicep-Vorlage, und speichern Sie sie als Datei mit der Erweiterung .bicep
.
param environmentName string
param logAnalyticsWorkspaceName string
param appInsightsName string
param containerAppName string
param azureContainerRegistry string
param azureContainerRegistryImage string
param azureContainerRegistryImageTag string
param acrPullDefinitionId string
param userAssignedIdentityName string
param location string = resourceGroup().location
resource identity 'Microsoft.ManagedIdentity/userAssignedIdentities@2022-01-31-preview' = {
name: userAssignedIdentityName
location: location
}
resource roleAssignment 'Microsoft.Authorization/roleAssignments@2022-04-01' = {
name: guid(resourceGroup().id, azureContainerRegistry, 'AcrPullTestUserAssigned')
properties: {
principalId: identity.properties.principalId
principalType: 'ServicePrincipal'
// acrPullDefinitionId has a value of 7f951dda-4ed3-4680-a7ca-43fe172d538d
roleDefinitionId: resourceId('Microsoft.Authorization/roleDefinitions', acrPullDefinitionId)
}
}
resource logAnalyticsWorkspace 'Microsoft.OperationalInsights/workspaces@2022-10-01' = {
name: logAnalyticsWorkspaceName
location: location
properties: any({
retentionInDays: 30
features: {
searchVersion: 1
}
sku: {
name: 'PerGB2018'
}
})
}
resource appInsights 'Microsoft.Insights/components@2020-02-02' = {
name: appInsightsName
location: location
kind: 'web'
properties: {
Application_Type: 'web'
WorkspaceResourceId: logAnalyticsWorkspace.id
}
}
resource appEnvironment 'Microsoft.App/managedEnvironments@2022-06-01-preview' = {
name: environmentName
location: location
properties: {
daprAIInstrumentationKey: appInsights.properties.InstrumentationKey
appLogsConfiguration: {
destination: 'log-analytics'
logAnalyticsConfiguration: {
customerId: logAnalyticsWorkspace.properties.customerId
sharedKey: logAnalyticsWorkspace.listKeys().primarySharedKey
}
}
}
}
resource containerApp 'Microsoft.App/containerApps@2022-06-01-preview' = {
name: containerAppName
location: location
identity: {
type: 'UserAssigned'
userAssignedIdentities: {
'${identity.id}': {}
}
}
properties: {
environmentId: appEnvironment.id
configuration: {
ingress: {
targetPort: 8080
external: true
}
registries: [
{
server: '${azureContainerRegistry}.azurecr.io'
identity: identity.id
}
]
}
template: {
containers: [
{
image: '${azureContainerRegistry}.azurecr.io/${azureContainerRegistryImage}:${azureContainerRegistryImageTag}'
name: '${azureContainerName}'
resources: {
cpu: 1
memory: '2Gi'
}
}
]
scale: {
minReplicas: 1
maxReplicas: 1
}
}
}
}
output location string = location
output environmentId string = appEnvironment.id
Bereitstellen der Container-App
Stellen Sie Ihre Container App mit dem folgenden Befehl bereit.
az deployment group create \
--resource-group $RESOURCE_GROUP \
--template-file $BICEP_TEMPLATE \
--parameters environmentName="${CONTAINERAPPS_ENVIRONMENT}" \
logAnalyticsWorkspaceName="${LOG_ANALYTICS_WORKSPACE_NAME}" \
appInsightsName="${APP_INSIGHTS_NAME}" \
containerAppName="${CONTAINERAPP_NAME}" \
azureContainerRegistry="${REGISTRY_NAME}" \
azureContainerRegistryImage="${IMAGE_NAME}" \
azureContainerRegistryImageTag="${IMAGE_TAG}" \
azureContainerName="${CONTAINER_NAME}" \
acrPullDefinitionId="${ACR_PULL_DEFINITION_ID}" \
userAssignedIdentityName="${USER_ASSIGNED_IDENTITY_NAME}" \
location="${LOCATION}"
Dieser Befehl stellt Folgendes bereit.
- Eine Azure-Ressourcengruppe.
- Eine Container Apps-Umgebung.
- Einen Log Analytics-Arbeitsbereich, der der Container Apps-Umgebung zugeordnet ist.
- Eine Application Insights-Ressource für die verteilte Ablaufverfolgung.
- Eine vom Benutzer zugewiesene verwaltete Identität.
- Einen Container zum Speichern des Images.
- Eine Container-App basierend auf dem Image.
Wenn Sie die Fehlermeldung Failed to parse '<YOUR_BICEP_FILE_NAME>', please check whether it is a valid JSON format
erhalten, stellen Sie sicher, dass Ihre Bicep-Vorlagendatei die Erweiterung .bicep
hat.
Zusätzliche Ressourcen
Weitere Informationen findest du unter folgenden Themen.