Gerenciar revisões e segredos nos Aplicativos de Contêiner do Azure

Concluído

Os Aplicativos de Contêiner do Azure implementam o controle de versão do aplicativo de contêiner criando revisões. Uma revisão é um instantâneo imutável da versão de um aplicativo de contêiner. Você pode usar revisões para lançar uma nova versão do aplicativo ou reverter rapidamente para uma versão anterior do aplicativo. Novas revisões são criadas quando você atualiza seu aplicativo com alterações no escopo de revisão. Você também pode atualizar seu aplicativo de contêiner com base em uma revisão específica.

Você pode controlar quais revisões estão ativas e o tráfego externo que é roteado para cada revisão ativa. Os nomes de revisão são usados para identificar uma revisão e determinar a URL da revisão. Você pode personalizar o nome da revisão definindo o sufixo da revisão.

Por padrão, os Aplicativos de Contêiner criam um nome de revisão exclusivo com um sufixo que consiste em uma cadeia de caracteres semialeatória de caracteres alfanuméricos. Por exemplo, para um aplicativo de contêiner chamado album-api, definir o nome do sufixo para 1st-revision criaria uma revisão com o nome album-api--1st-revision. Você pode definir o sufixo de revisão no modelo do ARM por meio dos comandos az containerapp create e az containerapp update da CLI do Azure ou ao criar uma revisão por meio do portal do Azure.

Atualizando seu aplicativo de contêiner

Com o comando az containerapp update, você pode modificar variáveis de ambiente, calcular recursos, dimensionar parâmetros e implantar uma imagem diferente. Se a atualização do aplicativo de contêiner incluir alterações no escopo de revisão, uma nova revisão será gerada.

az containerapp update \
  --name <APPLICATION_NAME> \
  --resource-group <RESOURCE_GROUP_NAME> \
  --image <IMAGE_NAME>

Você pode listar todas as revisões associadas ao aplicativo de contêiner com o comando az containerapp revision list.

az containerapp revision list \
  --name <APPLICATION_NAME> \
  --resource-group <RESOURCE_GROUP_NAME> \
  -o table

Para obter mais informações sobre os comandos dos Aplicativos de Contêiner, visite a referência az containerapp.

Gerenciar segredos nos Aplicativos de Contêiner do Azure

Os Aplicativos de Contêiner do Azure permitem que seu aplicativo armazene com segurança valores de configuração confidenciais. Depois que os segredos são definidos no nível do aplicativo, os valores protegidos ficam disponíveis para aplicativos de contêiner. Especificamente, você pode referenciar valores protegidos dentro de regras de escala.

  • Os segredos têm como escopo um aplicativo, fora de qualquer revisão específica de um aplicativo.
  • A adição, a remoção e a alteração de segredos não gera novas revisões.
  • Cada revisão de aplicativo pode fazer referência a um ou mais segredos.
  • Várias revisões podem referenciar os mesmos segredos.

Um segredo atualizado ou excluído não afeta automaticamente as revisões existentes no aplicativo. Quando um segredo é atualizado ou excluído, você pode responder a alterações de uma das seguintes maneiras:

  1. Implantar uma nova revisão.
  2. Reiniciar uma revisão existente.

Antes de excluir um segredo, implante uma nova revisão que não faça mais referência ao segredo antigo. Em seguida, desative todas as revisões que referenciam o segredo.

Observação

Os Aplicativos de Contêiner não dão suporte à integração do Azure Key Vault. Em vez disso, habilite a identidade gerenciada no aplicativo de contêiner e use o SDK do Key Vault em seu aplicativo para acessar segredos.

Definindo segredos

Quando você cria um aplicativo de contêiner, os segredos são definidos usando o parâmetro --secrets.

  • Ele aceita um conjunto delimitado por espaço de pares de nome/valor.
  • Cada par é delimitado por um sinal de igual (=).

No exemplo abaixo, uma cadeia de conexão para uma conta de armazenamento de filas é declarada no parâmetro --secrets. O valor de queue-connection-string é proveniente de uma variável de ambiente chamada $CONNECTION_STRING.

az containerapp create \
  --resource-group "my-resource-group" \
  --name queuereader \
  --environment "my-environment-name" \
  --image demos/queuereader:v1 \
  --secrets "queue-connection-string=$CONNECTION_STRING"

Depois de declarar segredos no nível do aplicativo, você poderá referenciá-los em variáveis de ambiente, ao criar uma nova revisão no aplicativo de contêiner. Quando uma variável de ambiente referencia um segredo, o valor é preenchido com o valor definido no segredo. Para referenciar um segredo em uma variável de ambiente na CLI do Azure, defina o valor como secretref:, seguido do nome do segredo.

O exemplo a seguir mostra um aplicativo que declara uma cadeia de conexão no nível do aplicativo. Essa conexão é referenciada em uma variável de ambiente de contêiner.

az containerapp create \
  --resource-group "my-resource-group" \
  --name myQueueApp \
  --environment "my-environment-name" \
  --image demos/myQueueApp:v1 \
  --secrets "queue-connection-string=$CONNECTIONSTRING" \
  --env-vars "QueueName=myqueue" "ConnectionString=secretref:queue-connection-string"