Упражнение. Использование томов данных

Завершено

Состояние в экземплярах контейнеров Azure не отслеживается по умолчанию. Если происходит сбой в контейнере или он завершает работу, все сведения о состоянии будут утеряны. Чтобы сохранить состояние после истечения времени существования контейнера, необходимо подключить том из внешнего хранилища.

Подключите общую папку Azure к экземпляру контейнера Azure, чтобы сохранить данные и получить к нему доступ позже.

Создание общей папки Azure

Создайте учетную запись хранения и общую папку. Позже вы можете сделать общую папку доступной для экземпляра контейнера Azure.

  1. Учетная запись хранения должна иметь уникальное имя. Для обучения выполните следующую команду, чтобы сохранить уникальное имя в переменной Bash:

    STORAGE_ACCOUNT_NAME=mystorageaccount$RANDOM
    
  2. Выполните следующую az storage account create команду, чтобы создать учетную запись хранения:

    az storage account create \
      --resource-group learn-deploy-aci-rg \
      --name $STORAGE_ACCOUNT_NAME \
      --sku Standard_LRS \
      --location eastus
    
  3. Выполните следующую команду, чтобы поместить учетную запись хранения строка подключения в переменную среды с именем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 — это специальная переменная среды, которую понимает Azure CLI. Часть export делает эту переменную доступной для других команд CLI, которые выполняются позже.

  4. Выполните следующую команду, чтобы создать общую папку с именем aci-share-demo в учетной записи хранения:

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

Получение учетных данных хранилища

Чтобы подключить файловый ресурс Azure в качестве тома в экземплярах контейнеров Azure, вам потребуются эти три значения:

  • Storage account name
  • Имя общего ресурса
  • Ключ доступа к учетной записи хранения

У вас уже есть первые два значения. Имя учетной записи хранения содержится в переменной Bash STORAGE_ACCOUNT_NAME. На предыдущем шаге вы указали в качестве имени ресурса aci-share-demo. Здесь вы получите оставшееся значение: ключ доступа к учетной записи хранения.

  1. Выполните следующую команду, чтобы получить ключ учетной записи хранения:

    STORAGE_KEY=$(az storage account keys list \
      --resource-group learn-deploy-aci-rg \
      --account-name $STORAGE_ACCOUNT_NAME \
      --query "[0].value" \
      --output tsv)
    

    Результат сохраняется в переменной Bash с именем STORAGE_KEY.

  2. В качестве дополнительного шага выведите ключ учетной записи хранения на консоли.

    echo $STORAGE_KEY
    

Развертывание контейнера и подключение файлового ресурса

Чтобы подключить общий файловый ресурс Azure в качестве тома в контейнере, укажите точку подключения для общего ресурса и тома при создании контейнера.

  1. Выполните следующую az container create команду, чтобы создать контейнер, который подключается /aci/logs/ к общей папке:

    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. Выполните команду az container show , чтобы получить общедоступный IP-адрес контейнера:

    az container show \
      --resource-group learn-deploy-aci-rg \
      --name aci-demo-files \
      --query ipAddress.ip \
      --output tsv
    
  3. В браузере перейдите по IP-адресу контейнера. Вы получите эту страницу:

    Screenshot of the Azure Container Instances file share demo running in a browser.

  4. Введите в форму любой текст и щелкните Отправить. Это действие создает файл, содержащий текст, введенный в файловом ресурсе Azure.

  5. Выполните следующую az storage file list команду, чтобы отобразить файлы, содержащиеся в общей папке:

    az storage file list -s aci-share-demo -o table
    
  6. Выполните az storage file download, чтобы загрузить файл в сеанс Cloud Shell. Замените <имя> файла одним из файлов, которые появились на предыдущем шаге:

    az storage file download -s aci-share-demo -p <filename>
    
  7. Выполните команду cat, чтобы вывести содержимое файла.

    cat <filename>
    

Помните, что ваши данные сохраняются при выходе контейнера. Подключите файловый ресурс к другим экземплярам контейнера, чтобы данные были доступны для них.