Exercício – utilizar volumes de dados
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.
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
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
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. Aexport
parte torna essa variável acessível a outros comandos da CLI que você executa 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 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.
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
.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.
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/
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
Num browser, navegue para o endereço IP do seu contentor. Você obtém esta página:
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.
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
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>
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.