Partilhar via


Implantar Aplicativos de Contêiner do Azure com o comando az containerapp up

O az containerapp up comando (ou up) é a forma mais rápida de implementar uma aplicação no Azure Container Apps a partir de uma imagem existente, código-fonte local ou repositório do GitHub. Quando usa este único comando, pode ter a sua aplicação container a funcionar em minutos.

O comando pode construir e enviar uma imagem de contentor para o Azure Container Registry quando fornece código-fonte local ou um repositório GitHub. Quando trabalhas a partir de um repositório GitHub, o comando cria um fluxo de trabalho de Ações no GitHub que automaticamente constrói e envia uma nova imagem de contentor quando fazes commit de alterações no teu repositório GitHub.

Este artigo mostra-lhe como usar o comando para implementar uma aplicação container a partir de uma imagem existente, código-fonte local e um repositório GitHub.

Pré-requisitos

Requisito Instruções
Uma conta do Azure Se você não tiver uma, crie uma conta gratuitamente. A sua subscrição do Azure precisa de ter as funções de Contribuinte ou Proprietário . Para informações detalhadas, consulte Atribuir funções Azure usando o portal Azure.
A ferramenta CLI do Azure Instale a CLI do Azure.
Uma conta do GitHub Se quiseres usar uma imagem num repositório GitHub, regista-te numa conta gratuita no GitHub.
Código fonte local Se quiseres criar uma imagem a partir do código-fonte local, coloca o teu código num diretório local.
Uma imagem existente Se quiseres usar uma imagem existente, anota o servidor do teu registo, nome da imagem e etiqueta. Se usares um registo privado, também regista as tuas credenciais.

Utilizar os recursos existentes

O up comando pode criar recursos, ou pode usar os já existentes, incluindo:

  • Um grupo de recursos.
  • Registo de Contentores.
  • Um ambiente de Container Apps e um espaço de trabalho do Log Analytics.
  • A tua aplicação de contentores.

Se precisar de personalizar o ambiente Container Apps, use primeiro o az containerapp env create comando para criar e personalizar o seu ambiente. Quando executares o up comando, usa a --environment opção para especificar o ambiente personalizado.

Se não especificares um ambiente existente, o up comando procura um no teu grupo de recursos. Se o comando encontrar um ambiente, usa esse ambiente. Se o comando não encontrar um ambiente, cria um que inclui um espaço de trabalho de Log Analytics.

Para mais informações sobre o az containerapp up comando e as suas opções, consulte az containerapp up.

Configurar seu ambiente da CLI do Azure

  1. Use o CLI do Azure para iniciar sessão no Azure.

    az login
    
  2. Instale a extensão Container Apps para a CLI do Azure.

    az extension add --name containerapp --upgrade
    
  3. Registe o Microsoft.App namespace.

    az provider register --namespace Microsoft.App
    
  4. Registe o Microsoft.OperationalInsights fornecedor para o espaço de trabalho de Log Analytics.

    az provider register --namespace Microsoft.OperationalInsights
    

Implantar a partir de uma imagem existente

Você pode implantar um aplicativo de contêiner que usa uma imagem existente em um registro de contêiner público ou privado. Se implementares a partir de um registo privado, precisas de fornecer as tuas credenciais usando as --registry-serveropções , --registry-username, e --registry-password .

Pode usar o seguinte exemplo de código para implementar uma aplicação container a partir de uma imagem existente. Antes de executares o comando, substitui os marcadores de posição, que estão envoltos em colchetes angulares, pelos teus valores.

az containerapp up \
  --name <CONTAINER_APP_NAME> \
  --image <REGISTRY_SERVER>/<IMAGE_NAME>:<TAG> \
  --ingress external \
  --target-port <PORT_NUMBER> 

Este comando executa as seguintes ações:

  1. Cria um grupo de recursos.
  2. Cria um ambiente e um espaço de trabalho do Log Analytics.
  3. Cria e implanta um aplicativo de contêiner que extrai a imagem de um registro público.
  4. Define o valor da ingress aplicação container para external com uma porta alvo definida para o valor especificado.

Também podes usar o up comando para redistribuir uma aplicação de contentores. Se desejar reimplantar com uma nova imagem, use a --image opção para especificar uma nova imagem. Certifique-se de que as --resource-group opções e --environment estão definidas para os valores da implementação original.

az containerapp up \
  --name <CONTAINER_APP_NAME> \
  --image <REGISTRY_SERVER>/<IMAGE_NAME>:<TAG> \
  --resource-group <RESOURCE_GROUP_NAME> \
  --environment <ENVIRONMENT_NAME> \
  --ingress external \
  --target-port <PORT_NUMBER> 

Implantar a partir do código-fonte local

Quando você usa o up comando para implantar a partir de uma fonte local, ele cria a imagem de contêiner, envia-a por push para um registro e implanta o aplicativo de contêiner. Se não especificares um registo, o comando cria um no Registo de Contentores.

O comando pode criar a imagem com ou sem um Dockerfile. Em compilações que não utilizam um Dockerfile, são suportadas as seguintes linguagens:

  • .NET
  • Node.js
  • PHP
  • Python

