Azure Container Apps
Implante uma aplicação de microsserviços no Azure Container Apps com integração de sidecar do Dapr, configure a entrada e use o escalonamento automático baseado em KEDA, acionado pela profundidade da fila do Service Bus.
Azure Container Apps é uma aula grátis de Cloud & IT Cert Prep no CoddyKit. Esta é a aula 3 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de Cloud & IT Cert Prep, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Cloud & IT Cert Prep inclui 4 aulas no total.
O que é o Azure Container Apps?
O Azure Container Apps (ACA) é um serviço de hospedagem de contêineres sem servidor totalmente gerenciado, criado sobre o Kubernetes e o KEDA (dimensionamento automático orientado por eventos do Kubernetes). Diferentemente do AKS, você não gerencia diretamente o plano de controle, os pools de nós ou os manifestos do Kubernetes. Em vez disso, você implanta contêineres usando uma CLI simples ou uma definição YAML, e o Azure cuida de toda a orquestração. O ACA é ideal para microsserviços, backends de API, trabalhadores orientados por eventos e tarefas de processamento em segundo plano que precisam ser dimensionados dinamicamente, inclusive com dimensionamento para zero.
Ambientes do Container Apps
Um ambiente do Container Apps é o limite isolado dentro do qual um ou mais aplicativos Container Apps são executados. Todos os aplicativos em um ambiente compartilham a mesma rede virtual e o mesmo espaço de trabalho do Log Analytics. Os ambientes têm como escopo uma região e um grupo de recursos. Você pode implantar vários ambientes para isolar equipes ou estágios (produção e preparação). Opcionalmente, um ambiente pode ser injetado em uma VNet na sua própria rede virtual, permitindo a comunicação privada entre aplicativos Container Apps e outros serviços do Azure sem passar pela internet pública.
# Create a Container Apps environment
az containerapp env create \
--name myACAEnvironment \
--resource-group myRG \
--location eastusImplantando um aplicativo Container Apps
Para implantar um aplicativo Container Apps, você especifica a imagem do contêiner (do Azure Container Registry ou de qualquer registro público), o número de réplicas e as variáveis de ambiente. O aplicativo fica acessível publicamente por meio de uma URL HTTPS gerada automaticamente se você habilitar a entrada externa. A configuração de entrada inclui a porta de destino, a divisão de tráfego para implantações azul-verde e se deve permitir somente HTTP ou HTTPS. O ACA obtém a imagem no momento da implantação; o ambiente precisa ter permissões de leitura no registro.
# Deploy a container app from Azure Container Registry
az containerapp create \
--name myapi \
--resource-group myRG \
--environment myACAEnvironment \
--image myacr.azurecr.io/myapi:latest \
--target-port 8080 \
--ingress external \
--registry-server myacr.azurecr.io \
--min-replicas 1 \
--max-replicas 10Dimensionamento automático baseado em KEDA
O Container Apps é dimensionado usando escaladores do KEDA que são acionados com base em métricas externas. Entre os escaladores integrados do KEDA estão: tráfego HTTP (solicitações simultâneas por réplica), profundidade da fila do Azure Service Bus (mensagens aguardando), Azure Storage Queue, Cron (baseado em horário) e CPU/Memória. Quando a métrica do escalador chega a zero e minReplicas está definido como 0, o Container Apps faz o dimensionamento para zero — sem custo de computação até que novas solicitações cheguem. O dimensionamento para zero é excelente para trabalhadores orientados por eventos com cargas de trabalho esporádicas.
# Scale based on Service Bus queue depth
az containerapp update \
--name myworker \
--resource-group myRG \
--scale-rule-name sbqueue-scaler \
--scale-rule-type azure-servicebus \
--scale-rule-metadata 'queueName=orders' 'namespace=myservicebusns' 'messageCount=5' \
--scale-rule-auth 'connection=servicebus-connection-secret:connection' \
--min-replicas 0 \
--max-replicas 20Integração com Dapr
O Dapr (Runtime de Aplicativos Distribuídos) é um runtime portátil e orientado por eventos que simplifica a criação de microsserviços. O Container Apps oferece integração nativa com o Dapr — você a habilita por aplicativo com um único sinalizador. O Dapr fornece blocos de construção para: invocação de serviços (com nova tentativa e mTLS), mensagens de publicação/assinatura (abstraindo Service Bus e Event Hubs), gerenciamento de estado (abstraindo Redis e Cosmos DB) e vinculações de saída. Com o Dapr, os microsserviços se comunicam por meio do sidecar do Dapr sem conhecer os detalhes da infraestrutura subjacente.
# Enable Dapr on a Container App
az containerapp update \
--name myapi \
--resource-group myRG \
--enable-dapr \
--dapr-app-id myapi \
--dapr-app-port 8080 \
--dapr-app-protocol httpRevisões e divisão de tráfego
Cada implantação em um aplicativo Container Apps cria uma nova revisão. No modo de várias revisões, você pode dividir o tráfego entre revisões para implantações azul-verde ou canário. Por exemplo, envie 10% do tráfego para uma nova revisão e 90% para a revisão estável atual. Monitore as taxas de erro e a latência da nova revisão antes de aumentar o peso do tráfego para 100%. Revisões antigas podem ser desativadas, mas são mantidas no histórico, permitindo uma reversão instantânea ao transferir o peso do tráfego de volta.
# Set traffic split between two revisions
az containerapp ingress traffic set \
--name myapi \
--resource-group myRG \
--revision-weight myapi--abc123=90 myapi--def456=10Segredos e variáveis de ambiente
O Container Apps oferece duas formas de injetar configurações: variáveis de ambiente (para configurações não confidenciais, como sinalizadores de recursos ou URLs de API) e segredos (para valores confidenciais, como cadeias de conexão). Os segredos são armazenados no nível do aplicativo Container Apps e referenciados por variáveis de ambiente ou componentes do Dapr. Para a configuração mais segura, faça referência a segredos do Azure Key Vault usando uma identidade gerenciada, para que o valor do segredo seja obtido em tempo de execução e nunca seja armazenado no plano de configuração do aplicativo Container Apps.
# Add a secret to a Container App
az containerapp secret set \
--name myapi \
--resource-group myRG \
--secrets 'db-password=supersecretpassword'
# Reference the secret as an environment variable
az containerapp update \
--name myapi \
--resource-group myRG \
--set-env-vars 'DB_PASSWORD=secretref:db-password'Tarefas: cargas de trabalho executadas até a conclusão
Container Apps Jobs estende a plataforma para oferecer suporte a cargas de trabalho executadas até a conclusão — contêineres que são iniciados, executam uma tarefa e são encerrados. Os Jobs oferecem três tipos de acionamento: Manual (acionado por meio da API ou da CLI), Agendado (expressão cron) e Orientado por eventos (o escalonador KEDA aciona cada execução). Os Jobs são cobrados apenas pelo tempo real de execução e são ideais para processamento em lote, geração de relatórios, migrações de banco de dados e pipelines de inferência de ML executados periodicamente ou em resposta a eventos.
# Create a scheduled Container Apps job (run every hour)
az containerapp job create \
--name my-batch-job \
--resource-group myRG \
--environment myACAEnvironment \
--trigger-type Schedule \
--cron-expression '0 * * * *' \
--image myacr.azurecr.io/batchjob:latest \
--cpu 0.5 --memory 1GiObservabilidade: logs e métricas
Container Apps envia logs do sistema (eventos da plataforma, como criação de revisão e escalabilidade) e logs do console (a saída stdout/stderr da sua aplicação) para o espaço de trabalho do Log Analytics anexado ao ambiente. Consulte os logs com KQL: ContainerAppConsoleLogs_CL | where ContainerAppName_s == 'myapi' | project TimeGenerated, Log_s. As métricas do Azure Monitor integradas incluem a contagem de réplicas, a contagem de solicitações, a latência das solicitações e a utilização de CPU/memória por réplica — tudo disponível no portal do Azure sem nenhuma configuração adicional.
# Stream live logs from a Container App
az containerapp logs show \
--name myapi \
--resource-group myRG \
--followACA vs. AKS vs. App Service
Escolha a plataforma de contêineres do Azure adequada: Container Apps é ideal para microsserviços, trabalhadores orientados por eventos e APIs quando você deseja os benefícios do Kubernetes sem gerenciar o cluster — especialmente quando a redução a zero é valiosa. AKS é ideal quando você precisa de controle total do Kubernetes, operadores personalizados ou configurações específicas de nós (GPU, memória alta). App Service é ideal para aplicações web tradicionais e APIs quando a equipe de desenvolvimento prefere um modelo PaaS simples, sem a sobrecarga de gerenciamento de contêineres. Os três oferecem suporte a contêineres; a diferença está no equilíbrio entre complexidade de gerenciamento e controle.
Rede: entrada interna e externa
Container Apps oferece suporte a dois modos de entrada: Externa (acessível publicamente por meio de um ponto de extremidade HTTPS com balanceamento de carga e TLS automático) e Interna (acessível somente de dentro do mesmo ambiente do Container Apps ou a partir de recursos emparelhados à VNet). A entrada interna é usada para serviços de backend que nunca devem ser expostos à internet. Os Apps podem chamar uns aos outros usando o nome DNS interno gerado automaticamente http://myapi dentro do mesmo ambiente, permitindo uma comunicação simples entre serviços sem implantar um gateway de API.
Verificação rápida
Teste sua compreensão dos conceitos do Microsoft Azure Fundamentals (AZ-900) abordados nesta lição.
Recapitulação da lição
Nesta lição, você aprendeu que Azure Container Apps oferece hospedagem de contêineres sem servidor, baseada em Kubernetes e KEDA, sem gerenciamento de cluster; os escalonadores KEDA permitem a redução a zero com base na profundidade da fila, no tráfego HTTP ou em agendamentos cron; e a integração com Dapr simplifica a comunicação entre microsserviços e o gerenciamento de estado. A seguir, conectaremos tudo em um fluxo de trabalho completo de desenvolvimento de ponta a ponta.
Perguntas Frequentes
A aula “Azure Container Apps” é grátis?
Sim — o texto completo de “Azure Container Apps” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de Cloud & IT Cert Prep, atualize para CoddyKit PRO. O curso de Cloud & IT Cert Prep inclui 4 aulas no total.
O que vou aprender em “Azure Container Apps”?
Implante uma aplicação de microsserviços no Azure Container Apps com integração de sidecar do Dapr, configure a entrada e use o escalonamento automático baseado em KEDA, acionado pela profundidade da… Você pratica Cloud & IT Cert Prep com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.
Preciso ter experiência prévia para começar Cloud & IT Cert Prep?
Nenhuma experiência prévia é necessária. Cloud & IT Cert Prep no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 3 de 4.
Quanto tempo leva a aula “Azure Container Apps”?
A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.
Posso escrever e executar código nesta aula de Cloud & IT Cert Prep?
Sim. Cada aula de Cloud & IT Cert Prep inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.
Todas as aulas deste curso
- Identidade gerenciada para autenticação sem senha
- Azure Service Bus para mensagens desacopladas
- Azure Container Apps
- Fluxo de trabalho do desenvolvedor de ponta a ponta