Share via


Tutorial: Dimensionar um aplicativo de contêiner

Os Aplicativos de Contêiner do Azure gerenciam o dimensionamento horizontal automático por meio de um conjunto de regras de dimensionamento declarativo. À medida que um aplicativo de contêiner se expande, novas instâncias do aplicativo de contêiner são criadas sob demanda. Essas instâncias são conhecidas como réplicas.

Neste tutorial, você adiciona uma regra de escala HTTP ao seu aplicativo de contêiner e observa como seu aplicativo é dimensionado.

Pré-requisitos

Requisito Instruções
Conta do Azure Se não tiver uma conta do Azure, pode criar uma gratuitamente.

Você precisa da permissão de Colaborador na assinatura do Azure para continuar. Consulte Atribuir funções do Azure usando o portal do Azure para obter detalhes.
Conta GitHub Obtenha um gratuitamente.
CLI do Azure Instale a CLI do Azure.

Configurar

Para entrar no Azure a partir da CLI, execute o seguinte comando 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 upgrade.

az upgrade

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

az extension add --name containerapp --upgrade

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

Criar e implantar o aplicativo de contêiner

Crie e implante seu aplicativo de contêiner com o containerapp up comando. Este comando cria um:

  • Grupo de recursos
  • Ambiente de aplicativos de contêiner
  • Área de trabalho do Log Analytics

Se algum desses recursos já existir, o comando usará os recursos existentes em vez de criar novos.

Por fim, o comando cria e implanta o aplicativo de contêiner usando uma imagem de contêiner público.

az containerapp up \
  --name my-container-app \
  --resource-group my-container-apps \
  --location centralus \
  --environment 'my-container-apps' \
  --image mcr.microsoft.com/k8se/quickstart:latest \
  --target-port 8080 \
  --ingress external \
  --query properties.configuration.ingress.fqdn \

Nota

Verifique se o valor do --image parâmetro está em minúsculas.

Ao definir --ingress como external, você disponibiliza o aplicativo contêiner para solicitações públicas.

O up comando retorna o nome de domínio totalmente qualificado (FQDN) para o aplicativo contêiner. Copie este FQDN para um ficheiro de texto. Você o usará na seção Enviar solicitações . Seu FQDN se parece com o exemplo a seguir:

https://my-container-app.icydune-96848328.centralus.azurecontainerapps.io

Adicionar regra de escala

Adicione uma regra de escala HTTP ao seu aplicativo de contêiner executando o az containerapp update comando.

az containerapp update \
	--name my-container-app \
	--resource-group my-container-apps \
    --scale-rule-name my-http-scale-rule \
    --scale-rule-http-concurrency 1

Este comando adiciona uma regra de escala HTTP ao seu aplicativo contêiner com o nome my-http-scale-rule e uma configuração de simultaneidade de 1. Se seu aplicativo receber mais de uma solicitação HTTP simultânea, o tempo de execução criará réplicas do seu aplicativo para lidar com as solicitações.

O update comando retorna a nova configuração como uma resposta JSON para verificar se sua solicitação foi bem-sucedida.

Iniciar saída de log

Você pode observar os efeitos do dimensionamento do seu aplicativo exibindo os logs gerados pelo tempo de execução dos Aplicativos de Contêiner. Use o comando para começar a az containerapp logs show escutar entradas de log.

az containerapp logs show \
	--name my-container-app \
	--resource-group my-container-apps \
	--type=system \
	--follow=true

O show comando retorna entradas dos logs do sistema para seu aplicativo de contêiner em tempo real. Você pode esperar uma resposta como o exemplo a seguir:

{
	"TimeStamp":"2023-08-01T16:49:03.02752",
	"Log":"Connecting to the container 'my-container-app'..."
}
{
	"TimeStamp":"2023-08-01T16:49:03.04437",
	"Log":"Successfully Connected to container:
	'my-container-app' [Revision: 'my-container-app--9uj51l6',
	Replica: 'my-container-app--9uj51l6-5f96557ffb-5khg9']"
}
{
	"TimeStamp":"2023-08-01T16:47:31.9480811+00:00",
	"Log":"Microsoft.Hosting.Lifetime[14]"
}
{
	"TimeStamp":"2023-08-01T16:47:31.9481264+00:00",
	"Log":"Now listening on: http://[::]:8080"
}
{
	"TimeStamp":"2023-08-01T16:47:31.9490917+00:00",
	"Log":"Microsoft.Hosting.Lifetime[0]"
}
{
	"TimeStamp":"2023-08-01T16:47:31.9491036+00:00",
	"Log":"Application started. Press Ctrl+C to shut down."
}
{
	"TimeStamp":"2023-08-01T16:47:31.949723+00:00",
	"Log":"Microsoft.Hosting.Lifetime[0]"
}
{
	"TimeStamp":"2023-08-01T16:47:31.9497292+00:00",
	"Log":"Hosting environment: Production"
}
{
	"TimeStamp":"2023-08-01T16:47:31.9497325+00:00",
	"Log":"Microsoft.Hosting.Lifetime[0]"
}
{
	"TimeStamp":"2023-08-01T16:47:31.9497367+00:00",
	"Log":"Content root path: /app/"
}

