Partage via


Tirage (pull) d’image Azure Container Apps avec une identité managée

Vous pouvez tirer des images à partir de référentiels privés dans Microsoft Azure Container Registry en utilisant des identités managées pour l’authentification afin d’éviter l’utilisation d’informations d’identification d’administration.

Vous pouvez utiliser une identité gérée attribuée par l'utilisateur ou par le système pour vous authentifier auprès d'Azure Container Registry.

  • Avec une identité managée affectée par l’utilisateur, vous créez et gérez l’identité en dehors d’Azure Container Apps. Elle peut être affectée à plusieurs ressources Azure, dont Azure Container Apps.
  • Avec une identité managée affectée par le système, l’identité est créée et gérée par Azure Container Apps. L’identité est liée à votre application conteneur et supprimée lorsque votre application est supprimée.
  • Si possible, vous devez utiliser une identité managée affectée par l’utilisateur pour extraire des images.

Container Apps recherche une nouvelle version de l’image chaque fois qu’un conteneur est démarré. Dans la terminologie Docker ou Kubernetes, Container Apps définit la stratégie d’extraction d’images de chaque conteneur sur always.

Cet article explique comment utiliser le portail Azure pour configurer votre application conteneur afin d’utiliser des identités managées affectées par l’utilisateur et par le système pour extraire des images à partir de référentiels Azure Container Registry privés.

Identité managée affectée par l’utilisateur

Les étapes suivantes décrivent le processus de configuration de votre application conteneur pour utiliser une identité managée affectée par l’utilisateur afin d’extraire des images à partir de référentiels Azure Container Registry privés.

  1. Créer une application conteneur avec une image publique.
  2. Ajouter l’identité managée affectée par l’utilisateur à l’application conteneur.
  3. Créer une révision d’application conteneur avec une image privée et l’identité managée affectée par l’utilisateur.

Prérequis

  • Compte Azure avec un abonnement actif.

  • Azure Container Registry privé contenant une image que vous souhaitez extraire.

  • Votre registre de conteneurs Azure Container Registry doit autoriser les jetons d’audience ARM pour l’authentification afin d’utiliser l’identité managée pour extraire des images. Utilisez la commande suivante pour vérifier si les jetons ARM sont autorisés à accéder à votre ACR :

    az acr config authentication-as-arm show -r <REGISTRY>
    

    Si les jetons ARM ne sont pas autorisés, vous pouvez les autoriser avec la commande suivante :

    az acr config authentication-as-arm update -r <REGISTRY> --status enabled
    
  • Créez une identité managée affectée par l’utilisateur. Pour plus d’informations, consultez Créer une identité managée affectée par l’utilisateur.

Créer une application de conteneur

Suivez les étapes suivantes pour créer une application conteneur avec l’image de démarrage rapide par défaut.

  1. Accédez à la page d’accueil du portail Azure.

  2. Dans la barre de recherche supérieure, recherchez Applications conteneur.

  3. Dans les résultats de la recherche, sélectionnez Applications conteneur.

  4. Cliquez sur le bouton Créer.

  5. Sous l’onglet Informations de base, effectuez les actions suivantes.

    Setting Action
    Abonnement Sélectionnez votre abonnement Azure.
    Groupe de ressources Sélectionnez un groupe de ressources existant ou créez-en un.
    Nom de l’application conteneur Entrez un nom d’application conteneur.
    Lieu Sélectionnez un emplacement.
    Créer un environnement d’application conteneur Sélectionnez ou créez un environnement.
  6. Au bas de la page Créer une application conteneur, sélectionnez le bouton Vérifier + créer.

  7. Sélectionnez le bouton Créer au bas de la fenêtre Créer une application conteneur.

Patientez quelques minutes jusqu’à ce que le déploiement de l’application conteneur soit terminé. Une fois le déploiement effectué, sélectionnez Accéder à la ressource.

Ajouter l’identité managée affectée par l’utilisateur

  1. Dans le volet gauche, sélectionnez Identité.
  2. Sélectionnez l’onglet Affecté(e) par l’utilisateur.
  3. Sélectionnez le bouton Ajouter une identité managée affectée par l’utilisateur.
  4. Sélectionnez votre abonnement.
  5. Sélectionnez l’identité que vous avez créée.
  6. Sélectionnez Ajouter.

Créez une révision d’application conteneur

