Partilhar via


Implantar um aplicativo Web Go em Aplicativos de Contêiner do Azure

Neste início rápido, você aprende a implantar um aplicativo Web Go em contêiner para Aplicativos de Contêiner do Azure.

As Aplicações de Contentor do Azure permitem-lhe executar código de aplicação empacotado em qualquer contentor sem ter de gerir infraestruturas de nuvem complicadas ou orquestradores de contentores complexos e sem se preocupar com o tempo de execução ou o modelo de programação. Os usos comuns dos Aplicativos de Contêiner do Azure incluem: implantação de pontos de extremidade de API, hospedagem de aplicativos de processamento em segundo plano, manipulação de processamento controlado por eventos e execução de microsserviços.

Siga este tutorial para percorrer a criação de uma imagem do Docker, a implantação dessa imagem no Registro de Contêiner do Azure e a implantação de um aplicativo Web Go nos Aplicativos de Contêiner do Azure.

Pré-requisitos

  • Subscrição do Azure: se não tem uma subscrição do Azure, crie uma conta gratuita antes de começar.

Configurar

Para entrar no Azure a partir da CLI, execute o comando az login e siga as instruções para concluir o processo de autenticação.

az login

Para garantir que você esteja executando a versão mais recente da CLI, execute o comando az upgrade .

az upgrade

Em seguida, instale ou atualize a extensão Aplicativos de Contêiner do Azure para a CLI.

Se você receber erros sobre parâmetros ausentes ao executar az containerapp comandos na CLI do Azure, certifique-se de ter a versão mais recente da extensão Aplicativos de Contêiner do Azure instalada.

az extension add --name containerapp --upgrade

Nota

A partir de maio de 2024, as extensões da CLI do Azure não habilitam mais recursos de visualização por padrão. Para acessar os recursos de visualização do Container Apps, instale a extensão Container Apps com --allow-preview trueo .

az extension add --name containerapp --upgrade --allow-preview true

Agora que a extensão ou módulo atual está instalado, registre os Microsoft.App namespaces e Microsoft.OperationalInsights .

Nota

Os recursos dos Aplicativos de Contêiner do Azure migraram do Microsoft.Web namespace para o Microsoft.App namespace. Consulte Migração de namespace de Microsoft.Web para Microsoft.App em março de 2022 para obter mais detalhes.

az provider register --namespace Microsoft.App
az provider register --namespace Microsoft.OperationalInsights

Transferir a aplicação de exemplo

Para seguir este tutorial, você precisa de um aplicativo de exemplo para contentorizar. Um exemplo de aplicativo Web Go é fornecido no repositório GitHub msdocs-go-webapp-quickstart . Transfira ou clone a aplicação de exemplo para a estação de trabalho local.

git clone https://github.com/Azure-Samples/msdocs-go-webapp-quickstart.git

cd msdocs-go-webapp-quickstart

Criar um Azure Container Registry

O Registro de Contêiner do Azure permite que você crie, armazene e gerencie imagens de contêiner. Você o usará para armazenar a imagem do Docker que contém o aplicativo Web Go de exemplo fornecido no repositório de exemplo mencionado anteriormente.

Execute os seguintes comandos para criar um Registro de Contêiner do Azure:

  1. Crie um grupo de recursos do Azure com o comando az group create.

    
    
    az group create \
        --name <resourceGroupName> \
        --location eastus
    
  2. Crie um Registro de Contêiner do Azure com o comando az acr create .

    az acr create \
        --resource-group <resourceGroupName> \
        --name <azureContainerRegistryName> \
        --sku basic
    
  3. Entre na instância de contêiner do Azure com o comando az acr login .

    az acr login --name <azureContainerRegistryName>  
    

Substitua <resourceGroupName> e <azureContainerRegistryName> com os valores apropriados. Seu nome do Registro de Contêiner do Azure precisa ser globalmente exclusivo.

Nota

Se você receber um erro semelhante ao seguinte ao executar o az acr login comando, verifique se o docker deamon está em execução no seu sistema:

You may want to use 'az acr login -n <azureContainerRegistryName> --expose-token' to get an access token, which does not require Docker to be installed.
2024-09-12 17:25:25.127779 An error occurred: DOCKER_COMMAND_ERROR

Crie e envie por push a imagem do Docker

