Administración de revisiones y secretos en Azure Container Apps

Completado

Azure Container Apps implementa el control de versiones de aplicaciones de contenedor mediante la creación de revisiones. Una revisión es una instantánea inmutable de una versión de la aplicación de contenedor. Puede usar revisiones para publicar una nueva versión de la aplicación o revertir rápidamente a una versión anterior de la aplicación. Se crean nuevas revisiones al actualizar la aplicación con cambios en el ámbito de revisión. También puede actualizar la aplicación de contenedor en función de una revisión específica.

Puede controlar qué revisiones están activas y el tráfico externo que se dirige a cada revisión activa. Los nombres de revisión se usan para identificar una revisión, y en la URL de la revisión. Puede personalizar el nombre de la revisión mediante la configuración del sufijo de la revisión.

De manera predeterminada, Container Apps crea un nombre de revisión único con un sufijo que consiste en una cadena semialeatoria de caracteres alfanuméricos. Por ejemplo, para una aplicación contenedor llamada album-api, si se establece el nombre del sufijo de revisión como 1st-revision, se creará una revisión con el nombre album-api--1st-revision. Puede establecer el sufijo de revisión en la plantilla de ARM, mediante los comandos az containerapp create y az containerapp update de la CLI de Azure, o bien al crear una revisión desde Azure Portal.

Actualización de la aplicación de contenedor

Con el comando az containerapp update puede modificar variables de entorno, recursos de proceso, parámetros de escalado e implementar otra imagen. Si la actualización de la aplicación de contenedor incluye cambios en el ámbito de revisión, se genera una nueva revisión.

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

Puede enumerar todas las revisiones asociadas a la aplicación de contenedor con el comando az containerapp revision list.

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

Para obtener más información sobre los comandos de Container Apps, visite la referencia de az containerapp.

Administración de secretos en Azure Container Apps

Azure Container Apps permite que la aplicación almacene de forma segura valores de configuración confidenciales. Una vez que los secretos se definen en el nivel de aplicación, los valores protegidos están disponibles para las aplicaciones contenedoras. En concreto, puede hacer referencia a valores protegidos dentro de las reglas de escalado.

  • Los secretos están limitados a una aplicación, fuera de cualquier revisión específica de una aplicación.
  • Agregar, quitar o cambiar secretos no genera nuevas revisiones.
  • Cada revisión de aplicación puede hacer referencia a uno o varios secretos.
  • Varias revisiones pueden hacer referencia a los mismos secretos.

Un secreto actualizado o eliminado no afecta automáticamente a las revisiones existentes en la aplicación. Cuando se actualiza o elimina un secreto, puede responder a los cambios de una de estas dos maneras:

  1. Implementación de una nueva revisión.
  2. Reinicio de una revisión existente.

Antes de eliminar un secreto, implemente una nueva revisión que ya no haga referencia al secreto anterior. A continuación, desactive todas las revisiones que hacen referencia al secreto.

Nota:

Container Apps no admite la integración de Azure Key Vault. En su lugar, habilite la identidad administrada en la aplicación contenedora y use el SDK de Key Vault en la aplicación para acceder a los secretos.

Definición de secretos

Cuanto cree una aplicación de contenedor, los secretos se definen mediante el parámetro --secrets.

  • El parámetro acepta un conjunto delimitado por espacios de pares nombre-valor.
  • Cada par está delimitado por el signo igual (=).

En el ejemplo siguiente se declara una cadena de conexión en una cuenta de Queue Storage en el parámetro --secrets. El valor de queue-connection-string procede de una variable de entorno denominada $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"

Después de declarar secretos en el nivel de aplicación, puede hacer referencia a ellos en variables de entorno al crear una revisión en la aplicación de contenedor. Cuando una variable de entorno hace referencia a un secreto, su valor se rellena con el valor definido en el secreto. Para hacer referencia a un secreto en una variable de entorno de la CLI de Azure, establezca su valor en secretref:, seguido del nombre del secreto.

En el ejemplo siguiente se muestra una aplicación que declara una cadena de conexión en el nivel de aplicación. Se hace referencia a esta conexión en una variable de entorno de contenedor.

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"