Créer une révision d’application conteneur avec une image privée et l’identité managée affectée par le système.

  1. Dans le menu de gauche, sélectionnez Gestion des révisions.

  2. Sélectionnez Créer une nouvelle révision.

  3. Dans la table Image conteneur, sélectionnez l’image conteneur.

  4. Dans la boîte de dialogue Modifier un conteneur, entrez les informations.

    Champ Action
    Nom Entrez le nom du conteneur.
    Source de l’image Sélectionnez Azure Container Registry.
    Authentification Sélectionnez Identité managée.
    Identité Dans le menu déroulant, sélectionnez l’identité que vous avez créée.
    Registre Dans le menu déroulant, sélectionnez le registre que vous souhaitez utiliser.
    Image Entrez le nom de l’image que vous voulez utiliser.
    Étiquette d’image Entrez le nom et l’étiquette de l’image que vous souhaitez extraire.

    Capture d’écran de la boîte de dialogue Modifier un conteneur dans laquelle entrer l’identité managée affectée par l’utilisateur.

    Remarque

    Si les informations d’identification d’administration ne sont pas activées sur votre registre Azure Container Registry, un message d’avertissement s’affiche et vous devez entrer manuellement les informations de nom et d’étiquette de l’image.

  5. Sélectionnez Enregistrer.

  6. Dans la page Créer et déployer une nouvelle révision, sélectionnez Créer.

Une nouvelle révision sera créée et déployée. Le portail tentera automatiquement d’ajouter le rôle acrpull à l’identité managée affectée par l’utilisateur. Si le rôle n’est pas ajouté, vous pouvez l’ajouter manuellement.

Vous pouvez vérifier que le rôle a été ajouté en vérifiant l’identité à partir du volet Identité de la page de l’application conteneur.

  1. Dans le volet gauche, sélectionnez Identité.
  2. Sélectionnez l’onglet Affecté(e) par l’utilisateur.
  3. Sélectionnez l’identité managée affectée par l’utilisateur.
  4. Sélectionnez Attributions de rôles Azure dans le menu de la page des ressources d’identité managée.
  5. Vérifiez que le rôle acrpullest attribué à l’identité managée affectée par l’utilisateur.

Créer une application conteneur avec une image privée

Si vous ne souhaitez pas commencer par créer une application conteneur avec une image publique, vous pouvez également effectuer les opérations suivantes.

  1. Créez une identité managée affectée par l’utilisateur.
  2. Ajoutez le rôle acrpull à l’identité managée affectée par l’utilisateur.
  3. Créer une application conteneur avec une image privée et l’identité managée affectée par l’utilisateur.

Cette méthode est typique dans les scénarios d’infrastructure en tant que code (IaC).

Nettoyer les ressources

Si vous n’envisagez pas de continuer à utiliser cette application, vous pouvez supprimer l’instance Azure Container Apps et tous les services associés en supprimant le groupe de ressources.

Avertissement

La suppression du groupe de ressources aura pour effet de supprimer toutes les ressources qu’il contient. Si vous avez d’autres ressources dans le groupe, elles seront également supprimées. Si vous souhaitez conserver les ressources, vous pouvez supprimer l’instance et l’environnement d’application conteneur.

  1. Dans la section Vue d’ensemble, sélectionnez votre groupe de ressources.
  2. Sélectionnez le bouton Supprimer un groupe de ressources en haut de la Vue d’ensemble du groupe de ressources.
  3. Dans la boîte de dialogue de confirmation, entrez le nom du groupe de ressources.
  4. Sélectionnez Supprimer. Le processus de suppression du groupe de ressources peut prendre quelques minutes.

Identité managée affectée par le système

La méthode de configuration d’une identité managée affectée par le système dans le portail Azure est identique à la méthode de configuration d’une identité managée affectée par l’utilisateur. La seule différence est que vous n’avez pas besoin de créer une identité managée affectée par l’utilisateur. Au lieu de cela, l’identité managée affectée par le système est créée lorsque vous créez l’application conteneur.

La méthode de configuration d’une identité managée affectée par le système dans le portail Azure est la suivante :

  1. Créer une application conteneur avec une image publique.
  2. Créer une révision d’application conteneur avec une image privée et l’identité managée affectée par le système.

Prérequis

Créer une application de conteneur

