Gestire revisioni e segreti in App contenitore di Azure

Completato

App contenitore di Azure implementa il controllo delle versioni delle app contenitore creando revisioni. Una revisione è uno snapshot non modificabile di una versione dell'app contenitore. Puoi usare le revisioni per rilasciare una nuova versione della tua app o ripristinare rapidamente una versione precedente della tua app. Le nuove revisioni vengono create quando aggiorni la tua applicazione con modifiche dell'ambito di revisione. Puoi anche aggiornare la tua app contenitore in base a una revisione specifica.

Puoi controllare quali revisioni sono attive e il traffico esterno instradato a ogni revisione attiva. I nomi delle revisioni vengono usati per identificare una revisione e nell'URL della revisione. Puoi personalizzare il nome della revisione impostando il suffisso di revisione.

Per impostazione predefinita, App contenitore crea un nome di revisione univoco con un suffisso costituito da una stringa semi-casuale di caratteri alfanumerici. Ad esempio, per un'app contenitore denominata album-api, impostando il nome del suffisso della revisione su 1st-revision creerebbe una revisione con il nome album-api--1st-revision. Puoi impostare il suffisso di revisione nel modello di ARM tramite i comandi az containerapp create e az containerapp update dell'interfaccia della riga di comando di Azure, oppure creando una revisione tramite il portale di Azure.

Aggiornamento dell'app contenitore

Con il az containerapp update comando puoi modificare variabili di ambiente, risorse di calcolo, parametri di scala e distribuire un'immagine diversa. Se il tuo aggiornamento dell'app contenitore include modifiche all'ambito di revisione, viene generata una nuova revisione.

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

Puoi elencare tutte le revisioni associate alla tua app contenitore con il az containerapp revision list comando.

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

Per altre informazioni sui comandi di App contenitore, consultare il riferimento az containerapp.

Gestire i segreti nelle App contenitore di Azure

Le App contenitore di Azure consentono all'applicazione di archiviare in modo sicuro i valori di configurazione sensibili. Una volta definiti i segreti a livello di applicazione, i valori protetti sono disponibili per le app contenitore. In particolare, puoi fare riferimento a valori protetti all'interno delle regole di scalabilità.

  • L'ambito dei segreti è un'applicazione, all'esterno di una revisione specifica di un'applicazione.
  • L'aggiunta, la rimozione o la modifica dei segreti non genera nuove revisioni.
  • Ogni revisione dell'applicazione può fare riferimento a uno o più segreti.
  • Più revisioni possono fare riferimento agli stessi segreti.

Un segreto aggiornato o eliminato non influisce automaticamente sulle revisioni esistenti nella tua app. Quando un segreto viene aggiornato o eliminato, è possibile rispondere alle modifiche in uno dei due modi seguenti:

  1. Distribuire una nuova revisione.
  2. Riavviare una revisione esistente.

Prima di eliminare un segreto, distribuire una nuova revisione che non fa più riferimento al segreto precedente. Disattivare quindi tutte le revisioni che fanno riferimento al segreto.

Nota

App contenitore non supporta l'integrazione di Azure Key Vault. Abilita invece l'identità gestita nell'app contenitore e usa SDK Key Vault nella tua app per accedere ai segreti.

Definizione dei segreti

Quando crei un'app contenitore, i segreti vengono definiti utilizzando il --secrets parametro.

  • Il parametro accetta un set delimitato da spazi di coppie nome/valore.
  • Ogni coppia è delimitata da un segno di uguale (=).

Nell'esempio seguente una stringa di connessione a un account di archiviazione di code viene dichiarata nel parametro --secrets. Il valore per queue-connection-string deriva da una variabile di ambiente denominata $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"

Dopo aver dichiarato i segreti a livello di applicazione, puoi farvi riferimento nelle variabili di ambiente quando crei una nuova revisione nella tua app contenitore. Quando una variabile di ambiente fa riferimento a un segreto, il suo valore viene popolato con il valore definito nel segreto. Per fare riferimento a un segreto in una variabile di ambiente nell'interfaccia della riga di comando di Azure, impostarne il valore su secretref:, seguito dal nome del segreto.

L'esempio seguente mostra un'applicazione che dichiara una stringa di connessione a livello di applicazione. A questa connessione si fa riferimento in una variabile di ambiente del contenitore.

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"