Esercizio - Usare volumi di dati
Per impostazione predefinita, Istanze di Azure Container è senza stato. Se il contenitore si blocca o si arresta, lo stato viene perso. Per rendere persistente lo stato oltre la durata del contenitore, è necessario montare un volume da un archivio esterno.
Montare una condivisione file di Azure in un'istanza di contenitore di Azure in cui sarà possibile archiviare i dati e che sarà accessibile in un secondo momento.
Creare una condivisione file di Azure
Creare un account di archiviazione con la condivisione file. Successivamente, è possibile rendere accessibile la condivisione file a un'istanza del contenitore di Azure.
L'account di archiviazione richiede un nome univoco. Ai fini dell'apprendimento, eseguire il comando seguente per archiviare un nome univoco in una variabile Bash:
STORAGE_ACCOUNT_NAME=mystorageaccount$RANDOM
Eseguire il comando seguente
az storage account create
per creare l'account di archiviazione:az storage account create \ --resource-group learn-deploy-aci-rg \ --name $STORAGE_ACCOUNT_NAME \ --sku Standard_LRS \ --location eastus
Eseguire il comando seguente per inserire la stringa di connessione dell'account di archiviazione in una variabile di ambiente denominata
AZURE_STORAGE_CONNECTION_STRING
:export AZURE_STORAGE_CONNECTION_STRING=$(az storage account show-connection-string \ --resource-group learn-deploy-aci-rg \ --name $STORAGE_ACCOUNT_NAME \ --output tsv)
AZURE_STORAGE_CONNECTION_STRING
è una variabile di ambiente speciale che l'interfaccia della riga di comando di Azure riconosce. La parteexport
rende questa variabile accessibile agli altri comandi dell'interfaccia della riga di comando che si eseguiranno a breve.Eseguire questo comando per creare una condivisione file, denominata aci-share-demo, nell'account di archiviazione:
az storage share create --name aci-share-demo
Ottenere le credenziali di archiviazione
Per montare una condivisione file di Azure come volume in Istanze di Azure Container, sono necessari questi tre valori:
- Nome account di archiviazione
- Nome condivisione
- Chiave di accesso dell'account di archiviazione
I primi due valori sono già disponibili. Il nome dell'account di archiviazione è archiviato nella variabile Bash STORAGE_ACCOUNT_NAME
. È stato specificato il nome condivisione aci-share-demo nel passaggio precedente. Qui si vedrà come ottenere il valore rimanente, ovvero la chiave di accesso dell'account di archiviazione.
Eseguire il comando seguente per ottenere la chiave dell'account di archiviazione:
STORAGE_KEY=$(az storage account keys list \ --resource-group learn-deploy-aci-rg \ --account-name $STORAGE_ACCOUNT_NAME \ --query "[0].value" \ --output tsv)
Il risultato viene archiviato in una variabile Bash denominata
STORAGE_KEY
.Come passaggio facoltativo, stampare la chiave dell'account di archiviazione nella console.
echo $STORAGE_KEY
Distribuire un contenitore e montare la condivisione file
Per montare una condivisione file di Azure come un volume all'interno di un contenitore, specificare il punto di montaggio della condivisione e del volume quando si crea il contenitore.
Eseguire questo comando
az container create
per creare un contenitore che monti/aci/logs/
nella condivisione file:az container create \ --resource-group learn-deploy-aci-rg \ --name aci-demo-files \ --image mcr.microsoft.com/azuredocs/aci-hellofiles \ --location eastus \ --ports 80 \ --ip-address Public \ --azure-file-volume-account-name $STORAGE_ACCOUNT_NAME \ --azure-file-volume-account-key $STORAGE_KEY \ --azure-file-volume-share-name aci-share-demo \ --azure-file-volume-mount-path /aci/logs/
Eseguire
az container show
per ottenere l'indirizzo IP pubblico del contenitore:az container show \ --resource-group learn-deploy-aci-rg \ --name aci-demo-files \ --query ipAddress.ip \ --output tsv
Da un browser passare all'indirizzo IP del contenitore. Si ottiene questa pagina:
Immettere il testo nel modulo e selezionare Invia. Questa azione crea un file contenete il testo immesso nella condivisione file di Azure.
Eseguire questo comando
az storage file list
per visualizzare i file contenuti nella condivisione file:az storage file list -s aci-share-demo -o table
Eseguire
az storage file download
per scaricare un file nella sessione di Cloud Shell. Sostituire <filename> con uno dei file visualizzati nel passaggio precedente:az storage file download -s aci-share-demo -p <filename>
Eseguire il comando
cat
per elencare il contenuto del file.cat <filename>
Tenere presente che i dati vengono mantenuti alla chiusura del contenitore. È possibile montare la condivisione file in altre istanze di contenitore per rendere disponibili questi dati.