Pour créer une application conteneur avec l’image de démarrage rapide par défaut, procédez comme suit.

  1. Accédez à la page d’accueil du portail Azure.

  2. Dans la barre de recherche supérieure, recherchez Applications conteneur.

  3. Dans les résultats de la recherche, sélectionnez Applications conteneur.

  4. Cliquez sur le bouton Créer.

  5. Sous l’onglet Informations de base, effectuez les actions suivantes.

    Setting Action
    Abonnement Sélectionnez votre abonnement Azure.
    Groupe de ressources Sélectionnez un groupe de ressources existant ou créez-en un.
    Nom de l’application conteneur Entrez un nom d’application conteneur.
    Lieu Sélectionnez un emplacement.
    Créer un environnement d’application conteneur Sélectionnez ou créez un environnement.
  6. Au bas de la page Créer une application conteneur, sélectionnez le bouton Vérifier + créer.

  7. Au bas de la page Créer une application conteneur, sélectionnez le bouton Créer.

Patientez quelques minutes jusqu’à ce que le déploiement de l’application conteneur soit terminé. Une fois le déploiement effectué, sélectionnez Accéder à la ressource.

Modifier et déployer une révision

Modifiez le conteneur pour utiliser l’image de votre Azure Container Registry privé et configurez l’authentification pour utiliser l’identité affectée par le système.

  1. Dans le menu situé à gauche, sélectionnez Conteneurs.

  2. Sélectionnez Modifier et déployer.

  3. Dans la liste, sélectionnez le conteneur simple-hello-world-container.

    Setting Action
    Nom Entrez le nom de l’application conteneur.
    Source de l’image Sélectionnez Azure Container Registry.
    Authentification Sélectionnez Identité managée.
    Identité Sélectionnez Affectée par le système.
    Registre Entrez le nom du registre.
    Image Entrer le nom de l’image.
    Balise d’image Entrez l’étiquette.

    Capture d’écran de la boîte de dialogue Modifier un conteneur avec une identité managée affectée par le système.

    Remarque

    Si les informations d’identification d’administration ne sont pas activées sur votre registre Azure Container Registry, un message d’avertissement s’affiche et vous devez entrer manuellement les informations de nom et d’étiquette de l’image.

  4. Sélectionnez Enregistrer au bas de la page.

  5. En bas de la page Créer et déployer une nouvelle révision, sélectionnez Créer.

  6. Après quelques minutes, dans la page Gestion des révisions, sélectionnez Actualiser pour afficher la nouvelle révision.

Une nouvelle révision sera créée et déployée. Le portail tentera automatiquement d’ajouter le rôle acrpull à l’identité managée affectée par le système. Si le rôle n’est pas ajouté, vous pouvez l’ajouter manuellement.

Vous pouvez vérifier que le rôle a été ajouté en vérifiant l’identité dans le volet Identité de la page de l’application conteneur.

  1. Dans le volet gauche, sélectionnez Identité.
  2. Sélectionnez l’onglet Affectée par le système.
  3. Sélection d’Attributions de rôles Azure.
  4. Vérifiez que le rôle acrpullest attribué à l’identité managée affectée par le système.

Nettoyer les ressources

Si vous n’envisagez pas de continuer à utiliser cette application, vous pouvez supprimer l’instance Azure Container Apps et tous les services associés en supprimant le groupe de ressources.

Avertissement

La suppression du groupe de ressources aura pour effet de supprimer toutes les ressources qu’il contient. Si vous avez d’autres ressources dans le groupe, elles seront également supprimées. Si vous souhaitez conserver les ressources, vous pouvez supprimer l’instance et l’environnement d’application conteneur.

  1. Dans la section Vue d’ensemble, sélectionnez votre groupe de ressources.
  2. Sélectionnez le bouton Supprimer un groupe de ressources en haut de la Vue d’ensemble du groupe de ressources.
  3. Dans la boîte de dialogue de confirmation, entrez le nom du groupe de ressources.
  4. Sélectionnez Supprimer. Le processus de suppression du groupe de ressources peut prendre quelques minutes.

Cet article explique comment configurer votre application conteneur pour utiliser des identités managées afin d’extraire des images d’un référentiel Azure Container Registry privé à l’aide d’Azure CLI et d’Azure PowerShell.

Prérequis

