Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Aprenda a gravar no armazenamento permanente em um aplicativo de contêiner usando uma montagem de armazenamento do Azure Files. Para obter mais informações sobre montagens de armazenamento, consulte Usar montagens de armazenamento em Aplicativos de Contêiner do Azure.
Neste tutorial, você aprenderá a:
- Criar um ambiente de aplicativos de contêiner
- Criar uma conta de Armazenamento do Azure
- Definir um compartilhamento de arquivos na conta de armazenamento
- Vincular o ambiente ao compartilhamento de arquivos de armazenamento
- Monte a partilha de armazenamento em um contêiner individual
- Verifique a montagem do armazenamento exibindo o log de acesso ao site
Observação
Os Aplicativos de Contêiner do Azure dão suporte à montagem de compartilhamentos de arquivos usando protocolos SMB e NFS. Este tutorial demonstra a montagem de um compartilhamento de Arquivos do Azure usando o protocolo SMB. Para saber mais sobre como montar compartilhamentos NFS, consulte Usar montagens de armazenamento em Aplicativos de Contêiner do Azure.
Pré-requisitos
- Instale a versão mais recente da CLI do Azure.
Configurar o ambiente
Os comandos a seguir definem variáveis de ambiente e garantem que sua extensão Container Apps esteja atualizada.
Entre na CLI do Azure.
az loginConfigure variáveis de ambiente usadas em vários comandos a serem seguidos.
RESOURCE_GROUP="my-container-apps-group" ENVIRONMENT_NAME="my-storage-environment" LOCATION="canadacentral"Certifique-se de ter a versão mais recente da extensão CLI do Azure Container Apps.
az extension add -n containerapp --upgradeRegiste o namespace
Microsoft.App.az provider register --namespace Microsoft.AppRegiste o provedor
Microsoft.OperationalInsightspara o espaço de trabalho do Azure Monitor Log Analytics, caso ainda não o tenha utilizado.az provider register --namespace Microsoft.OperationalInsights
Criar um ambiente
As etapas a seguir criam um grupo de recursos e um ambiente de Aplicativos de Contêiner.
Crie um grupo de recursos.
az group create \ --name $RESOURCE_GROUP \ --location $LOCATION \ --query "properties.provisioningState"Uma vez criado, o comando retorna uma mensagem "Succeeded".
No final deste tutorial, você pode excluir o grupo de recursos para remover todos os serviços criados durante este artigo.
Crie um ambiente de aplicativos de contêiner.
az containerapp env create \ --name $ENVIRONMENT_NAME \ --resource-group $RESOURCE_GROUP \ --location "$LOCATION" \ --query "properties.provisioningState"Uma vez criado, o comando retorna uma mensagem "Succeeded".
As montagens de armazenamento são associadas a um ambiente de Aplicações de Contentores e configuradas em aplicações de contentores individuais.
Configurar uma conta de armazenamento
Em seguida, crie uma conta de armazenamento e estabeleça um compartilhamento de arquivos para montar no aplicativo de contêiner.
Defina um nome de conta de armazenamento.
Este comando gera um sufixo aleatório para o nome da conta de armazenamento para garantir exclusividade.
STORAGE_ACCOUNT_NAME="myacastorageaccount$RANDOM"Criar uma conta de Armazenamento do Azure.
az storage account create \ --resource-group $RESOURCE_GROUP \ --name $STORAGE_ACCOUNT_NAME \ --location "$LOCATION" \ --kind StorageV2 \ --sku Standard_LRS \ --enable-large-file-share \ --query provisioningStateUma vez criado, o comando retorna uma mensagem "Succeeded".
Defina um nome de compartilhamento de arquivos.
STORAGE_SHARE_NAME="myfileshare"Crie o compartilhamento de arquivos do Armazenamento do Azure.
az storage share-rm create \ --resource-group $RESOURCE_GROUP \ --storage-account $STORAGE_ACCOUNT_NAME \ --name $STORAGE_SHARE_NAME \ --quota 1024 \ --enabled-protocols SMB \ --output tableObtenha a chave da conta de armazenamento.
STORAGE_ACCOUNT_KEY=`az storage account keys list -n $STORAGE_ACCOUNT_NAME --query "[0].value" -o tsv`A chave da conta de armazenamento é necessária para criar o link de armazenamento em seu ambiente de Aplicativos de Contêiner. Os Aplicativos de Contêiner não oferecem suporte ao acesso baseado em identidade a compartilhamentos de arquivos do Azure.
Defina o nome da montagem de armazenamento.
STORAGE_MOUNT_NAME="mystoragemount"Esse valor é o nome usado para definir o link de montagem de armazenamento do seu ambiente de Aplicativos de Contêiner para sua conta de Armazenamento do Azure.
Criar o suporte de armazenamento
Agora você pode atualizar a configuração do aplicativo de contêiner para suportar a montagem de armazenamento.
Crie o link de armazenamento no ambiente.
az containerapp env storage set \ --access-mode ReadWrite \ --azure-file-account-name $STORAGE_ACCOUNT_NAME \ --azure-file-account-key $STORAGE_ACCOUNT_KEY \ --azure-file-share-name $STORAGE_SHARE_NAME \ --storage-name $STORAGE_MOUNT_NAME \ --name $ENVIRONMENT_NAME \ --resource-group $RESOURCE_GROUP \ --output tableEste comando cria um link entre o ambiente do aplicativo contêiner e o compartilhamento de arquivos criado com o
az storage share-rmcomando.Agora que a conta de armazenamento e o ambiente estão vinculados, você pode criar um aplicativo de contêiner que usa a montagem de armazenamento.
Defina o nome do aplicativo de contêiner.
CONTAINER_APP_NAME="my-container-app"Crie o aplicativo de contêiner.
az containerapp create \ --name $CONTAINER_APP_NAME \ --resource-group $RESOURCE_GROUP \ --environment $ENVIRONMENT_NAME \ --image nginx \ --min-replicas 1 \ --max-replicas 1 \ --target-port 80 \ --ingress external \ --query properties.configuration.ingress.fqdnEste comando exibe a URL do seu novo aplicativo de contêiner.
Copie o URL e cole no navegador da Web para navegar até o site.
Quando a página carregar, você verá a mensagem "Bem-vindo ao nginx!". Mantenha este separador do navegador aberto. Você voltará ao site durante as etapas de verificação da configuração de armazenamento.
Agora que você confirmou que a aplicação contêiner está configurada, pode atualizá-la com uma definição de montagem de armazenamento.
Exporte a configuração do aplicativo contêiner.
az containerapp show \ --name $CONTAINER_APP_NAME \ --resource-group $RESOURCE_GROUP \ --output yaml > app.yamlObservação
Embora esta aplicação não tenha segredos, muitas aplicações apresentam segredos. Por padrão, quando você exporta a configuração de um aplicativo, os valores para segredos não são incluídos no YAML gerado.
Se não precisar de alterar valores secretos, pode remover a
secretssecção e os seus segredos permanecem inalterados. Como alternativa, se você precisar alterar o valor de um segredo, certifique-se de fornecer onameevaluepara todos os segredos no arquivo antes de tentar atualizar o aplicativo. Omitir um segredo dasecretsseção exclui o segredo.Abra app.yaml em um editor de código.
Substitua a definição de
volumes: nullna seçãotemplatepor uma definição devolumes:que faça referência ao volume de armazenamento. A seção de modelo deve ter a seguinte aparência:template: containers: - image: nginx imageType: ContainerImage name: my-container-app resources: cpu: 0.5 ephemeralStorage: 2Gi memory: 1Gi volumeMounts: - volumeName: my-azure-file-volume mountPath: /var/log/nginx initContainers: null revisionSuffix: '' scale: cooldownPeriod: 300 maxReplicas: 1 minReplicas: 1 pollingInterval: 30 rules: null serviceBinds: null terminationGracePeriodSeconds: null volumes: - name: my-azure-file-volume storageName: mystoragemount storageType: AzureFileA nova
template.volumesseção inclui as seguintes propriedades.Propriedade Descrição nameEsse valor corresponde ao volume criado chamando o az containerapp env storage setcomando.storageNameEsse valor define o nome usado pelos contêineres no ambiente para acessar o volume de armazenamento. storageTypeEsse valor determina o tipo de volume de armazenamento definido para o ambiente. Nesse caso, uma montagem de Azure Files é declarada. A
volumesseção define volumes ao nível da aplicação que o seu contentor de aplicação ou contentores de sidecar podem referenciar por meio de umavolumeMountsseção associada a um contentor.Adicione uma
volumeMountssecção aonginxcontentor nacontainerssecção.containers: - image: nginx name: my-container-app volumeMounts: - volumeName: my-azure-file-volume mountPath: /var/log/nginxA nova
volumeMountsseção inclui as seguintes propriedades:Propriedade Descrição volumeNameEsse valor deve corresponder ao volumesnome definido na definição.mountPathEsse valor define o caminho no contêiner onde o armazenamento é montado. Atualize o aplicativo contêiner com a nova configuração de montagem de armazenamento.
az containerapp update \ --name $CONTAINER_APP_NAME \ --resource-group $RESOURCE_GROUP \ --yaml app.yaml \ --output table
Verifique o ponto de montagem de armazenamento
Agora que a montagem de armazenamento está estabelecida, você pode manipular arquivos no Armazenamento do Azure a partir do seu contêiner. Use os comandos a seguir para observar a montagem de armazenamento em funcionamento.
Abra um shell interativo dentro do aplicativo de contêiner para executar comandos dentro do contêiner em execução.
az containerapp exec \ --name $CONTAINER_APP_NAME \ --resource-group $RESOURCE_GROUPEste comando pode levar um momento para abrir o shell remoto. Quando o shell estiver pronto, você poderá interagir com a montagem de armazenamento por meio de comandos do sistema de arquivos. Para obter mais informações, consulte Conectar-se a um console de contêiner em Aplicativos de Contêiner do Azure.
Vá para a pasta /var/log/nginx do nginx.
cd /var/log/nginxVolte ao navegador e navegue até o site e atualize a página algumas vezes.
As solicitações feitas ao site criam uma série de entradas de fluxo de log.
Volte ao seu terminal e liste os valores da pasta
/var/log/nginx.lsObserve como os arquivos access.log e error.log aparecem nesta pasta. Esses ficheiros são gravados na montagem do Azure Files na sua partilha de Armazenamento do Azure criada nas etapas anteriores.
Exiba o conteúdo do arquivo access.log .
cat access.logSaia do shell interativo do contêiner para retornar à sessão do terminal local.
exitAgora, você pode exibir os arquivos no portal do Azure para verificar se eles existem em sua conta de Armazenamento do Azure. Imprima o nome da sua conta de armazenamento gerada aleatoriamente.
echo $STORAGE_ACCOUNT_NAMENavegue até o portal do Azure e abra a conta de armazenamento criada neste procedimento.
Em Armazenamento de Dados , selecione Compartilhamentos de arquivos.
Selecione myshare para visualizar os arquivos access.log e error.log .
Limpeza de recursos
Se você não vai continuar a usar este aplicativo, execute o seguinte comando para excluir o grupo de recursos junto com todos os recursos criados neste artigo.
az group delete \
--name $RESOURCE_GROUP