Exercício – utilizar volumes de dados

Concluído

Por predefinição, o Azure Container Instances não tem monitorização de estado. Se o contentor falhar ou parar, todo o seu estado será perdido. Para manter as informações de estado para além da duração do contentor, tem de montar um volume a partir de um arquivo externo.

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

Criar uma partilha de ficheiros do Azure

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

  1. A sua conta de armazenamento exige um nome exclusivo. Para fins de aprendizagem, execute o seguinte comando para armazenar um nome exclusivo em uma variável Bash:

    STORAGE_ACCOUNT_NAME=mystorageaccount$RANDOM
    
  2. Execute o seguinte az storage account create comando para criar sua 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 seguinte comando 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 que a CLI do Azure compreende. A export parte torna essa variável acessível a outros comandos da CLI que você executa 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 as credenciais de armazenamento

Para montar uma partilha de ficheiros do Azure como um volume no Azure Container Instances, precisa destes três valores:

  • Nome da conta de armazenamento
  • Nome da partilha
  • Chave de acesso da conta de armazenamento

Já possui os primeiros dois valores. A conta de armazenamento é armazenada na variável Bash STORAGE_ACCOUNT_NAME. Especificou aci-share-demo como o nome da partilha no passo anterior. Aqui, você obtém o valor restante: a chave de acesso da conta de armazenamento.

  1. Execute o seguinte comando 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 numa variável Bash denominada STORAGE_KEY.

  2. Como passo opcional, imprima a chave de armazenamento na consola.

    echo $STORAGE_KEY
    

Implementar um contentor e montar a partilha de ficheiros

Para montar uma partilha de ficheiros do Azure como um volume num contentor, o utilizador especifica o ponto de montagem do volume e da partilha ao criar o contentor.

  1. Execute este az container create comando para criar um contêiner que seja montado em seu compartilhamento de /aci/logs/ 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. Num browser, navegue para o endereço IP do seu contentor. Você obtém esta página:

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

  4. Insira algum texto no formulário e selecione Enviar. Esta ação cria um ficheiro que contém o texto que introduziu na partilha de ficheiros do Azure.

  5. Execute este az storage file list comando para exibir os arquivos contidos em seu compartilhamento de arquivos:

    az storage file list -s aci-share-demo -o table
    
  6. Execute az storage file download para transferir um ficheiro para a sua sessão do Cloud Shell. Substitua <o nome do arquivo> 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 os conteúdos do ficheiro.

    cat <filename>
    

Tenha em conta que os seus dados se mantêm quando o seu contentor sai. Pode montar a sua partilha de ficheiros noutras instâncias de contentor para tornar os dados disponíveis para as mesmas.