Logiciel requis Description
Compte Azure Compte Azure avec un abonnement actif. Si vous n’en avez pas, vous pouvez en créer un gratuitement.
Azure CLI Si vous utilisez Azure CLI, installez Azure CLI sur votre ordinateur local.
Azure PowerShell Si vous utilisez PowerShell, installez Azure PowerShell sur votre ordinateur local. Vérifiez que la dernière version du module Az.App est installée en exécutant la commande Install-Module -Name Az.App.
Azure Container Registry Azure Container Registry privé contenant une image que vous souhaitez extraire. Démarrage rapide : Créer un registre de conteneurs privé avec Azure CLI ou Démarrage rapide : Créer un registre de conteneurs privé avec Azure PowerShell

Programme d’installation

Pour vous connecter à Azure à partir de l’interface CLI, exécutez la commande suivante et suivez les invites pour procéder à l’authentification.

az login

Pour être sûr d’utiliser la dernière version de l’interface CLI, exécutez la commande de mise à niveau.

az upgrade

Ensuite, installez ou mettez à jour l’extension Azure Container Apps pour l’interface CLI.

Si vous recevez des erreurs concernant des paramètres manquants lorsque vous exécutez des commandes az containerapp dans Azure CLI ou les cmdlets du module Az.App dans Azure PowerShell, assurez-vous que la dernière version de l’extension Azure Container Apps est installée.

az extension add --name containerapp --upgrade

Remarque

À compter de mai 2024, les extensions Azure CLI n’activent plus les fonctionnalités en préversion par défaut. Pour accéder aux fonctionnalités en préversion de Container Apps, installez l’extension Container Apps avec --allow-preview true.

az extension add --name containerapp --upgrade --allow-preview true

Maintenant que la version actuelle de l’extension ou du module est installée, inscrivez les espaces de noms Microsoft.App et Microsoft.OperationalInsights.

Remarque

Les ressources Azure Container Apps ont migré de l’espace de noms Microsoft.Web vers l’espace de noms Microsoft.App. Pour plus d’informations, reportez-vous à Migration de l’espace de noms de Microsoft.Web vers Microsoft.App en mars 2022.

az provider register --namespace Microsoft.App
az provider register --namespace Microsoft.OperationalInsights

Ensuite, définissez les variables d’environnement suivantes. Remplacez les espaces réservés entourés de <> par vos valeurs.

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

Si vous avez déjà un groupe de ressources, ignorez cette étape. Autrement, sélectionnez un groupe de ressources.

az group create \
  --name $RESOURCE_GROUP \
  --location $LOCATION

Créer un environnement d’application conteneur

Si l’environnement n’existe pas, exécutez la commande suivante :

Pour créer l’environnement, exécutez la commande suivante :

az containerapp env create \
  --name $CONTAINERAPPS_ENVIRONMENT \
  --resource-group $RESOURCE_GROUP \
  --location $LOCATION

Passez à la section suivante pour configurer l’identité managée affectée par l’utilisateur, ou allez à la section Identité managée affectée par le système.

Identité managée affectée par l’utilisateur

Pour configurer l’identité managée affectée par l’utilisateur, procédez comme suit :

  1. Créez une identité managée affectée par l’utilisateur.
  2. Si vous utilisez PowerShell, attribuez un rôle acrpull pour votre registre à l’identité managée. Azure CLI effectue automatiquement cette affectation.
  3. Créez une application conteneur avec l’image à partir du registre privé authentifié avec l’identité managée affectée par l’utilisateur.

Créer une identité managée attribuée par l’utilisateur

Créez une identité managée affectée par l’utilisateur. Avant d’exécuter la commande suivante, remplacez les <ESPACES RÉSERVÉS> par le nom de votre identité managée.

IDENTITY="<YOUR_IDENTITY_NAME>"
az identity create \
  --name $IDENTITY \
  --resource-group $RESOURCE_GROUP

Obtenez l’ID de ressource de l’identité.

IDENTITY_ID=`az identity show \
  --name $IDENTITY \
  --resource-group $RESOURCE_GROUP \
  --query id`

Créer une application de conteneur

Créez votre application conteneur avec votre image à partir du registre privé authentifié avec l’identité.

Copiez l’ID de ressource de l’identité pour le coller dans les espaces réservés <IDENTITY_ID> dans la commande ci-dessous. Si votre balise d’image n’est pas latest, remplacez « latest » par votre balise.

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"

Nettoyage

Attention

La commande suivante supprime le groupe de ressources spécifié et toutes les ressources qu’il contient. Si des ressources en dehors du cadre de ce démarrage rapide existent dans le groupe de ressources spécifié, elles seront également supprimées.

