Používání svazků s daty

Ve výchozím nastavení je služba Azure Container Instances bezstavová. Pokud u kontejneru dojde k chybě nebo se kontejner zastaví, veškerý jeho stav se ztratí. Pokud chcete zachovat stav i po skončení doby života kontejneru, je nutné připojit svazek z externího úložiště.

Zde připojíte sdílenou složku Azure k instanci kontejneru Azure, aby do ní bylo možné ukládat data a později k nim přistupovat.

Vytvoření sdílené složky Azure

Zde vytvoříte účet úložiště a sdílenou složku, kterou později zpřístupníte pro instanci kontejneru Azure.

  1. Účet úložiště musí mít jedinečný název. Pro účely výuky spusťte následující příkaz, který uloží jedinečný název do proměnné prostředí Bash.

    STORAGE_ACCOUNT_NAME=mystorageaccount$RANDOM
    
  2. Vytvořte účet úložiště spuštěním následujícího příkazu az storage account create.

    az storage account create \
      --resource-group <rgn>[sandbox resource group name]</rgn> \
      --name $STORAGE_ACCOUNT_NAME \
      --sku Standard_LRS \
      --location eastus
    
  3. Spusťte následující příkaz, který umístí připojovací řetězec účtu úložiště do proměnné prostředí s názvem AZURE_STORAGE_CONNECTION_STRING.

    export AZURE_STORAGE_CONNECTION_STRING=$(az storage account show-connection-string \
      --resource-group <rgn>[sandbox resource group name]</rgn> \
      --name $STORAGE_ACCOUNT_NAME \
      --output tsv)
    

    AZURE_STORAGE_CONNECTION_STRING je speciální proměnná prostředí, kterou používá Azure CLI. Část export zpřístupňuje tuto proměnnou jiným příkazům CLI, které spustíte za chvíli.

  4. Spuštěním tohoto příkazu vytvořte v účtu úložiště sdílenou složku s názvem aci-share-demo.

    az storage share create --name aci-share-demo
    

Získání přihlašovacích údajů úložiště

K připojení sdílené složky Azure jako svazku ve službě Azure Container Instances potřebujete tyto tři hodnoty:

  • Název účtu úložiště
  • Název sdílené složky
  • Přístupový klíč účtu úložiště

Už máte první dvě hodnoty. Název účtu úložiště je uložený v proměnné prostředí Bash STORAGE_ACCOUNT_NAME. Jako název sdílené složky jste v předchozím kroku zadali aci-share-demo. Tady získáte poslední zbývající hodnotu – přístupový klíč účtu úložiště.

  1. Spuštěním následujícího příkazu získáte klíč účtu úložiště.

    STORAGE_KEY=$(az storage account keys list \
      --resource-group <rgn>[sandbox resource group name]</rgn> \
      --account-name $STORAGE_ACCOUNT_NAME \
      --query "[0].value" \
      --output tsv)
    

    Výsledek je uložený v proměnné prostředí Bash s názvem STORAGE_KEY.

  2. Volitelně můžete vytisknout klíč úložiště do konzoly.

    echo $STORAGE_KEY
    

Nasazení kontejneru a připojení sdílené složky

Pokud chcete připojit sdílenou složku Azure ke kontejneru jako svazek, zadejte při vytváření kontejneru přípojný bod sdílené složky a svazku.

  1. Spuštěním příkazu az container create vytvořte kontejner, který ke sdílené složce připojí /aci/logs/.

    az container create \
      --resource-group <rgn>[sandbox resource group name]</rgn> \
      --name aci-demo-files \
      --image microsoft/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. Spuštěním příkazu az container show získáte veřejnou IP adresu kontejneru.

    az container show \
      --resource-group <rgn>[sandbox resource group name]</rgn> \
      --name aci-demo-files \
      --query ipAddress.ip \
      --output tsv
    
  3. V prohlížeči přejděte na IP adresu kontejneru. Uvidíte toto.

    Ukázková sdílená složka Azure Container Instances

  4. Zadejte do formuláře nějaký text a klikněte na Odeslat. Tato akce vytvoří soubor obsahující text, který jste zadali do sdílené složky Azure.

  5. Spuštěním příkazu az storage file list zobrazte soubory, které daná sdílená složka obsahuje.

    az storage file list -s aci-share-demo -o table
    
  6. Spuštěním příkazu az storage file download stáhněte soubor do relace služby Cloud Shell. Nahraďte <název_souboru> jedním ze souborů, které se zobrazily v předchozím kroku.

    az storage file download -s aci-share-demo -p <filename>
    
  7. Spuštěním příkazu cat vytiskněte obsah souboru.

    cat <filename>
    

Mějte na paměti, že po ukončení kontejneru se daná data zachovají. Sdílenou složku můžete připojit k jiným instancím kontejneru a daná data jim tak zpřístupnit.