Pull di immagini di App contenitore di Azure con l'identità gestita
È possibile eseguire il pull delle immagini dai repository privati in Registro Microsoft Azure Container usando identità gestite per l'autenticazione per evitare l'uso di credenziali amministrative.
È possibile usare un'identità gestita assegnata dal sistema o dall'utente per l'autenticazione con Registro Azure Container.
- Con un'identità gestita assegnata dall'utente, si crea e si gestisce l'identità all'esterno di App contenitore di Azure. Può essere assegnato a più risorse di Azure, incluse le App contenitore di Azure.
- Con un'identità gestita assegnata dal sistema, l'identità viene creata e gestita da App contenitore di Azure. È associato all'app contenitore e viene eliminato quando l'app viene eliminata.
- Quando possibile, è consigliabile usare un'identità gestita assegnata dall'utente per eseguire il pull delle immagini.
App contenitore verifica la presenza di una nuova versione dell'immagine ogni volta che viene avviato un contenitore. Nella terminologia di Docker o Kubernetes, l’App contenitore imposta i criteri di pull delle immagini di ogni contenitore su always
.
Questo articolo descrive come usare il portale di Azure per configurare l'app contenitore in modo da usare le identità gestite assegnate dall'utente e assegnate dal sistema per eseguire il pull delle immagini dai repository privati di Registro Azure Container.
Identità gestita assegnata dall'utente
I passaggi seguenti descrivono il processo per configurare l'app contenitore in modo da usare un'identità gestita assegnata dall'utente per eseguire il pull delle immagini dai repository privati di Registro Azure Container.
- Creare un'app contenitore con un'immagine pubblica.
- Aggiungere l'identità gestita assegnata dall'utente all'app contenitore.
- Creare una revisione dell'app contenitore con un'immagine privata e l'identità gestita assegnata dall'utente.
Prerequisiti
Un account Azure con una sottoscrizione attiva.
- Se non hai un account, puoi crearlo gratuitamente.
Un Registro Azure Container privato contenente un'immagine di cui si vuole eseguire il pull.
Il Registro Azure Container deve consentire ai token del gruppo di destinatari ARM di eseguire l'autenticazione per usare l'identità gestita per eseguire il pull delle immagini. Usare il comando seguente per verificare se i token ARM sono autorizzati ad accedere al Registro Azure Container (ACR):
az acr config authentication-as-arm show -r <REGISTRY>
Se i token ARM non sono consentiti, è possibile consentirli con il comando seguente:
az acr config authentication-as-arm update -r <REGISTRY> --status enabled
Creare un'identità gestita assegnata dall'utente. Per altre informazioni, vedere Creare un'identità gestita assegnata dall'utente.
Creare un'app contenitore
Usare i passi seguente per creare un'app contenitore con l'immagine di avvio rapido predefinita.
Passare alla pagina Home del portale.
Cercare App contenitore nella barra di ricerca superiore.
Selezionare App contenitore nei risultati della ricerca.
Selezionare il pulsante Crea.
Nella scheda Dati principali eseguire le azioni seguenti.
Impostazione Azione Abbonamento Seleziona la tua sottoscrizione di Azure. Gruppo di risorse Selezionare un gruppo di risorse esistente oppure creane uno nuovo. Nome app contenitore Immettere un nome dell'app contenitore. Location Selezionare una località. Creare un ambiente dell'app contenitore Creare un nuovo ambiente o selezionare un ambiente esistente. Selezionare il pulsante Rivedi e crea nella parte inferiore della pagina Crea app contenitore.
Selezionare il pulsante Crea nella parte inferiore della finestra Crea app contenitore.
Attendere alcuni minuti per il completamento della distribuzione dell'app contenitore. Al termine della distribuzione, selezionare Vai alla risorsa.
Aggiungere l'identità gestita assegnata dall'utente.
- Selezionare Identità dal menu a sinistra.
- Selezionare la scheda Assegnato dall'utente.
- Selezionare il pulsante Aggiungi identità gestita assegnata dall'utente.
- Selezionare la propria sottoscrizione.
- Selezionare l'identità creata.
- Selezionare Aggiungi.
Creare una revisione dell'app contenitore
Creare una revisione dell'app contenitore con un'immagine privata e l'identità gestita assegnata dal sistema.
Selezionare Gestione revisioni dal menu a sinistra.
Selezionare Crea nuova revisione.
Selezionare l'immagine del contenitore dalla tabella Immagine contenitore.
Immettere le informazioni nella finestra di dialogo Modifica un contenitore.
Campo Azione Nome Immettere un nome per il contenitore. Origine immagine Selezionare Registro Azure Container. Autenticazione Selezionare Identità gestita. Identità Selezionare l'identità creata dal menu a discesa. Registro Selezionare il registro che si vuole usare dal menu a discesa. Image Immettere il nome dell'immagine da usare. Tag dell'immagine Immettere il nome e il tag dell'immagine da estrarre. Nota
Se le credenziali amministrative non sono abilitate nel Registro Azure Container, verrà visualizzato un messaggio di avviso e sarà necessario immettere manualmente il nome dell'immagine e le informazioni sui tag.
Seleziona Salva.
Selezionare Crea dalla pagina Crea e distribuisci nuova revisione.
Verrà creata e distribuita una nuova revisione. Il portale tenterà automaticamente di aggiungere il ruolo acrpull
all'identità gestita assegnata dall'utente. Se il ruolo non viene aggiunto, è possibile aggiungerlo manualmente.
È possibile verificare che il ruolo sia stato aggiunto controllando l'identità dal riquadro Identità della pagina dell'app contenitore.
- Selezionare Identità dal menu a sinistra.
- Selezionare la scheda Assegnato dall'utente.
- Selezionare l'identità gestita assegnata dall'utente.
- Selezionare Assegnazioni di ruolo di Azure dal menu nella pagina della risorsa di identità gestita.
- Verificare che il ruolo
acrpull
sia assegnato all'identità gestita assegnata dall'utente.
Creare un'app contenitore con un'immagine privata
Se non si vuole iniziare creando un'app contenitore con un'immagine pubblica, è anche possibile eseguire le operazioni seguenti.
- Creare un'identità gestita assegnata dall'utente.
- Aggiungere il ruolo
acrpull
all’identità gestita assegnata dall'utente. - Creare un'app contenitore con un'immagine privata e l'identità gestita assegnata dall'utente.
Questo metodo è tipico negli scenari Infrastruttura come codice (IaC)
Pulire le risorse
Se non si intende continuare a usare questa applicazione, è possibile eliminare l'istanza di App contenitore di Azure e tutti i servizi associati rimuovendo il gruppo di risorse.
Avviso
L'eliminazione del gruppo di risorse eliminerà tutte le risorse nel gruppo. Se nel gruppo sono presenti altre risorse, verranno eliminate anche queste. Se si vogliono mantenere le risorse, è possibile eliminare l'istanza dell'app contenitore e l'ambiente dell'app contenitore.
- Selezionare il gruppo di risorse nella sezione Panoramica.
- Selezionare il pulsante Elimina gruppo di risorse nella parte superiore della pagina di Panoramica del gruppo di risorse.
- Immettere il nome del gruppo di risorse nella finestra di dialogo di conferma.
- Selezionare Elimina. Il completamento del processo per eliminare il gruppo di risorse può richiedere alcuni minuti.
Identità gestita assegnata dal sistema
Il metodo per configurare un'identità gestita assegnata dal sistema nel portale di Azure equivale alla configurazione di un'identità gestita assegnata dall'utente. L'unica differenza è che non è necessario creare un'identità gestita assegnata dall'utente. Al contrario, l'identità gestita assegnata dal sistema viene creata quando si crea l'app contenitore.
Il metodo per configurare un'identità gestita assegnata dal sistema nel portale di Azure è:
- Creare un'app contenitore con un'immagine pubblica.
- Creare una revisione dell'app contenitore con un'immagine privata e l'identità gestita assegnata dal sistema.
Prerequisiti
- Un account Azure con una sottoscrizione attiva.
- Se non hai un account, puoi crearlo gratuitamente.
- Un Registro Azure Container privato contenente un'immagine di cui si vuole eseguire il pull. Consultare Creare un'istanza privata di Registro Azure Container.
Creare un'app contenitore
Seguire questa procedura per creare un'app contenitore con l'immagine di avvio rapido predefinita.
Passare alla pagina Home del portale.
Cercare App contenitore nella barra di ricerca superiore.
Selezionare App contenitore nei risultati della ricerca.
Selezionare il pulsante Crea.
Nella scheda Dati principali eseguire le azioni seguenti.
Impostazione Azione Abbonamento Seleziona la tua sottoscrizione di Azure. Gruppo di risorse Selezionare un gruppo di risorse esistente oppure creane uno nuovo. Nome app contenitore Immettere un nome dell'app contenitore. Location Selezionare una località. Creare un ambiente dell'app contenitore Creare un nuovo ambiente o selezionare un ambiente esistente. Selezionare il pulsante Rivedi e crea nella parte inferiore della pagina Crea app contenitore.
Selezionare il pulsante Crea nella parte inferiore della pagina Crea app contenitore.
Attendere alcuni minuti per il completamento della distribuzione dell'app contenitore. Al termine della distribuzione, selezionare Vai alla risorsa.
Modificare e distribuire una revisione
Modificare il contenitore per usare l'immagine dal Registro Azure Container privato e configurare l'autenticazione per l'uso dell'identità assegnata dal sistema.
I Contenitori dal menu laterale a sinistra.
Selezionare Modifica e distribuisci.
Selezionare il contenitore simple-hello-world-container dall'elenco.
Impostazione Azione Nome Immettere il nome dell'app contenitore. Origine immagine Selezionare Registro Azure Container. Autenticazione Selezionare Identità gestita. Identità Selezionare Sistema assegnato. Registro Immettere il nome del Registro di sistema. Image Immettere il nome dell'immagine. Tag dell'immagine Immettere il tag. Nota
Se le credenziali amministrative non sono abilitate nel Registro Azure Container, verrà visualizzato un messaggio di avviso e sarà necessario immettere manualmente il nome dell'immagine e le informazioni sui tag.
Selezionare Salva nella parte inferiore della pagina.
Selezionare Crea nella parte inferiore della pagina Crea e distribuisci nuova revisione
Dopo alcuni minuti, selezionare Aggiorna nella pagina Gestione revisioni per visualizzare la nuova revisione.
Verrà creata e distribuita una nuova revisione. Il portale tenterà automaticamente di aggiungere il ruolo acrpull
all'identità gestita assegnata dal sistema. Se il ruolo non viene aggiunto, è possibile aggiungerlo manualmente.
È possibile verificare che il ruolo sia stato aggiunto controllando l'identità nel riquadro Identità della pagina dell'app contenitore.
- Selezionare Identità dal menu a sinistra.
- Selezionare la scheda Assegnata dal sistema.
- Selezionare assegnazioni di ruolo di Azure.
- Verificare che il ruolo
acrpull
sia assegnato all'identità gestita assegnata dal sistema.
Pulire le risorse
Se non si intende continuare a usare questa applicazione, è possibile eliminare l'istanza di App contenitore di Azure e tutti i servizi associati rimuovendo il gruppo di risorse.
Avviso
L'eliminazione del gruppo di risorse eliminerà tutte le risorse nel gruppo. Se nel gruppo sono presenti altre risorse, verranno eliminate anche queste. Se si vogliono mantenere le risorse, è possibile eliminare l'istanza dell'app contenitore e l'ambiente dell'app contenitore.
- Selezionare il gruppo di risorse nella sezione Panoramica.
- Selezionare il pulsante Elimina gruppo di risorse nella parte superiore della pagina di Panoramica del gruppo di risorse.
- Immettere il nome del gruppo di risorse nella finestra di dialogo di conferma.
- Selezionare Elimina. Il completamento del processo per eliminare il gruppo di risorse può richiedere alcuni minuti.
Questo articolo descrive come configurare l'app contenitore per l'uso di identità gestite per eseguire il pull delle immagini da un repository privato di Registro Azure Container usando l'interfaccia della riga di comando di Azure e Azure PowerShell.
Prerequisiti
Prerequisito | Descrizione |
---|---|
Account Azure | Un account Azure con una sottoscrizione attiva. Se non hai un account, puoi crearlo gratuitamente. |
Interfaccia della riga di comando di Azure | Se si usa l'interfaccia della riga di comando di Azure, installare l'interfaccia della riga di comando di Azure nel computer locale. |
Azure PowerShell | Se si usa PowerShell, installare Azure PowerShell nel computer locale. Verificare che l’ultima versione del modulo Az.App sia installata eseguendo il comando Install-Module -Name Az.App . |
Registro Azure Container | Un Registro Azure Container privato contenente un'immagine di cui si vuole eseguire il pull. Avvio rapido: Creare un registro contenitori privato usando l'interfaccia della riga di comando di Azure o Avvio rapido: Creare un registro contenitori privato con Azure PowerShell |
Attrezzaggio
Per accedere ad Azure dall'interfaccia della riga di comando, eseguire il comando seguente e seguire le istruzioni per completare il processo di autenticazione.
az login
Assicurarsi di eseguire l'ultima versione dell'interfaccia della riga di comando eseguire il comando di aggiornamento.
az upgrade
Installare o aggiornare quindi l'estensione App contenitore di Azure per l'interfaccia della riga di comando.
Se si ricevono errori relativi ai parametri mancanti quando si eseguono comandi az containerapp
nell'interfaccia della riga di comando di Azure o nei cmdlet del modulo Az.App
in Azure PowerShell, assicurarsi di avere installato la versione più recente dell'estensione App contenitore di Azure.
az extension add --name containerapp --upgrade
Nota
A partire da maggio 2024, le estensioni dell'interfaccia della riga di comando di Azure non abilitano più le funzionalità di anteprima per impostazione predefinita. Per accedere alle funzionalità di anteprima di App contenitore, installare l'estensione App contenitore con --allow-preview true
.
az extension add --name containerapp --upgrade --allow-preview true
Ora che l'estensione o il modulo corrente è installato, registrare gli spazi dei nomi Microsoft.App
e Microsoft.OperationalInsights
.
az provider register --namespace Microsoft.App
az provider register --namespace Microsoft.OperationalInsights
Impostare quindi le variabili di ambiente seguenti. Sostituire i segnaposto racchiusi tra <>
con i propri valori.
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>"
Se si dispone già di un gruppo di risorse, ignorare questo passaggio. In caso contrario, creare un gruppo di risorse.
az group create \
--name $RESOURCE_GROUP \
--location $LOCATION
Creare un ambiente dell’app contenitore
Se l'ambiente non esiste, eseguire il comando seguente:
Per creare l'ambiente, eseguire il comando seguente:
az containerapp env create \
--name $CONTAINERAPPS_ENVIRONMENT \
--resource-group $RESOURCE_GROUP \
--location $LOCATION
Passare alla sezione successiva per configurare l'identità gestita assegnata dall'utente o passare alla sezione Identità gestita assegnata dal sistema.
Identità gestita assegnata dall'utente
Seguire questa procedura per configurare l'identità gestita assegnata dall'utente:
- Creare un'identità gestita assegnata dall'utente.
- Se si usa PowerShell, assegnare un ruolo
acrpull
per il registro all'identità gestita. L'interfaccia della riga di comando di Azure effettua automaticamente questa assegnazione. - Creare un'app contenitore con l'immagine dal registro privato autenticato con l'identità gestita assegnata dall'utente.
Creare un'identità gestita assegnata dall'utente
Creare un'identità gestita assegnata dall'utente. Prima di eseguire il comando seguente, sostituire i <PLACEHOLDER> con il nome dell'identità gestita.
IDENTITY="<YOUR_IDENTITY_NAME>"
az identity create \
--name $IDENTITY \
--resource-group $RESOURCE_GROUP
Ottenere l'ID risorsa dell'identità.
IDENTITY_ID=`az identity show \
--name $IDENTITY \
--resource-group $RESOURCE_GROUP \
--query id`
Creare un'app contenitore
Creare l'app contenitore con l'immagine dal registro privato autenticato con l'identità.
Copiare l'ID risorsa dell'identità da incollare nei segnaposto <IDENTITY_ID> nel comando seguente. Se il tag immagine non è latest
, sostituire “latest” con il 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"
Eseguire la pulizia
Attenzione
Nell'esempio seguente, il gruppo di risorse specificato e tutte le risorse al suo interno vengono eliminati. Se nel gruppo di risorse specificato sono presenti anche risorse diverse da quelle usate in questa guida di avvio rapido, verranno eliminate.
az group delete --name $RESOURCE_GROUP
Identità gestita assegnata dal sistema
Per configurare un'identità assegnata dal sistema, è necessario:
- Creare un'app contenitore con un'immagine pubblica.
- Assegnare un'identità gestita assegnata dal sistema all'app contenitore.
- Aggiornare l'app contenitore con l'immagine privata.
Creare un'app contenitore
Creare un contenitore con un'immagine pubblica.
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
Aggiornare l'app contenitore
Aggiornare l'app contenitore con l'immagine dal registro contenitori privato e aggiungere un'identità assegnata dal sistema per autenticare il pull di Registro Azure Container. È anche possibile includere altre impostazioni necessarie per l'app contenitore, ad esempio l'ingresso, la scalabilità e le impostazioni Dapr.
Impostare il server del Registro di sistema e attivare l'identità gestita assegnata dal sistema nell'app contenitore.
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"
Eseguire la pulizia
Attenzione
Nell'esempio seguente, il gruppo di risorse specificato e tutte le risorse al suo interno vengono eliminati. Se nel gruppo di risorse specificato sono presenti anche risorse diverse da quelle usate in questa guida di avvio rapido, verranno eliminate.
az group delete --name $RESOURCE_GROUP
Questo articolo descrive come usare un modello Bicep per configurare l'app contenitore in modo da usare le identità gestite assegnate dall'utente per eseguire il pull delle immagini dai repository privati di Registro Azure Container.
Prerequisiti
- Un account Azure con una sottoscrizione attiva.
- Se non hai un account, puoi crearlo gratuitamente.
- Se si usa l'interfaccia della riga di comando di Azure, installare l'interfaccia della riga di comando di Azure nel computer locale.
- Se si usa PowerShell, installare Azure PowerShell nel computer locale. Verificare che l’ultima versione del modulo Az.App sia installata eseguendo il comando
Install-Module -Name Az.App
. - Un Registro Azure Container privato contenente un'immagine di cui si vuole eseguire il pull. Per creare un registro contenitori ed eseguirne il push di un'immagine, vedere Avvio rapido: Creare un registro contenitori privato usando l'interfaccia della riga di comando di Azure o Avvio rapido: Creare un registro contenitori privato con Azure PowerShell
Attrezzaggio
Per accedere ad Azure dall'interfaccia della riga di comando, eseguire il comando seguente e seguire le istruzioni per completare il processo di autenticazione.
az login
Assicurarsi di eseguire l'ultima versione dell'interfaccia della riga di comando eseguire il comando di aggiornamento.
az upgrade
Installare o aggiornare quindi l'estensione App contenitore di Azure per l'interfaccia della riga di comando.
Se si ricevono errori relativi ai parametri mancanti quando si eseguono comandi az containerapp
nell'interfaccia della riga di comando di Azure o nei cmdlet del modulo Az.App
in Azure PowerShell, assicurarsi di avere installato la versione più recente dell'estensione App contenitore di Azure.
az extension add --name containerapp --upgrade
Nota
A partire da maggio 2024, le estensioni dell'interfaccia della riga di comando di Azure non abilitano più le funzionalità di anteprima per impostazione predefinita. Per accedere alle funzionalità di anteprima di App contenitore, installare l'estensione App contenitore con --allow-preview true
.
az extension add --name containerapp --upgrade --allow-preview true
Ora che l'estensione o il modulo corrente è installato, registrare gli spazi dei nomi Microsoft.App
e Microsoft.OperationalInsights
.
az provider register --namespace Microsoft.App
az provider register --namespace Microsoft.OperationalInsights
Installare Bicep
Se Bicep non è installato, è possibile installarlo come segue.
az bicep install
Se Bicep è installato, assicurarsi di avere la versione più recente.
az bicep upgrade
Per altre informazioni, vedere Installazione di Bicep.
Impostare le variabili di ambiente
Impostare quindi le variabili di ambiente seguenti. Sostituire i segnaposto racchiusi tra <>
con i propri valori.
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"
Il ruolo AcrPull
concede all'identità gestita assegnata dall'utente l'autorizzazione per eseguire il pull dell'immagine dal Registro di sistema.
Modello Bicep
Copiare il modello Bicep seguente e salvarlo come file con l'estensione .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
Distribuire l'app contenitore
Distribuire l'app contenitore con il comando seguente.
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"
Questo comando distribuisce quanto segue.
- Un gruppo di risorse di Azure.
- Ambiente delle app contenitore.
- Un'area di lavoro Log Analytics associata all'ambiente App contenitore.
- Una risorsa di Application Insights per la traccia distribuita.
- Un'identità gestita assegnata dall'utente.
- Contenitore in cui archiviare l'immagine.
- App contenitore basata sull'immagine.
Se viene visualizzato l'errore Failed to parse '<YOUR_BICEP_FILE_NAME>', please check whether it is a valid JSON format
, assicurarsi che il file del modello Bicep abbia l'estensione .bicep
.
Risorse aggiuntive
Per ulteriori informazioni, vedere quanto segue.