Pull de imagem do Registro dos Aplicativos de Contêiner do Azure com identidade gerenciada
É possível efetuar pull de imagens de repositórios privados no Registro de Contêiner do Microsoft Azure usando identidades gerenciadas para autenticação e assim evitar o uso de credenciais administrativas.
Você pode usar uma identidade gerenciada atribuída pelo usuário ou atribuída pelo sistema para autenticar com o Registro de Contêiner do Azure.
- Com uma identidade gerenciada atribuída pelo usuário, você cria e gerencia a identidade fora dos Aplicativos de Contêiner do Azure. Ela pode ser atribuída a vários recursos do Azure, incluindo os Aplicativos de Contêiner do Azure.
- Com uma identidade gerenciada atribuída pelo sistema, a identidade é criada e gerenciada pelos Aplicativos de Contêiner do Azure. Ele está vinculado ao seu aplicativo de contêiner e é excluído quando o seu aplicativo é excluído.
- Quando possível, você deve usar uma identidade gerenciada atribuída pelo usuário para efetuar pull de imagens.
Os Aplicativos de Contêiner verificam se há uma nova versão da imagem sempre que um contêiner é iniciado. Na terminologia do Docker ou do Kubernetes, os Aplicativos de Contêiner definem a política de pull de imagem de cada contêiner como always
.
Este artigo descreve como usar o portal do Azure para configurar o aplicativo contêiner para usar identidades gerenciadas atribuídas pelo usuário e atribuídas pelo sistema para efetuar pull de imagens de repositórios privados no Registro de Contêiner do Azure.
Identidade gerenciada atribuída pelo usuário
As etapas a seguir descrevem o processo para configurar o aplicativo contêiner para usar uma identidade gerenciada atribuída pelo usuário para efetuar pull de imagens de repositórios privados no Registro de Contêiner do Azure.
- Crie um aplicativo contêiner com uma imagem pública.
- Adicione a identidade gerenciada atribuída pelo usuário ao aplicativo contêiner.
- Crie uma revisão de aplicativo contêiner com uma imagem privada e a identidade gerenciada atribuída pelo usuário.
Pré-requisitos
Uma conta do Azure com uma assinatura ativa.
- Se não tiver uma, poderá criar uma gratuitamente.
Um Registro de Contêiner do Azure privado contendo uma imagem que você deseja efetuar pull.
O Registro de Contêiner do Azure deve permitir tokens de audiência do ARM para autenticação para usar a identidade gerenciada para efetuar pull de imagens. Use o seguinte comando para verificar se os tokens ARM têm permissão para acessar o ACR:
az acr config authentication-as-arm show -r <REGISTRY>
Se os tokens ARM não forem permitidos, você poderá permitir com o seguinte comando:
az acr config authentication-as-arm update -r <REGISTRY> --status enabled
Crie uma identidade gerenciada atribuída pelo usuário. Para obter mais informações, acesse Criar uma identidade gerenciada atribuída pelo usuário.
Criar um aplicativo de contêiner
Use as etapas a seguir para criar um aplicativo contêiner com a imagem de início rápido padrão.
Navegue até a Home page do portal do Azure.
Pesquise por Aplicativos de Contêiner na barra de pesquisa superior.
Selecione Aplicativos de Contêiner nos resultados da pesquisa.
Selecione o botão Criar.
Na guia Básico, execute as ações a seguir.
Configuração Ação Assinatura Selecione sua assinatura do Azure. Grupo de recursos Selecione um grupo de recursos existente ou crie um novo. Nome do aplicativo de contêiner Insira um nome do aplicativo contêiner. Localidade Selecione uma localização. Criar Ambiente do Aplicativo de Contêiner Crie um ambiente novo ou selecione um existente. Selecione o botão Revisar + Criar na parte inferior da página Criar Ambiente do Aplicativo de Contêiner.
Selecione o botão Criar na parte inferior da janela Criar Ambiente do Aplicativo de Contêiner.
Aguarde alguns minutos para a conclusão da implantação do aplicativo contêiner. Após a conclusão da implantação, selecione Ir para o recurso.
Adicionar a identidade gerenciada atribuída pelo usuário
- Selecione Identidade no menu esquerdo.
- Selecionar a guia Atribuído pelo usuário.
- Selecione o botão Adicionar identidade gerenciada atribuída pelo usuário.
- Selecione sua assinatura.
- Selecione a identidade que você criou.
- Selecione Adicionar.
Criar uma revisão de aplicativo contêiner
Crie uma revisão de aplicativo contêiner com uma imagem privada e a identidade gerenciada atribuída pelo sistema.
Selecione Gerenciamento de Revisão no menu esquerdo.
Selecione Criar nova revisão.
Selecione a imagem de contêiner na tabela Imagem de Contêiner.
Insira as informações na caixa de diálogo Editar um contêiner.
Campo Ação Nome Insira um nome do contêiner. Fonte da imagem Selecione Registro de Contêiner do Azure. Autenticação Selecione Identidade Gerenciada. Identidade Selecione a identidade que você criou no menu suspenso. Registro Selecione o registro que você quer usar no menu suspenso. Imagem Insira o nome da imagem que você quer usar. Marca de imagem Insira o nome e a marca da imagem que você quer efetuar pull. Observação
Se as credenciais administrativas não estiverem habilitadas no registro do Registro de Contêiner do Azure, uma mensagem de aviso será exibida e você precisará inserir manualmente o nome da imagem e as informações da marca.
Selecione Salvar.
Selecione Criar na página Criar e implantar nova revisão.
Uma nova revisão será criada e implantada. O portal tentará automaticamente adicionar a função acrpull
à identidade gerenciada atribuída pelo usuário. Se a função não for adicionada, você poderá adicioná-la manualmente.
Você pode conferir se a função foi adicionada verificando a identidade no painel Identidade da página do aplicativo de contêiner.
- Selecione Identidade no menu esquerdo.
- Selecionar a guia Atribuído pelo usuário.
- Selecione a identidade gerenciada atribuída pelo usuário.
- Selecione Atribuições de função do Azure no menu na página de recursos de identidade gerenciada.
- Verifique se a função
acrpull
está atribuída à identidade gerenciada atribuída pelo usuário.
Criar um aplicativo contêiner com uma imagem particular
Se você não quiser começar criando um aplicativo de contêiner com uma imagem pública, também poderá fazer o seguinte.
- Crie uma identidade gerenciada atribuída pelo usuário.
- Adicione a função
acrpull
à identidade gerenciada atribuída pelo usuário. - Crie um aplicativo contêiner com uma imagem privada e a identidade gerenciada atribuída pelo usuário.
Esse método é típico em cenários de IaC (Infraestrutura como Código).
Limpar os recursos
Se caso não pretende usar esse aplicativo, você pode excluir a instância de Aplicativos de Contêiner do Azure e todos os serviços associados removendo o grupo de recursos.
Aviso
Excluir o grupo de recursos excluirá todos os recursos do grupo. Se você tiver outros recursos no grupo, eles também serão excluídos. Se quiser manter os recursos, você pode excluir a instância do aplicativo contêiner e o ambiente do aplicativo contêiner.
- Selecione o grupo de recursos na seção Visão geral.
- Selecione o botão Excluir grupo de recursos na parte superior da Visão geral do grupo de recursos.
- Insira o nome do grupo de recursos na caixa de diálogo de confirmação.
- Selecione Excluir. O processo para excluir o grupo de recursos pode levar alguns minutos para ser concluído.
Identidade gerenciada atribuída pelo sistema
O método para configurar uma identidade gerenciada atribuída pelo sistema no portal do Azure é o mesmo que configurar uma identidade gerenciada atribuída pelo usuário. A única diferença é que você não precisa criar uma identidade gerenciada atribuída pelo usuário. Em vez disso, a identidade gerenciada atribuída pelo sistema é criada quando você cria o aplicativo contêiner.
O método para configurar uma identidade gerenciada atribuída pelo sistema no portal do Azure é:
- Crie um aplicativo contêiner com uma imagem pública.
- Crie uma revisão de aplicativo contêiner com uma imagem privada e a identidade gerenciada atribuída pelo sistema.
Pré-requisitos
- Uma conta do Azure com uma assinatura ativa.
- Se não tiver uma, poderá criar uma gratuitamente.
- Um Registro de Contêiner do Azure privado contendo uma imagem que você deseja efetuar pull. Confira Criar uma instância privada do Registro de Contêiner do Azure.
Criar um aplicativo de contêiner
Siga estas etapas para criar um aplicativo contêiner com a imagem de início rápido padrão.
Navegue até a Home page do portal do Azure.
Pesquise por Aplicativos de Contêiner na barra de pesquisa superior.
Selecione Aplicativos de Contêiner nos resultados da pesquisa.
Selecione o botão Criar.
Na guia Básico, execute as ações a seguir.
Configuração Ação Assinatura Selecione sua assinatura do Azure. Grupo de recursos Selecione um grupo de recursos existente ou crie um novo. Nome do aplicativo de contêiner Insira um nome do aplicativo contêiner. Fonte de implantação Deixe esse conjunto como Imagem de contêiner. Região Selecione uma região. Ambiente de Aplicativos de Contêiner Selecione um ambiente existente ou selecione Criar novo. Para obter mais informações, consulte ambientes de Aplicativos de Contêiner do Azure Selecione Avançar: contêiner >.
Na guia Contêiner, habilite Usar imagem de início rápido. Deixe a imagem de Início Rápido definida como Contêiner simples do hello world.
Selecione o botão Revisar + Criar na parte inferior da página Criar Ambiente do Aplicativo de Contêiner.
Selecione o botão Criar na parte inferior da página Criar Ambiente do Aplicativo de Contêiner.
Aguarde alguns minutos para a conclusão da implantação do aplicativo contêiner. Após a conclusão da implantação, selecione Ir para o recurso.
Editar e implantar uma revisão
Edite o contêiner para usar a imagem do Registro de Contêiner do Azure privado e configure a autenticação para usar a identidade atribuída pelo sistema.
No Aplicativo, selecione Contêineres.
Na página Contêineres, selecione Editar e implantar.
Selecione o contêiner de simple-hello-world-container lista.
Na página Editar um contêiner, execute as ações a seguir.
Configuração Ação Nome Insira o nome do aplicativo contêiner. Fonte da imagem Selecione Registro de Contêiner do Azure. Assinatura Selecione sua assinatura do Azure. Registro Selecione o registro de contêiner. Imagem Insira o nome da imagem. Marca de imagem Insira a marca de imagem. Tipo de autenticação Selecione Identidade gerenciada. Identidade gerenciada Selecione Atribuído pelo sistema. Escolha Salvar na parte inferior da página.
Selecione Criar na parte inferior da página Criar e implantar nova revisão
Após alguns minutos, selecione Atualizar na página Gerenciamento de revisão para ver a nova revisão.
Uma nova revisão será criada e implantada. O portal tentará automaticamente adicionar a função acrpull
à identidade gerenciada atribuída pelo usuário. Se a função não for adicionada, você poderá adicioná-la manualmente.
Você pode conferir se a função foi adicionada verificando a identidade no painel Identidade da página do aplicativo de contêiner.
- Selecione Identidade no menu esquerdo.
- Selecione a guia Atribuído pelo sistema.
- Escolha Atribuições de função do Azure.
- Verifique se a função
acrpull
está atribuída à identidade gerenciada atribuída pelo sistema.
Limpar os recursos
Se caso não pretende usar esse aplicativo, você pode excluir a instância de Aplicativos de Contêiner do Azure e todos os serviços associados removendo o grupo de recursos.
Aviso
Excluir o grupo de recursos excluirá todos os recursos do grupo. Se você tiver outros recursos no grupo, eles também serão excluídos. Se quiser manter os recursos, você pode excluir a instância do aplicativo contêiner e o ambiente do aplicativo contêiner.
- Selecione o grupo de recursos na seção Visão geral.
- Selecione o botão Excluir grupo de recursos na parte superior da Visão geral do grupo de recursos.
- Insira o nome do grupo de recursos na caixa de diálogo de confirmação.
- Selecione Excluir. O processo para excluir o grupo de recursos pode levar alguns minutos para ser concluído.
Este artigo descreve como configurar o aplicativo contêiner para usar identidades gerenciadas para efetuar pull de imagens de um repositório privado do Registro de Contêiner do Azure usando a CLI do Azure e o Azure PowerShell.
Pré-requisitos
Pré-requisito | Descrição |
---|---|
Conta do Azure | Uma conta do Azure com uma assinatura ativa. Se não tiver uma, poderá criar uma gratuitamente. |
CLI do Azure | Se estiver usando a CLI do Azure, instale a CLI do Azure no computador local. |
PowerShell do Azure | Se for necessário, instale o Azure PowerShell no PowerShell no computador local. Verifique se a versão mais recente do módulo Az.App está instalada executando o comando Install-Module -Name Az.App . |
Registro de Contêiner do Azure | Um Registro de Contêiner do Azure privado contendo uma imagem que você deseja efetuar pull. Início Rápido: criar um registro de contêiner privado usando a CLI do Azure ou Início Rápido: criar um registro de contêiner privado usando o Azure PowerShell |
Instalação
Para entrar no Azure usando a CLIl, execute o comando a seguir e siga os prompts para concluir o processo de autenticação.
az login
Para garantir que você esteja executando a versão mais recente da CLI, execute o comando “upgrade”.
az upgrade
Em seguida, instale ou atualize a extensão dos Aplicativos de Contêiner do Azure para a CLI.
Se você receber erros sobre parâmetros ausentes ao executar comandos az containerapp
na CLI do Azure ou cmdlets do módulo Az.App
no Azure PowerShell, verifique se está com a versão mais recente da extensão Aplicativos de Contêiner do Azure instalada.
az extension add --name containerapp --upgrade
Observação
A partir de maio de 2024, as extensões da CLI do Azure já não permitem funcionalidades de versão prévia do recurso por padrão. Para acessar as versões prévias dos recursos dos Aplicativos de Contêiner, instale a extensão Aplicativos de Contêiner com --allow-preview true
.
az extension add --name containerapp --upgrade --allow-preview true
Agora que a extensão ou módulo atual está instalado, registre os namespaces Microsoft.App
e Microsoft.OperationalInsights
.
az provider register --namespace Microsoft.App
az provider register --namespace Microsoft.OperationalInsights
Em seguida, defina as seguintes variáveis de ambiente. Substitua os espaços reservados entre <>
pelos seus valores.
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 você já tiver um grupo de recursos, ignore essa etapa. Caso contrário, crie um grupo de recursos.
az group create \
--name $RESOURCE_GROUP \
--location $LOCATION
Criar um ambiente dos aplicativos de contêiner
Se o ambiente não existir, execute o comando a seguir:
Para criar o ambiente, execute o seguinte comando:
az containerapp env create \
--name $CONTAINERAPPS_ENVIRONMENT \
--resource-group $RESOURCE_GROUP \
--location $LOCATION
Continue para a próxima seção para configurar a identidade gerenciada atribuída pelo usuário ou ignore e vá para a seção Identidade gerenciada atribuída pelo sistema.
Identidade gerenciada atribuída pelo usuário
Siga este procedimento para configurar a identidade gerenciada atribuída pelo usuário:
- Crie uma identidade gerenciada atribuída pelo usuário.
- Se você estiver usando o PowerShell, atribua uma função
acrpull
para o registro da identidade gerenciada. A CLI do Azure faz essa atribuição automaticamente. - Crie um aplicativo contêiner com a imagem do registro privado autenticada com a identidade gerenciada atribuída pelo usuário.
Criar uma identidade gerenciada atribuída ao usuário
Crie uma identidade gerenciada atribuída pelo usuário. Antes de executar o comando a seguir, substitua os <ESPAÇOS RESERVADOS> pelo nome da sua identidade gerenciada.
IDENTITY="<YOUR_IDENTITY_NAME>"
az identity create \
--name $IDENTITY \
--resource-group $RESOURCE_GROUP
Obtenha a ID do recurso da identidade.
IDENTITY_ID=$(az identity show \
--name $IDENTITY \
--resource-group $RESOURCE_GROUP \
--query id \
--output tsv)
Criar um aplicativo de contêiner
Crie o aplicativo contêiner com a imagem do registro privado autenticado com a identidade.
Copie a ID do recurso da identidade para colar nos espaços reservados <IDENTITY_ID> no comando abaixo. Se a marca de imagem não for latest
, substitua 'latest' pela marca.
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"
Limpeza
Cuidado
O comando a seguir exclui o grupo de recursos especificado e todos os recursos contidos nele. Se existirem recursos fora do escopo deste guia de início rápido no grupo de recursos especificado, eles também serão excluídos.
az group delete --name $RESOURCE_GROUP
Identidade gerenciada atribuída pelo sistema
Para configurar uma identidade atribuída pelo sistema, você precisará:
- Crie um aplicativo contêiner com uma imagem pública.
- Atribuir uma identidade gerenciada atribuída pelo sistema ao aplicativo contêiner.
- Atualizar o aplicativo contêiner com a imagem privada.
Criar um aplicativo de contêiner
Criar um contêiner com uma imagem pública.
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
Atualizar o aplicativo contêiner
Atualize o aplicativo contêiner com a imagem do registro de contêiner privado e adicione uma identidade atribuída pelo sistema para autenticar o pull do Registro de Contêiner do Azure. Também é possível incluir outras configurações necessárias para o aplicativo contêiner, como entrada, escala e configurações de Dapr.
Defina o servidor do registro e ative a identidade gerenciada atribuída pelo sistema no aplicativo contêiner.
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"
Limpeza
Cuidado
O comando a seguir exclui o grupo de recursos especificado e todos os recursos contidos nele. Se existirem recursos fora do escopo deste guia de início rápido no grupo de recursos especificado, eles também serão excluídos.
az group delete --name $RESOURCE_GROUP
Este artigo descreve como usar um modelo do Bicep para configurar seu aplicativo de contêiner para usar identidades gerenciadas atribuídas pelo usuário para efetuar pull de imagens de repositórios privados do Registro de Contêiner do Azure.
Pré-requisitos
- Uma conta do Azure com uma assinatura ativa.
- Se não tiver uma, poderá criar uma gratuitamente.
- Se estiver usando a CLI do Azure, instale a CLI do Azure no computador local.
- Se for necessário, instale o Azure PowerShell no PowerShell no computador local. Verifique se a versão mais recente do módulo Az.App está instalada executando o comando
Install-Module -Name Az.App
. - Um Registro de Contêiner do Azure privado contendo uma imagem que você deseja efetuar pull. Para criar um registro de contêiner e enviar uma imagem por push para ele, confira Início rápido: criar um registro de contêiner privado usando a CLI do Azure ou Início rápido: criar um registro de contêiner privado usando o Azure PowerShell
Instalação
Para entrar no Azure usando a CLIl, execute o comando a seguir e siga os prompts para concluir o processo de autenticação.
az login
Para garantir que você esteja executando a versão mais recente da CLI, execute o comando “upgrade”.
az upgrade
Em seguida, instale ou atualize a extensão dos Aplicativos de Contêiner do Azure para a CLI.
Se você receber erros sobre parâmetros ausentes ao executar comandos az containerapp
na CLI do Azure ou cmdlets do módulo Az.App
no Azure PowerShell, verifique se está com a versão mais recente da extensão Aplicativos de Contêiner do Azure instalada.
az extension add --name containerapp --upgrade
Observação
A partir de maio de 2024, as extensões da CLI do Azure já não permitem funcionalidades de versão prévia do recurso por padrão. Para acessar as versões prévias dos recursos dos Aplicativos de Contêiner, instale a extensão Aplicativos de Contêiner com --allow-preview true
.
az extension add --name containerapp --upgrade --allow-preview true
Agora que a extensão ou módulo atual está instalado, registre os namespaces Microsoft.App
e Microsoft.OperationalInsights
.
az provider register --namespace Microsoft.App
az provider register --namespace Microsoft.OperationalInsights
Instalar o Bicep
Se você não tiver o Bicep instalado, poderá instalá-lo da seguinte maneira.
az bicep install
Se você tiver o Bicep instalado, certifique-se de ter a versão mais recente.
az bicep upgrade
Para obter mais informações, confira Instalar o Bicep.
Definir variáveis de ambiente
Em seguida, defina as seguintes variáveis de ambiente. Substitua os espaços reservados entre <>
pelos seus valores.
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"
A função AcrPull
concede a sua permissão de identidade gerenciada atribuída pelo usuário para efetuar pull da imagem do registro.
Modelo do Bicep
Copie o seguinte modelo Bicep e salve-o como um arquivo com a extensão .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
Implantar o aplicativo de contêiner
Implante seu aplicativo de contêiner com o comando a seguir.
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}"
Este comando implanta o seguinte.
- Um grupo de recursos do Azure.
- Um ambiente dos Aplicativos de Contêiner.
- Um workspace do Log Analytics associado ao ambiente dos Aplicativos de Contêiner.
- Um recurso do Application Insights para rastreamento distribuído.
- Uma identidade gerenciada atribuída pelo usuário.
- Um contêiner para armazenar a imagem.
- Um aplicativo de contêiner baseado na imagem.
Se você receber o erro Failed to parse '<YOUR_BICEP_FILE_NAME>', please check whether it is a valid JSON format
, certifique-se de que o arquivo de modelo Bicep tenha a extensão .bicep
.
Recursos adicionais
Para obter mais informações, consulte o seguinte.