Gérer les révisions et les secrets dans Azure Container Apps

Effectué

Azure Container Apps implémente le contrôle de version d’application conteneur en créant des révisions. Une révision est un instantané immuable d’une version d’application conteneur. Vous pouvez utiliser des révisions pour publier une nouvelle version de votre application ou revenir rapidement à une version antérieure de celle-ci. Les nouvelles révisions sont créées lorsque vous mettez à jour votre application avec des modifications d’étendue de révision. Vous pouvez également mettre à jour votre application conteneur en fonction d’une révision spécifique.

Vous pouvez contrôler les révisions actives et le trafic externe routé vers chaque révision active. Les noms de révision sont utilisés pour identifier une révision, ainsi que dans l’URL de la révision. Vous pouvez personnaliser le nom de révision en définissant le suffixe de révision.

Par défaut, Container Apps crée un nom de révision unique avec un suffixe composé d’une chaîne semi-aléatoire de caractères alphanumériques. Par exemple, pour une application conteneur nommée album-api, la définition du nom du suffixe de révision sur 1st-revision crée une révision avec le nom album-api-1st-revision. Vous pouvez définir le suffixe de révision dans le modèle ARM, via les commandes Azure CLI az containerapp create et az containerapp update, ou lors de la création d’une révision via le portail Azure.

Mise à jour de votre application conteneur

Avec la commande az containerapp update, vous pouvez modifier des variables d’environnement, des ressources de calcul, des paramètres d’échelle et déployer une autre image. Si la mise à jour de votre application conteneur inclut des modifications d’étendue de révision, une nouvelle révision est générée.

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

Vous pouvez répertorier toutes les révisions associées à votre application conteneur à l’aide de la commande az containerapp revision list.

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

Pour plus d’informations sur les commandes Container Apps, consultez les informations de référence sur az containerapp.

Gérer les secrets dans Azure Container Apps

Azure Container Apps permet à votre application de stocker de façon sécurisée des valeurs de configuration sensibles. Une fois que les secrets sont définis au niveau de l’application, les valeurs sécurisées sont disponibles pour les applications de conteneur. Plus précisément, vous pouvez référencer des valeurs sécurisées à l’intérieur des règles de mise à l’échelle.

  • Les secrets sont délimités à une application, en dehors de toute révision spécifique d’une application.
  • L’ajout, la suppression ou le changement de secrets ne génèrent pas de nouvelles révisions.
  • Chaque révision d’application peut référencer un ou plusieurs secrets.
  • Plusieurs révisions peuvent référencer les mêmes secrets.

Un secret mis à jour ou supprimé n’affecte pas automatiquement les révisions existantes dans votre application. Lors de la mise à jour ou de la suppression d’un secret, vous pouvez répondre à ces changements de l’une des deux manières suivantes :

  1. Déployer une nouvelle révision.
  2. Redémarrer une révision existante.

Avant de supprimer un secret, déployez une nouvelle révision qui ne fait plus référence à l’ancien secret. Désactivez ensuite toutes les révisions qui font référence au secret.

Notes

Container Apps ne prend pas en charge l’intégration d’Azure Key Vault. Au lieu de cela, activez l’identité managée dans l’application conteneur et utilisez le SDK Key Vault dans votre application pour accéder aux secrets.

Définition de secrets

Lorsque vous créez une application conteneur, les secrets sont définis à l’aide du paramètre --secrets.

  • Le paramètre accepte un jeu de paires nom/valeur délimité par des espaces.
  • Chaque paire est délimitée par un signe égal (=).

Dans l’exemple ci-dessous, une chaîne de connexion à un compte de stockage de file d’attente est déclarée dans le paramètre --secrets. La valeur de queue-connection-string provient d’une variable d’environnement nommée $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"

Après avoir déclaré des secrets au niveau de l’application, vous pouvez les référencer dans des variables d’environnement lorsque vous créez une révision dans votre application conteneur. Lorsqu’une variable d’environnement fait référence à un secret, sa valeur est remplie avec la valeur définie dans le secret. Pour référencer un secret dans une variable d’environnement dans Azure CLI, définissez sa valeur sur secretref:, suivi du nom du secret.

L’exemple suivant montre une application qui déclare une chaîne de connexion au niveau de l’application. Cette connexion est référencée dans une variable d’environnement de conteneur.

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"