Övning – Använda datavolymer
Som standard är Azure Container Instances tillståndslösa. Om containern kraschar eller stoppas förloras hela tillståndet. Om du vill bevara tillståndet längre än containerns livslängd måste du montera en volym från en extern lagring.
Montera en Azure-filresurs till en Azure-containerinstans så att du kan lagra data och komma åt dem senare.
Skapa en Azure-filresurs
Skapa ett lagringskonto och en filresurs. Senare kan du göra filresursen tillgänglig för en Azure-containerinstans.
Ge lagringskontot ett unikt namn. I utbildningssyfte kör du följande kommando för att lagra ett unikt namn i en Bash-variabel:
STORAGE_ACCOUNT_NAME=mystorageaccount$RANDOM
Kör följande
az storage account create
kommando för att skapa ditt lagringskonto:az storage account create \ --resource-group learn-deploy-aci-rg \ --name $STORAGE_ACCOUNT_NAME \ --sku Standard_LRS \ --location eastus
Kör följande kommando för att placera lagringskontot anslutningssträng i en miljövariabel med namnet
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
är en särskild miljövariabel som Azure CLI förstår. Delenexport
gör den här variabeln tillgänglig för andra CLI-kommandon som du kör senare.Kör det här kommandot för att skapa en filresurs med namnet aci-share-demo på lagringskontot:
az storage share create --name aci-share-demo
Hämta autentiseringsuppgifter för lagringen
Om du vill montera en Azure-filresurs som en volym i Azure Container Instances behöver du följande tre värden:
- Lagringskontonamn
- Resursnamn
- Åtkomstnyckel för lagringskonto
Du har redan de två första värdena. Lagringskontonamn lagras i Bash-variabeln STORAGE_ACCOUNT_NAME
. Du angav aci-share-demo som resursnamn i föregående steg. Här får du det återstående värdet: åtkomstnyckeln för lagringskontot.
Kör följande kommando för att hämta lagringskontonyckeln:
STORAGE_KEY=$(az storage account keys list \ --resource-group learn-deploy-aci-rg \ --account-name $STORAGE_ACCOUNT_NAME \ --query "[0].value" \ --output tsv)
Resultatet lagras i en Bash-variabel som kallas
STORAGE_KEY
.Du kan även skriva ut lagringskontots nyckel till konsolen om du vill.
echo $STORAGE_KEY
Distribuera en container och montera filresursen
När du ska montera en Azure-filresurs som en volym i en container anger du resursens och volymens monteringspunkt när du skapar containern.
Kör det här
az container create
kommandot för att skapa en container som monteras/aci/logs/
på filresursen: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/
Kör
az container show
för att hämta containerns offentliga IP-adress:az container show \ --resource-group learn-deploy-aci-rg \ --name aci-demo-files \ --query ipAddress.ip \ --output tsv
Från en webbläsare navigerar du till IP-adressen för din container. Du får den här sidan:
Ange text i formuläret och välj Skicka. Den här åtgärden skapar en fil som innehåller den text du angav i Azure-filresursen.
Kör det här
az storage file list
kommandot för att visa de filer som finns i filresursen:az storage file list -s aci-share-demo -o table
Kör
az storage file download
för att ladda ned en fil till Cloud Shell-sessionen. Ersätt <filnamnet> med en av filerna som visades i föregående steg:az storage file download -s aci-share-demo -p <filename>
Kör kommandot
cat
för att skriva ut innehållet i filen.cat <filename>
Kom ihåg att dina data finns kvar även om containern avslutas. Du kan montera filresursen till andra containerinstanser så att dessa data blir tillgängliga för dem.