Cvičení – 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ě.
Připojte sdílenou složku Azure k instanci kontejneru Azure, abyste k ní mohli ukládat data a přistupovat k ní později.
Vytvoření sdílené složky Azure
Vytvořte účet úložiště a sdílenou složku. Později můžete sdílenou složku zpřístupnit instanci kontejneru Azure.
Úč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é Bash:
STORAGE_ACCOUNT_NAME=mystorageaccount$RANDOM
Spuštěním následujícího
az storage account create
příkazu vytvořte účet úložiště:az storage account create \ --resource-group learn-deploy-aci-rg \ --name $STORAGE_ACCOUNT_NAME \ --sku Standard_LRS \ --location eastus
Spuštěním následujícího příkazu umístěte účet úložiště připojovací řetězec 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 learn-deploy-aci-rg \ --name $STORAGE_ACCOUNT_NAME \ --output tsv)
AZURE_STORAGE_CONNECTION_STRING
je speciální proměnná prostředí, kterou Azure CLI rozumí. Tatoexport
proměnná bude přístupná pro další příkazy rozhraní příkazového řádku, které spustíte později.Spuštěním tohoto příkazu vytvořte sdílenou složku s názvem aci-share-demo v účtu úložiště:
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 zbývající hodnotu: přístupový klíč účtu úložiště.
Spuštěním následujícího příkazu získejte klíč účtu úložiště:
STORAGE_KEY=$(az storage account keys list \ --resource-group learn-deploy-aci-rg \ --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
.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.
Spuštěním tohoto
az container create
příkazu vytvořte kontejner, který se připojí/aci/logs/
ke sdílené složce: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/
Spuštěním
az container show
získejte veřejnou IP adresu kontejneru:az container show \ --resource-group learn-deploy-aci-rg \ --name aci-demo-files \ --query ipAddress.ip \ --output tsv
V prohlížeči přejděte na IP adresu kontejneru. Zobrazí se tato stránka:
Zadejte do formuláře nějaký text a vyberte Odeslat. Tato akce vytvoří soubor obsahující text, který jste zadali do sdílené složky Azure.
Spuštěním tohoto
az storage file list
příkazu zobrazte soubory obsažené ve sdílené složce:az storage file list -s aci-share-demo -o table
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>
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.