Pode usar o seguinte código de exemplo para implementar uma aplicação de contentor a partir de código-fonte local:

    az containerapp up \
      --name <CONTAINER_APP_NAME> \
      --source <SOURCE_DIRECTORY>\
      --ingress external 

Este comando executa as seguintes ações:

  1. Cria um grupo de recursos.
  2. Cria um ambiente e um espaço de trabalho do Log Analytics.
  3. Cria um registo no Registo de Contentores.
  4. Constrói a imagem do contentor (usando o Dockerfile, se existir).
  5. Envia a imagem para o registro.
  6. Cria e implanta o aplicativo de contêiner.

Quando o Dockerfile inclui a EXPOSE instrução, o up comando configura a entrada e a porta de destino da aplicação do contentor usando a informação no Dockerfile. Se você configurar a entrada por meio do Dockerfile ou se seu aplicativo não exigir entrada, poderá omitir a --ingress opção.

A saída do comando inclui a URL do aplicativo contêiner.

Se o comando reportar que está à espera do agente Cloud Build mas depois deixar de responder, um erro transitório no GitHub pode ser a origem do problema. Para resolver a situação, execute novamente o comando.

Se houver uma falha, podes executar o comando novamente com a --debug opção de obter mais informações. Se a compilação falhar sem um Dockerfile, você pode tentar adicionar um Dockerfile e executar o comando novamente.

Para usar o comando az containerapp up para redistribuir a sua aplicação de contentor com uma imagem atualizada, inclua as opções --resource-group e --environment. Para redistribuir uma aplicação container a partir do código-fonte local, siga os seguintes passos:

  1. Faça alterações no código-fonte.

  2. Execute o seguinte comando:

    az containerapp up \
      --name <CONTAINER_APP_NAME> \
      --source <SOURCE_DIRECTORY> \
      --resource-group <RESOURCE_GROUP_NAME> \
      --environment <ENVIRONMENT_NAME>
    

Implantar a partir de um repositório GitHub

Quando você usa o az containerapp up comando para implantar a partir de um repositório do GitHub, ele gera um fluxo de trabalho de Ações do GitHub que cria a imagem do contêiner, envia-a por push para um registro e implanta o aplicativo do contêiner. Se não especificares um registo, o comando cria um no Registo de Contentores.

Um Dockerfile é necessário para criar a imagem. Quando o Dockerfile inclui a EXPOSE instrução, o comando configura a entrada e a porta de destino da aplicação do contentor usando a informação no Dockerfile.

Pode usar o seguinte código de exemplo para implementar uma aplicação contentor a partir de um repositório GitHub:

az containerapp up \
  --name <CONTAINER_APP_NAME> \
  --repo <GITHUB_REPOSITORY_URL> \
  --ingress external 

Este comando executa as seguintes ações:

  1. Cria um grupo de recursos.
  2. Cria um ambiente e um espaço de trabalho do Log Analytics.
  3. Cria um registo no Registo de Contentores.
  4. Constrói a imagem do contentor usando o Dockerfile.
  5. Envia a imagem para o registro.
  6. Cria e implanta o aplicativo de contêiner.
  7. Cria um fluxo de trabalho de Ações do GitHub para criar a imagem do contêiner e implantar o aplicativo do contêiner quando alterações futuras forem enviadas por push para o repositório do GitHub.

Se o comando falhar porque um principal de serviço não pode ser criado, pode criar manualmente um principal de serviço no Azure. Depois podes passar informações sobre isso ao comando:

az containerapp up \
  --name <CONTAINER_APP_NAME> \
  --repo <GITHUB_REPOSITORY_URL> \
  --service-principal-client-id "$SERVICE_PRINCIPAL_CLIENT_ID" \
  --service-principal-client-secret "$SERVICE_PRINCIPAL_CLIENT_SECRET" \
  --service-principal-tenant-id "$AZURE_TENANT_ID"
  --ingress external 

Se você configurar a entrada por meio do Dockerfile ou se seu aplicativo não exigir entrada, poderá omitir a --ingress opção.

O up comando cria um fluxo de trabalho de Ações no GitHub. Como resultado, reexecutar o comando tem o efeito indesejado de criar múltiplos fluxos de trabalho. Se quiseres implementar alterações na imagem da tua aplicação, envia as alterações para o repositório do GitHub em vez de voltares a executar o comando. O fluxo de trabalho do GitHub deteta automaticamente as alterações no teu repositório e depois constrói e implementa a tua aplicação. Para alterar o fluxo de trabalho, edite o arquivo de fluxo de trabalho no GitHub.

Configurar as definições da aplicação container

O az containerapp up comando oferece uma forma simplificada de criar e implementar aplicações contentores que usam principalmente definições predefinidas. No entanto, depois de usar o up comando, precisa de executar outros comandos Azure CLI, como os seguintes, se quiser configurar definições mais avançadas:

Se quiseres personalizar outras definições para a tua app container, como recursos ou definições de escala, usa primeiro o up comando para implementar a tua app container. Depois usa o az containerapp update comando para alterar essas definições. O az containerapp up comando não é uma abreviatura do az containerapp update comando.

Próximo passo