Exercício – Usar volumes de dados

Concluído

Por padrão, as Instâncias de Contêiner do Azure não têm estado. Se o contêiner falhar ou parar, todas as informações de estado serão perdidas. Para persistir o estado além do tempo de vida do contêiner, é necessário montar um volume em um repositório externo.

Monte um compartilhamento de arquivo do Azure em uma instância de contêiner do Azure para armazenar dados e acessá-los mais tarde.

Criar um compartilhamento de arquivo do Azure

Crie uma conta do armazenamento e um compartilhamento de arquivo. Posteriormente, você pode tornar o compartilhamento de arquivos acessível para uma instância de contêiner do Azure.

  1. Sua conta de armazenamento exige um nome exclusivo. Para fins de aprendizado, execute o comando a seguir para armazenar um nome exclusivo em uma variável de Bash:

    STORAGE_ACCOUNT_NAME=mystorageaccount$RANDOM
    
  2. Execute o comando az storage account create a seguir para criar a conta de armazenamento:

    az storage account create \
      --resource-group learn-deploy-aci-rg \
      --name $STORAGE_ACCOUNT_NAME \
      --sku Standard_LRS \
      --location eastus
    
  3. Execute o comando a seguir para colocar a cadeia de conexão da conta de armazenamento em uma variável de ambiente chamada 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 é uma variável de ambiente especial entendida pela CLI do Azure. A parte export torna essa variável acessível para outros comandos de CLI que você executará posteriormente.

  4. Execute este comando para criar um compartilhamento de arquivos chamado aci-share-demo na conta de armazenamento:

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

Obter credenciais de armazenamento

Para montar um compartilhamento de arquivos do Azure como um volume em Instâncias de Contêiner do Azure, você precisa de três valores:

  • Nome da conta de armazenamento
  • Nome do compartilhamento
  • Chave de acesso da conta de armazenamento

Você já tem os dois primeiros valores. O nome da conta de armazenamento é armazenado na variável de Bash STORAGE_ACCOUNT_NAME. Você especificou aci-share-demo como o nome do compartilhamento na etapa anterior. Aqui, você obtém o valor restante: a chave de acesso da conta de armazenamento.

  1. Execute o comando a seguir para obter a chave da conta de armazenamento:

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

    O resultado é armazenado em uma variável de Bash chamada STORAGE_KEY.

  2. Como uma etapa opcional, imprima a chave de armazenamento no console.

    echo $STORAGE_KEY
    

Implantar um contêiner e montar o compartilhamento de arquivos

Para montar um compartilhamento de arquivos do Azure como um volume em um contêiner, especifique o compartilhamento e o ponto de montagem do volume ao criar o contêiner.

  1. Execute este comando az container create para criar um contêiner que monte /aci/logs/ no compartilhamento de arquivos:

    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. Execute az container show para obter o endereço IP público do seu contêiner:

    az container show \
      --resource-group learn-deploy-aci-rg \
      --name aci-demo-files \
      --query ipAddress.ip \
      --output tsv
    
  3. Use um navegador para acessar o endereço IP do contêiner. Você obterá esta página:

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

  4. Insira um texto no formulário e selecione Enviar. Essa ação cria um arquivo que contém o texto que você inseriu no compartilhamento de arquivos do Azure.

  5. Execute este comando az storage file list para exibir os arquivos que estão contidos no compartilhamento de arquivos:

    az storage file list -s aci-share-demo -o table
    
  6. Execute az storage file download para baixar um arquivo para a sessão do Cloud Shell. Substitua <filename> por um dos arquivos que apareceram na etapa anterior:

    az storage file download -s aci-share-demo -p <filename>
    
  7. Execute o comando cat para imprimir o conteúdo do arquivo.

    cat <filename>
    

Lembre-se de que seus dados são mantidos quando o contêiner é encerrado. Você pode montar o compartilhamento de arquivos em outras instâncias de contêiner para tornar os dados disponíveis para elas.