Compartilhar via


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

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

Os Aplicativos de Contêiner do Azure permitem que você execute o código do aplicativo empacotado em qualquer contêiner sem precisar gerenciar uma infraestrutura de nuvem complicada ou orquestradores de contêiner 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: implantar pontos de extremidade de API, hospedar aplicativos de processamento em segundo plano, lidar com processamento controlado por eventos e executar microsserviços.

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

Pré-requisitos

  • Assinatura do Azure: caso você não tenha uma assinatura do Azure, crie uma conta gratuita antes de começar.

Instalação

Para entrar no Azure usando a CLIl, execute o comando az login e siga os prompts 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 dos Aplicativos de Contêiner do Azure para a CLI.

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

az extension add --name containerapp --upgrade

Observação

A partir de maio de 2024, as extensões da CLI do Azure já não permitem funcionalidades de versão prévia do recurso por padrão. Para acessar as versões prévias dos recursos dos Aplicativos de Contêiner, instale a extensão Aplicativos de Contêiner com --allow-preview true.

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

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

Observação

Os recursos dos Aplicativos de Contêiner do Azure migraram do namespace Microsoft.Web para o namespace Microsoft.App. Consulte a 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

Baixar o aplicativo de exemplo

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

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

cd msdocs-go-webapp-quickstart

Criar um Registro de Contêiner do Azure

O Registro de contêiner do Azure permite que você crie, armazene e gerencie artefatos e imagens de contêiner. Você o usará para armazenar a imagem do Docker que contém o aplicativo Web em 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> pelos valores apropriados. Seu nome do Registro de Contêiner do Azure precisa ser globalmente exclusivo.

Observação

Se você receber um erro semelhante ao seguinte ao executar o comando az acr login, verifique se o docker deamon está em execução no 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

Compilar e enviar 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 em Go de exemplo.

Execute os seguintes comandos para criar e enviar 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. Efetuar push da imagem do Docker para o Registro de Contêiner do Azure.

    docker push <loginServer>/<imageName>:latest
    
  4. Verifique se a imagem foi enviada por push 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, imageName e azureContainerRegistryName pelos 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 nos 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 entram os ambientes dos Aplicativos de Contêiner do Azure. Os aplicativos de contêineres implantados no mesmo ambiente compartilham a mesma rede virtual e gravam registros 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 nos 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. Agora tudo o que resta é implantar o aplicativo.

Execute o comando az containerapp create para implantar o aplicativo Web em 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 parâmetro --registry-identity system configura o sistema atribuído identidade gerenciada no aplicativo do contêiner. O aplicativo de contêiner usa essa identidade em vez de nome de usuário e senha, que é menos seguro, para autenticar com o registro de contêiner. O comando também cria automaticamente uma atribuição de AcrPull função para a identidade, para que ela seja autorizada 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 a URL do aplicativo Web

Execute o comando az containerapp show para obter o FQDN (Nome de Domínio Totalmente Qualificado) 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

Ao 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. Remover o 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óximas etapas