az group delete --name $RESOURCE_GROUP

Identité managée affectée par le système

Pour configurer une identité affectée par le système, vous devez :

  1. Créer une application conteneur avec une image publique.
  2. Attribuer une identité managée affectée par le système à l’ application conteneur.
  3. Mettre à jour l’application conteneur avec l’image privée.

Créer une application de conteneur

Créer un conteneur avec une image publique.

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

Mettre à jour l’application conteneur

Mettez à jour l’application conteneur avec l’image provenant de votre registre de conteneurs privé et ajoutez une identité affectée par le système pour authentifier l’extraction Azure Container Registry. Vous pouvez également inclure d’autres paramètres nécessaires pour votre application conteneur, comme des paramètres d’entrée, de mise à l’échelle et de Distributed Apps Runtime (Dapr).

Définissez le serveur de Registre et activez l’identité managée affectée par le système dans l’application conteneur.

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"

Nettoyage

Attention

La commande suivante supprime le groupe de ressources spécifié et toutes les ressources qu’il contient. Si des ressources en dehors du cadre de ce démarrage rapide existent dans le groupe de ressources spécifié, elles seront également supprimées.

az group delete --name $RESOURCE_GROUP

Cet article explique comment utiliser un modèle Bicep pour configurer votre application conteneur afin d’utiliser des identités managées affectées par l’utilisateur pour extraire des images à partir de référentiels Azure Container Registry privés.

Prérequis

Programme d’installation

Pour vous connecter à Azure à partir de l’interface CLI, exécutez la commande suivante et suivez les invites pour procéder à l’authentification.

az login

Pour être sûr d’utiliser la dernière version de l’interface CLI, exécutez la commande de mise à niveau.

az upgrade

Ensuite, installez ou mettez à jour l’extension Azure Container Apps pour l’interface CLI.

Si vous recevez des erreurs concernant des paramètres manquants lorsque vous exécutez des commandes az containerapp dans Azure CLI ou les cmdlets du module Az.App dans Azure PowerShell, assurez-vous que la dernière version de l’extension Azure Container Apps est installée.

az extension add --name containerapp --upgrade

Remarque

À compter de mai 2024, les extensions Azure CLI n’activent plus les fonctionnalités en préversion par défaut. Pour accéder aux fonctionnalités en préversion de Container Apps, installez l’extension Container Apps avec --allow-preview true.

az extension add --name containerapp --upgrade --allow-preview true

Maintenant que la version actuelle de l’extension ou du module est installée, inscrivez les espaces de noms Microsoft.App et Microsoft.OperationalInsights.

Remarque

Les ressources Azure Container Apps ont migré de l’espace de noms Microsoft.Web vers l’espace de noms Microsoft.App. Pour plus d’informations, reportez-vous à Migration de l’espace de noms de Microsoft.Web vers Microsoft.App en mars 2022.

az provider register --namespace Microsoft.App
az provider register --namespace Microsoft.OperationalInsights

Installer Bicep

Si Bicep n’est pas installé, vous pouvez l’installer comme suit.

az bicep install

Si Bicep est installé, vérifiez que vous disposez de la dernière version.

az bicep upgrade

Pour plus d’informations, consultez Installation de Bicep.

Définir des variables d’environnement

Ensuite, définissez les variables d’environnement suivantes. Remplacez les espaces réservés entourés de <> par vos valeurs.

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"

Le rôle AcrPull accorde à votre identité managée affectée par l’utilisateur l’autorisation d’extraire l’image du Registre.

Modèle Bicep

Copiez le modèle Bicep suivant et enregistrez-le en tant que fichier avec l’extension .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

Déployer l’application de conteneur

Déployez votre application de conteneur avec la commande suivante.

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"

Cette commande déploie les éléments suivants.

  • Un groupe de ressources Azure.
  • Un environnement Container Apps.
  • Un espace de travail Log Analytics associé à l’environnement Container Apps.
  • Une ressource Application Insights pour le suivi distribué.
  • Une identité managée affectée par l’utilisateur.
  • Un conteneur pour stocker l’image.
  • Une application conteneur basée sur l’image.

Si vous recevez l’erreur Failed to parse '<YOUR_BICEP_FILE_NAME>', please check whether it is a valid JSON format, vérifiez que votre fichier de modèle Bicep a l’extension .bicep.

Ressources supplémentaires

Pour plus d'informations, consultez les documents suivants.

Étapes suivantes