Para obter mais informações, consulte az containerapp logs.

Enviar pedidos

Abra um novo shell bash. Execute o seguinte comando, substituindo <YOUR_CONTAINER_APP_FQDN> pelo nome de domínio totalmente qualificado para seu aplicativo de contêiner que você salvou da seção Criar e implantar o aplicativo de contêiner.

seq 1 50 | xargs -Iname -P10 curl "<YOUR_CONTAINER_APP_FQDN>"

Esses comandos enviam 50 solicitações para seu aplicativo de contêiner em lotes simultâneos de 10 solicitações cada.

Comando ou argumento Description
seq 1 50 Gera uma sequência de números de 1 a 50.
| O operador de pipe envia a sequência para o xargs comando.
xargs É executado curl com o URL especificado
-Iname Atua como um espaço reservado para a saída do seq. Esse argumento impede que o valor de retorno seja enviado para o curl comando.
curl Chama o URL fornecido.
-P10 Instrui xargs a executar até 10 processos de cada vez.

Para obter mais informações, consulte a documentação para:

No primeiro shell, onde você executou o az containerapp logs show comando, a saída agora contém uma ou mais entradas de log como as seguintes.

{
	"TimeStamp":"2023-08-01 18:09:52 +0000 UTC",
	"Type":"Normal",
	"ContainerAppName":"my-container-app",
	"RevisionName":"my-container-app--9uj51l6",
	"ReplicaName":"my-container-app--9uj51l6-5f96557ffb-f795d",
	"Msg":"Replica 'my-container-app--9uj51l6-5f96557ffb-f795d' has been scheduled to run on a node.",
	"Reason":"AssigningReplica",
	"EventSource":"ContainerAppController",
	"Count":0
}

Exibir dimensionamento no portal do Azure (opcional)

  1. Inicie sessão no portal do Azure.
  2. Na barra de pesquisa na parte superior, digite my-container-app.
  3. Nos resultados da pesquisa, em Recursos, selecione my-container-app.
  4. Na barra de navegação à esquerda, expanda Aplicativo e selecione Escala e réplicas.
  5. Na página Dimensionar e Réplicas, selecione Réplicas.
  6. Seu aplicativo de contêiner agora tem mais de uma réplica em execução.

Captura de tela de réplicas de aplicativos de contêiner.

Talvez seja necessário selecionar Atualizar para ver as novas réplicas.

  1. Na barra de navegação à esquerda, expanda Monitoramento e selecione Métricas.

  2. Na página Métricas, defina Métrica como Solicitações.

  3. Selecione Aplicar divisão.

  4. Expanda a lista suspensa Valores e marque Réplica.

  5. Selecione o ícone azul da marca de seleção para concluir a edição da divisão.

  6. O gráfico mostra as solicitações recebidas pelo seu aplicativo de contêiner, divididas por réplica.

    Gráfico de métricas do aplicativo de contêiner, mostrando solicitações divididas por réplica.

  7. Por padrão, a escala do gráfico é definida para durar 24 horas, com uma granularidade de tempo de 15 minutos. Selecione a escala e altere-a para os últimos 30 minutos, com uma granularidade de tempo de um minuto. Selecione o botão Aplicar.

  8. Selecione no gráfico e arraste para realçar o aumento recente de solicitações recebidas pelo seu aplicativo de contêiner.

Captura de tela do gráfico de métricas do aplicativo de contêiner, mostrando solicitações divididas por réplica, com uma escala de 30 minutos e granularidade de tempo de um minuto.

A captura de tela a seguir mostra uma exibição ampliada de como as solicitações recebidas pelo seu aplicativo de contêiner são divididas entre réplicas.

Captura de tela do gráfico de métricas do aplicativo de contêiner, mostrando solicitações divididas por réplica, em uma exibição ampliada.

Clean up resources (Limpar 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 tutorial.

Atenção

O comando a seguir exclui o grupo de recursos especificado e todos os recursos contidos nele. Se existirem recursos fora do escopo deste tutorial no grupo de recursos especificado, eles também serão excluídos.

az group delete --name my-container-apps

Gorjeta

Tem problemas? Informe-nos no GitHub abrindo um problema no repositório de Aplicativos de Contêiner do Azure.

Próximos passos