Freigeben über


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.

  1. Erstellen Sie eine Container-App mit einem öffentlichen Image.
  2. Fügen Sie die benutzerseitig zugewiesene verwaltete Identität zur Container-App hinzu.
  3. 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.

  • 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.

  1. Navigieren Sie zur Startseite des Portals.

  2. Suchen Sie in der oberen Suchleiste nach Container Apps.

  3. Wählen Sie in den Suchergebnissen Container Apps aus.

  4. Wählen Sie die Schaltfläche Erstellen.

  5. 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.
  6. Wählen Sie auf der Seite Container-App erstellen die Schaltfläche Überprüfen und erstellen aus.

  7. 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

  1. Wählen Sie im linken Menü Identität aus.
  2. Wählen Sie die Registerkarte Benutzerseitig zugewiesen aus.
  3. Wählen Sie die Schaltfläche Benutzerseitig zugewiesene verwaltete Identität hinzufügen aus.
  4. Wählen Sie Ihr Abonnement aus.
  5. Wählen Sie die von Ihnen erstellte Identität aus.
  6. 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.

  1. Wählen Sie im linken Menü Revision Management (Revisionsverwaltung) aus.

  2. Wählen Sie Create new revision (Neue Revision erstellen) aus.

  3. Wählen Sie in der Tabelle Containerimage das Containerimage aus.

  4. 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.

    Screenshot des Dialogfelds zum Bearbeiten eines Containers mit Eingabe einer benutzerseitig zugewiesenen verwalteten Identität.

    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.

  5. Wählen Sie Speichern.

  6. 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.

  1. Wählen Sie im linken Menü Identität aus.
  2. Wählen Sie die Registerkarte Benutzerseitig zugewiesen aus.
  3. Wählen Sie die benutzerseitig zugewiesene verwaltete Identität aus.
  4. Wählen Sie im Menü auf der Seite der Ressource für die verwaltete Identität die Option Azure-Rollenzuweisungen aus.
  5. 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.

  1. Erstellen Sie eine benutzerseitig zugewiesene verwaltete Identität.
  2. Fügen Sie der benutzerseitig zugewiesenen verwalteten Identität die Rolle acrpull hinzu.
  3. 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.

  1. Wählen Sie Ihre Ressourcengruppe im Abschnitt Übersicht aus.
  2. Wählen Sie oben in der Übersicht der Ressourcengruppe die Option Ressourcengruppe löschen aus.
  3. Geben Sie im Bestätigungsdialogfeld den Namen der Ressourcengruppe ein.
  4. 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:

  1. Erstellen Sie eine Container-App mit einem öffentlichen Image.
  2. Erstellen Sie eine Container-App-Revision mit einem privaten Image und der systemseitig zugewiesenen verwalteten Identität.

Voraussetzungen

Erstellen einer Container-App

Führen Sie die folgenden Schritte aus, um eine Container-App mit dem Standardimage für den Schnellstart zu erstellen.

  1. Navigieren Sie zur Startseite des Portals.

  2. Suchen Sie in der oberen Suchleiste nach Container Apps.

  3. Wählen Sie in den Suchergebnissen Container Apps aus.

  4. Wählen Sie die Schaltfläche Erstellen.

  5. 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.
  6. Wählen Sie auf der Seite Container-App erstellen die Schaltfläche Überprüfen und erstellen aus.

  7. 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.

  1. Wählen Sie im Menü auf der linken Seite Container aus.

  2. Wählen Sie Bearbeiten und bereitstellen aus.

  3. 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.

    Screenshot der Bearbeitung eines Containers mit einer systemseitig zugewiesenen verwalteten Identität.

    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.

  4. Wählen Sie unten auf der Seite Speichern aus.

  5. Wählen Sie unten auf der Seite Create and deploy new revision (Neue Revision erstellen und bereitstellen) die Option Erstellen aus.

  6. 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.

  1. Wählen Sie im linken Menü Identität aus.
  2. Wählen Sie die Registerkarte Systemseitig zugewiesen aus.
  3. Wählen Sie Azure-Rollenzuweisungen aus.
  4. 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.

  1. Wählen Sie Ihre Ressourcengruppe im Abschnitt Übersicht aus.
  2. Wählen Sie oben in der Übersicht der Ressourcengruppe die Option Ressourcengruppe löschen aus.
  3. Geben Sie im Bestätigungsdialogfeld den Namen der Ressourcengruppe ein.
  4. 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:

  1. Erstellen Sie eine benutzerseitig zugewiesene verwaltete Identität.
  2. 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.
  3. 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:

  1. Erstellen Sie eine Container-App mit einem öffentlichen Image.
  2. Weisen Sie der Container-App eine systemseitig zugewiesene verwaltete Identität zu.
  3. 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

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.

Nächste Schritte