Läs på engelska

Övning – Använda datavolymer

Slutförd

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.

I den här övningen monterar du en Azure-filresurs till en Azure-containerinstans så att du kan lagra data och komma åt dem senare.

Skapa en Azure-filresurs

Först skapar du ett lagringskonto och en filresurs. Senare kan du göra filresursen tillgänglig för en Azure-containerinstans.

  1. Ge lagringskontot ett unikt namn. I utbildningssyfte kör du följande kommando för att lagra ett unikt namn i en Bash-variabel:

    Bash
    STORAGE_ACCOUNT_NAME=mystorageaccount$RANDOM
    
  2. Kör följande az storage account create kommando för att skapa ditt lagringskonto:

    Azure CLI
    az storage account create \
      --resource-group learn-deploy-aci-rg \
      --name $STORAGE_ACCOUNT_NAME \
      --sku Standard_LRS \
      --location eastus
    
  3. Kör följande kommando för att placera lagringskontot anslutningssträng i en miljövariabel med namnet AZURE_STORAGE_CONNECTION_STRING:

    Azure CLI
    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. Delen export gör den här variabeln tillgänglig för andra CLI-kommandon som du kör senare.

  4. Kör det här kommandot för att skapa en filresurs med namnet aci-share-demo på lagringskontot:

    Azure CLI
    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.

  1. Kör följande kommando för att hämta lagringskontonyckeln:

    Azure CLI
    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.

  2. Du kan även skriva ut lagringskontots nyckel till konsolen om du vill.

    Bash
    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.

  1. Kör det här az container create kommandot för att skapa en container som monteras /aci/logs/ på filresursen:

    Azure CLI
    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/
    
  2. Kör az container show för att hämta containerns offentliga IP-adress:

    Azure CLI
    az container show \
      --resource-group learn-deploy-aci-rg \
      --name aci-demo-files \
      --query ipAddress.ip \
      --output tsv
    
  3. Från en webbläsare navigerar du till IP-adressen för din container. Du får den här sidan:

    Skärmbild av demonstrationen av filresurs i Azure Container Instances som körs i en webbläsare.

  4. 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.

  5. Kör det här az storage file list kommandot för att visa de filer som finns i filresursen:

    Azure CLI
    az storage file list -s aci-share-demo -o table
    
  6. 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:

    Azure CLI
    az storage file download -s aci-share-demo -p <filename>
    
  7. Kör kommandot cat för att skriva ut innehållet i filen.

    Azure CLI
    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.