Depois de criar um Registro de Contêiner do Azure, crie e envie por push a imagem do Docker do aplicativo Web Go de exemplo.

Execute os seguintes comandos build e push a imagem para o registro:

  1. Obtenha as informações do servidor de entrada com o comando az acr show .

    az acr show \
        --name <azureContainerRegistryName> \
        --resource-group <resourceGroupName> \
        --query loginServer \
        --output tsv  
    
  2. Crie a imagem do Docker localmente.

    docker build -t <loginServer>/<imageName>:latest .
    
  3. Envie a imagem do Docker para o Registro de Contêiner do Azure.

    docker push <loginServer>/<imageName>:latest
    
  4. Verifique se a imagem foi enviada com êxito para o Registro de Contêiner do Azure com o comando az acr repository list .

    az acr repository list \
        --name <azureContainerRegistryName> \
        --output table
    

Substitua loginServer, imageNamee azureContainerRegistryName com os valores apropriados. O nome da imagem é a imagem do Docker que é enviada por push para o Registro de Contêiner do Azure e posteriormente usada para implantar em Aplicativos de Contêiner do Azure.

Agora que você tem uma imagem disponível no Registro de Contêiner do Azure, está pronto para implantar o Aplicativo de Contêiner do Azure e seu ambiente.

Criar um ambiente de Aplicativos de Contêiner do Azure

Os Aplicativos de Contêiner do Azure não têm a complexidade de um orquestrador de contêineres, mas ainda precisam de alguma maneira de estabelecer limites seguros, que é onde os ambientes dos Aplicativos de Contêiner do Azure entram. Os aplicativos de contêiner implantados no mesmo ambiente compartilham a mesma rede virtual e gravam logs no mesmo espaço de trabalho do Log Analytics. Antes de implantar um Aplicativo de Contêiner do Azure, você precisa de um ambiente para implantar.

  • Execute o comando az containerapp env create para criar um ambiente de Aplicativos de Contêiner do Azure.

    az containerapp env create \
        --name <containerAppEnvName> \
        --resource-group <resourceGroupName> \
        --location "East US"
    

Implantar em aplicativos de contêiner do Azure

Neste ponto, você criou um Registro de Contêiner do Azure, criou e enviou uma imagem do Docker para ele e criou um ambiente de Aplicativos de Contêiner do Azure. Tudo o que resta é implantar o aplicativo.

Execute o comando az containerapp create para implantar o aplicativo Web Go nos Aplicativos de Contêiner do Azure.

az containerapp create \
    --name <containerAppName> \
    --resource-group <resourceGroupName> \
    --environment <containerAppEnvName> \
    --image "<loginServer>/<imageName>:latest" \
    --registry-server "<loginServer>" \
    --registry-identity system \
    --target-port 8080 \
    --ingress external

O --registry-identity system parâmetro configura a identidade gerenciada atribuída ao sistema no aplicativo contêiner. O aplicativo de contêiner usa essa identidade em vez de nome de usuário/senha, que é menos seguro, para autenticar com o registro de contêiner. O comando também cria automaticamente uma AcrPull atribuição de função para a identidade, para que ele seja autorizado a extrair imagens do registro. Para usar identidades gerenciadas para autenticação e autorização, o Registro deve ser um Registro de Contêiner do Azure.

Verificar o URL do aplicativo Web

Execute o comando az containerapp show para obter o FQDN (Fully Qualified Domain Name) da entrada do aplicativo Web.

APP_FQDN=$(az containerapp show \
    --name <containerAppName> \
    --resource-group <resourceGroupName> \
    --query properties.configuration.ingress.fqdn \
    --output tsv)

Em seguida, execute o comando curl no FQDN e confirme se a saída reflete o HTML do site.

curl "https://$APP_FQDN"

Recursos de limpeza

Quando terminar o aplicativo de exemplo, você poderá remover todos os recursos do aplicativo do Azure. Isso evita cobranças contínuas e mantém sua assinatura do Azure organizada. A remoção do grupo de recursos também remove todos os recursos do grupo de recursos e é a maneira mais rápida de remover todos os recursos do Azure para seu aplicativo.

Execute o comando az group delete para excluir o grupo de recursos e seus recursos.

az group delete \
    --name <resourceGroupName> \
    --no-wait

Próximos passos