Exercício – Usar volumes de dados
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.
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
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
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 parteexport
torna essa variável acessível para outros comandos de CLI que você executará posteriormente.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.
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
.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.
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/
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
Use um navegador para acessar o endereço IP do contêiner. Você obterá esta página:
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.
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
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>
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.