Gerenciar revisões e segredos em 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 de uma versão de aplicativo de contêiner. Você pode usar revisões para lançar uma nova versão do seu aplicativo ou reverter rapidamente para uma versão anterior do seu 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 no URL da revisão. Você pode personalizar o nome da revisão definindo o sufixo de revisão.

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

Atualizando seu aplicativo de contêiner

Com o comando, você pode modificar variáveis de az containerapp update ambiente, recursos de computação, parâmetros de escala 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 seu aplicativo de contêiner com o az containerapp revision list comando.

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

Para obter mais informações sobre os comandos Container Apps, visite a az containerapp referência.

Gerenciar segredos em Aplicativos de Contêiner do Azure

O Azure Container Apps permite que a sua aplicação armazene em segurança valores de configurações sensíveis. Depois que os segredos são definidos no nível do aplicativo, os valores protegidos ficam disponíveis para os aplicativos de contêiner. Especificamente, você pode fazer referência a valores protegidos dentro de regras de escala.

  • Os segredos são confinados a uma aplicação, fora de qualquer revisão específica dessa aplicação.
  • Adicionar, remover ou alterar segredos não gera novas revisões.
  • Cada revisão da aplicação pode fazer referência a um ou mais segredos.
  • Várias revisões podem fazer referência aos mesmos segredos.

Um segredo atualizado ou excluído não afeta automaticamente as revisões existentes em seu aplicativo. Quando um segredo é atualizado ou eliminado, pode responder às alterações de uma de duas maneiras:

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

Antes de eliminar um segredo, implemente uma nova revisão que já não faça referência ao segredo antigo. Em seguida, desative todas as revisões que fazem referência ao segredo.

Nota

As Aplicações de Contentor não suportam a integração do Azure Key Vault. Em vez disso, habilite a identidade gerenciada no aplicativo contêiner e use o SDK do Cofre da Chave em seu aplicativo para acessar segredos.

Definição de segredos

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

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

No exemplo abaixo, uma cadeia de conexão para uma conta de armazenamento de fila é declarada --secrets no parâmetro. O valor para queue-connection-string vem 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ê pode fazer referência a eles em variáveis de ambiente ao criar uma nova revisão em seu aplicativo contêiner. Quando uma variável de ambiente faz referência a um segredo, seu valor é preenchido com o valor definido no segredo. Para fazer referência a um segredo em uma variável de ambiente na CLI do Azure, defina seu valor como secretref:, seguido pelo 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"