Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Neste início rápido, você aprende a implantar um aplicativo Web Go em contêiner para Aplicativos de Contêiner do Azure.
O Azure Container Apps permite-lhe executar código de aplicação empacotado em qualquer contentor sem gerir infraestruturas cloud complicadas ou orquestradores de contentores complexos. Também elimina a necessidade de se preocupar com o tempo de execução ou 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.
- Go instalado: Versão 1.18 ou superior
- Área de trabalho do Docker
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 receber erros sobre parâmetros em falta ao executar az containerapp comandos no Azure CLI, certifique-se de que tem a versão mais recente da extensão Azure Container Apps 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, registe os nomes de espaço Microsoft.App, Microsoft.ContainerRegistry e Microsoft.OperationalInsights.
az provider register --namespace Microsoft.App
az provider register --namespace Microsoft.ContainerRegistry
az provider register --namespace Microsoft.OperationalInsights
Nota
Os recursos dos Aplicativos de Contêiner do Azure migrados do namespace Microsoft.Web para o namespace Microsoft.App. Para mais informações, consulte Migração de espaço de nomes de Microsoft.Web para Microsoft.App em março de 2022.
Transferir a aplicação de exemplo
Para seguir este tutorial, você precisa de um aplicativo de exemplo para contentorizar. O repositório msdocs-go-webapp-quickstart do GitHub fornece uma aplicação web de exemplo Go. 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. Use-o 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:
Define variáveis de ambiente para os recursos que vais criar. Substitua o texto provisório entre parênteses pelos valores apropriados. Seu nome do Registro de Contêiner do Azure precisa ser globalmente exclusivo.
RESOURCE_GROUP_NAME="<resourceGroupName>" # Name of the Azure resource group to create LOCATION="<location>" # Azure region (For example, "eastus", "westus2") ACR_NAME="<azureContainerRegistryName>" # Globally unique name for Azure Container RegistryOs comandos de exemplo para definir as variáveis de ambiente são para o shell Bash. Se estiveres a usar um shell diferente, ajusta os comandos de forma correspondente.
Crie um grupo de recursos do Azure com o comando az group create.
az group create \ --name $RESOURCE_GROUP_NAME \ --location $LOCATIONCrie um Registro de Contêiner do Azure com o comando az acr create .
az acr create \ --resource-group $RESOURCE_GROUP_NAME \ --name $ACR_NAME \ --sku basicEntre na instância de contêiner do Azure com o comando az acr login .
az acr login --name $ACR_NAMENota
Se receber um erro semelhante ao seguinte ao executar o
az acr logincomando, certifique-se de que o daemon Docker está a correr no seu sistema:You may want to use 'az acr login -n $ACR_NAME --expose-token' to get an access token, which doesn't require Docker to be installed. An error occurred: DOCKER_COMMAND_ERROR
Crie e envie por push a imagem do Docker
Depois de criares um Azure Container Registry, constrói e envia a imagem Docker da aplicação web Go de exemplo.
Execute os seguintes comandos para construir e enviar a imagem para o registo.
Define a variável de ambiente para a imagem Docker que vais criar. Substitua o texto provisório entre parênteses pelos valores apropriados.
IMAGE_NAME="go-webapp" # Name for the Docker imageOs comandos de exemplo para definir as variáveis de ambiente são para o shell Bash. Se estiver a usar um shell diferente, ajuste os comandos em conformidade.
Obtenha a informação do servidor de início de sessão com o comando az acr show e guarde-a numa variável de ambiente.
LOGIN_SERVER=$(az acr show \ --name $ACR_NAME \ --resource-group $RESOURCE_GROUP_NAME \ --query loginServer \ --output tsv) echo "Login server: $LOGIN_SERVER"Crie a imagem do Docker localmente.
docker build -t $LOGIN_SERVER/$IMAGE_NAME:latest .Envie a imagem do Docker para o Registro de Contêiner do Azure.
docker push $LOGIN_SERVER/$IMAGE_NAME:latestVerifique 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 $ACR_NAME \ --output table
Agora que tem uma imagem disponível no Azure Container Registry, está pronto para implementar a aplicação Azure Container e o seu ambiente.
Criar um ambiente de Aplicativos de Contêiner do Azure
O Azure Container Apps não tem a complexidade de um orquestrador de containers, mas ainda precisa de alguma forma de estabelecer limites seguros. Os ambientes Azure Container Apps oferecem esta capacidade. 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.
Define variáveis de ambiente para os recursos que vais criar. Substitua o texto provisório entre parênteses pelos valores apropriados.
CONTAINER_APP_ENV="mygoappenv" # Name for the Container Apps environment CONTAINER_APP_NAME="mygoapp" # Name for your container appOs comandos de exemplo para definir as variáveis de ambiente são para o shell Bash. Se estiveres a usar um shell diferente, ajusta os comandos consequentemente.
Execute o comando az containerapp env create para criar um ambiente de Aplicativos de Contêiner do Azure.
az containerapp env create \ --name $CONTAINER_APP_ENV \ --resource-group $RESOURCE_GROUP_NAME \ --location $LOCATION
Implantar em aplicativos de contêiner do Azure
Neste ponto, já completou os seguintes passos:
- Criei um registo de Azure Container.
- Construí e enviei uma imagem do Docker para o repositório de registo.
- Configurar um ambiente Azure Container Apps.
O último passo é implementar a aplicação.
Execute o comando az containerapp create para implantar o aplicativo Web Go nos Aplicativos de Contêiner do Azure.
az containerapp create \
--name $CONTAINER_APP_NAME \
--resource-group $RESOURCE_GROUP_NAME \
--environment $CONTAINER_APP_ENV \
--image "$LOGIN_SERVER/$IMAGE_NAME:latest" \
--registry-server "$LOGIN_SERVER" \
--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. A aplicação container usa esta identidade em vez do nome de utilizador e palavra-passe, que é menos segura, para autenticar junto do registo do contentor. O comando também cria automaticamente uma AcrPull função atribuição para a identidade, autorizando-a 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 $CONTAINER_APP_NAME \ --resource-group $RESOURCE_GROUP_NAME \ --query properties.configuration.ingress.fqdn \ --output tsv) echo "App URL: https://$APP_FQDN"Execute o comando curl contra o FQDN e confirme que a saída reflete o HTML do site. Também pode abrir o URL num navegador web para interagir com a aplicação web.
curl "https://$APP_FQDN"'O comando devolve o HTML da página inicial da aplicação web, semelhante ao seguinte:
<!DOCTYPE html> <html> <head> <title>Hello Azure - Go Quickstart</title> <link rel="stylesheet" href="/assets/main.css"> <link rel="icon" type="image/x-icon" href="/assets/favicon.ico"> </head> <header> <h1>Welcome to Azure</h1> </header> <section> <img src="/assets/images/azure-icon.svg"> <form method="post"> <label for="form-label">Could you please tell me your name?</label><br> <input type="text" id="name" name="name" style="max-width: 256px;"><br> <button type="submit">Say Hello</button> </form> </section> </html>
Limpeza de recursos
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 $RESOURCE_GROUP_NAME \
--no-wait