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.
Funções do Azure no Azure Container Apps oferece um ambiente de alojamento serverless totalmente gerido que reúne as capacidades orientadas por eventos do Funções do Azure com as robustas funcionalidades das Container Apps. Essa integração inclui recursos avançados, como orquestração baseada em Kubernetes, dimensionamento automático integrado alimentado por KEDA (Kubernetes-based Event Driven Autoscaling), integração Dapr (Distributed Application Runtime), suporte à carga de trabalho GPU, suporte a sidecar, conectividade de rede virtual (VNet) e gerenciamento de revisão.
Essa abordagem é útil quando você deseja que suas funções sejam executadas ao lado de outros aplicativos em contêineres, como microsserviços, APIs ou sites. Além disso, a containerização dos seus aplicativos de função pode ajudar quando você precisar de dependências personalizadas ou quiser tirar proveito da escalabilidade até zero para poupar custos. Se você estiver executando tarefas pesadas de computação, como inferência de IA, o Container Apps também suporta hospedagem baseada em GPU por meio de oferta de GPU sem servidor e perfis de carga de trabalho dedicados.
Como uma funcionalidade integrada nos Azure Container Apps, pode implementar imagens de Funções do Azure diretamente nos Azure Container Apps usando o fornecedor de recursos Microsoft.App, definindo kind=functionapp ao chamar az containerapp create. As aplicações criadas desta forma têm acesso a todas as funcionalidades do Azure Container Apps. Se estiveres a implementar através do portal do Azure, podes ativar a opção Otimizar para Funções durante a configuração. Para mais informações, consulte a secção de implementação e configuração para mais detalhes.
Principais benefícios
O modelo de alojamento Container Apps baseia-se na flexibilidade das cargas de trabalho containerizadas e na natureza orientada por eventos do Funções do Azure. Oferece as seguintes vantagens principais:
- Executar Funções do Azure como contentores com dependências personalizadas e stacks de linguagens.
- Reduza para zero e amplie para 1000 instâncias usando o KEDA.
- Rede segura com integração VNet completa.
- Recursos avançados do aplicativo de contêiner, como várias revisões, divisão de tráfego, integração Dapr e componentes de observabilidade.
- Suporte a GPU dedicada e sem servidor para cargas de trabalho de computação intensiva.
- Ambiente de Aplicativos de Contêiner Unificados para executar Funções ao lado de microsserviços, APIs e trabalhos em segundo plano.
A tabela a seguir ajuda você a comparar os recursos do Functions on Container Apps com o plano de consumo do Flex.
| Característica | Container Apps | Plano de Consumo Flex |
|---|---|---|
| Reduzir para zero | ✅ Sim (via KEDA) | ✅ Sim |
| Expansão máxima | 1.000 (padrão 10, configurável) | 1,000 |
| Instâncias permanentemente ativas |
✅ Sim (via minReplicas) |
✅ Sim (através de instâncias sempre prontas) |
| Integração da VNet | ✅ Sim | ✅ Sim |
| Suporte de contêiner personalizado | ✅ Sim (traga a sua própria imagem) | ❌ Limitado (não traga o seu próprio contentor) |
| Suporte de GPU | ✅ Sim (através do perfil de carga de trabalho dedicado GPU sem servidor) | ❌ Não |
| Funcionalidades incorporadas | Suporte ao recurso Container Apps. Por exemplo, KEDA, Dapr, multi-revisões, mTLS, sidecars, controle de entrada e muito mais | Funcionalidades apenas para funções |
| Modelo de faturação | Preços de aplicativos de contêiner: Plano de consumo (vCPU, memória, solicitações) & Plano dedicado (baseado em perfil de carga de trabalho) | Tempo de execução + instâncias sempre prontas |
Para obter uma comparação completa das funções em aplicativos de contêiner com o plano Flex Consumption e todos os outros tipos de plano e hospedagem, consulte Escala de funções e opções de hospedagem.
Cenários
Funções do Azure em Aplicações de Contentores são ideais para uma vasta gama de casos de uso, especialmente quando precisa de execução orientada a eventos, flexibilidade de contentores ou integração segura com outros serviços:
- Line-of-business APIs: Empacotar bibliotecas, pacotes e APIs personalizadas com Funções do Azure para aplicações de linha de negócios.
- Migração e modernização: Migração de aplicativos legados e/ou monólitos locais para microsserviços nativos da nuvem em contêineres.
- Processamento orientado por eventos: Gerir eventos de Event Grid, Service Bus, Event Hubs e outras fontes de eventos com a facilidade proporcionada pelo modelo de programação Functions.
- Cargas de trabalho AI & GPU: Processamento de carga de trabalho sem servidor de vídeos, imagens, transcrições ou quaisquer outras tarefas intensivas de processamento que exigiam recursos de computação da GPU. Para mais informações, consulte Usar GPUs serverless em Azure Container Apps.
- Microserviços: Integrar Funções do Azure com outros serviços alojados em Aplicações Container.
- Contentores personalizados: Funções de pacote com tempos de execução personalizados ou sidecars.
- Aplicações privadas: Proteja funções apenas internas usando VNet e entrada interna.
- .NET Aspire: A integração do .NET Aspire com a Funções do Azure permite-lhe desenvolver, depurar e orquestrar um projeto Funções do Azure .NET como parte do anfitrião da aplicação .NET Aspire. Leia mais sobre Funções do Azure com .NET Aspire
- Funções Gerais: Executar quaisquer cenários padrão suportados Funções do Azure (por exemplo, temporizadores, processamento de ficheiros, triggers de base de dados).
Implantação e configuração
Para implementar Funções do Azure em Azure Container Apps, empacota a sua aplicação Functions como uma imagem de contentor personalizada e implementa-a como qualquer outra aplicação de container, com uma diferença de chave. Tens de definir a propriedade kind=functionapp ao usar os templates CLI do Azure ou ARM/Bicep. Para obter etapas e exemplos detalhados, consulte a documentação oficial de introdução.
az containerapp create \
--resource-group $RESOURCE_GROUP_NAME \
--name $CONTAINER_APP_NAME \
--environment $ENVIRONMENT_NAME \
--image mcr.microsoft.com/k8se/quickstart-functions:latest \
--ingress external \
--target-port 80 \
--kind functionapp \
--query properties.outputs.fqdn
Este comando devolve o URL da aplicação de Funções. Copie este URL e cole-o num navegador da Web.
No portal Azure, selecione a opção Otimizar para Funções do Azure durante a criação da aplicação container para simplificar a configuração.
Todos os métodos de implantação padrão são suportados, incluindo:
- CLI do Azure
- Portal do Azure
- Modelos ARM / Bicep
- Pipelines de CI/CD (por exemplo, GitHub Actions, Azure Pipelines)
Para obter etapas e exemplos detalhados, consulte a documentação oficial de introdução.
Preços e faturação
Funções do Azure em Azure Container Apps seguem o mesmo modelo de preços que as Azure Container Apps. O faturamento é baseado no tipo de plano selecionado para seu ambiente, que pode ser Consumo ou Dedicado.
- Plano de consumo: Esta opção de computação serverless fatura-lhe apenas pelos recursos que as suas aplicações usam enquanto estão a correr.
- Plano dedicado: esta opção fornece recursos de computação personalizados, cobrando pelas instâncias alocadas a cada perfil de carga de trabalho.
Sua escolha de plano determina como os cálculos de faturamento são feitos. Diferentes aplicações dentro de um ambiente podem usar planos diferentes.
Pontos principais a observar:
- Sem custos adicionais por utilizar o modelo de programação Funções do Azure dentro das Aplicações Container.
- Durable Functions e outros padrões avançados são suportados e faturados sob o mesmo modelo de preços do Container Apps. Para mecânicas detalhadas de faturação e exemplos, consulte a documentação Faturação na Azure Container Apps.
Dimensionamento baseado em eventos
Funções do Azure nos Container Apps suportam todos os principais runtimes de línguas disponíveis em Funções do Azure, incluindo C#, JavaScript / TypeScript (Node.js), Python, Java, PowerShell e containers personalizados.
Funções do Azure a correr em Azure Container Apps configuram automaticamente regras de escala com base na fonte do evento, eliminando a necessidade de definições manuais de regras de escala KEDA. É por isso que o botão "Adicionar regras de escala" no portal do Azure está desativado para Funções nas Aplicações de Container. No entanto, você ainda pode definir contagens mínimas e máximas de réplicas para estabelecer limites de dimensionamento e manter o controle sobre a alocação de recursos.
A plataforma traduz automaticamente os parâmetros de disparo das suas Funções (a partir dos host.json atributos de configuração ou de disparo) para parâmetros apropriados do escalador KEDA. Para uma referência detalhada de como as configurações de ativação de funções mapeiam para parâmetros de escalonamento KEDA, veja Funções do Azure KEDA scaling mappings.
Todos os gatilhos e associações de Funções do Azure padrão são suportados em Aplicações de Contentores com as seguintes exceções:
- Armazenamento de Blobs Trigger auto scaling: Só funciona quando se usa o Event Grid como fonte. Saiba mais sobre Triggering Funções do Azure em contentores de blob usando uma subscrição de evento
- A escalabilidade automática do Durable Functions: Apenas suporta fornecedores de armazenamento MSSQL (Microsoft SQL Server) e DTS (Durable Task Scheduler). Veja mais orientações sobre como implantar funções duráveis com MSSQL
- O dimensionamento automático não é suportado para:
- Azure Cache para Redis
- SQL do Azure
As identidades gerenciadas são suportadas para gatilhos e associações que permitem isso. Também estão disponíveis para:
- Conta de armazenamento padrão (AzureWebJobsStorage)
- Azure Container Registry (ACR)
- Conectando-se a fontes de eventos de gatilho
Para gatilhos não suportados, use contagens fixas de réplicas (ou seja, defina minReplicas > 0) em Funções do Azure em Azure Container Apps. Para obter mais informações, consulte o Guia do desenvolvedor do Functions.
Dimensionamento e desempenho
As Funções do Azure em Aplicações de Contentores escalam automaticamente com base nos eventos usando o KEDA, sem necessidade de configurar as regras de escala manualmente. Você ainda pode definir réplicas min/max para controlar o comportamento de dimensionamento.
- Escalonamento orientado a eventos: Escala automaticamente com base em gatilhos como Grade de Eventos, Service Bus ou HTTP.
- Escala até zero: as aplicações inativas são reduzidas a zero para reduzir custos.
- Controlo de arranque a frio: Aprenda sobre a redução do tempo de arranque a frio no Azure Container Apps.
- Simultaneidade: Cada instância pode processar vários eventos em paralelo.
- Alta escala: escale até 1.000 instâncias por aplicação (o padrão é 10).
- Suporte a GPU: execute cargas de trabalho pesadas em termos de computação, como inferência de IA, usando nós suportados por GPU.
Isso torna as Aplicações de Contêiner ideais para cargas de trabalho intermitentes e constantes. Para saber mais, veja Defina regras de escalonamento no Azure Container Apps
Redes e segurança
Funções do Azure em Container Apps beneficiam das robustas
- Integração VNet: Aceda a recursos privados de forma segura através de terminais internos e bases de dados privadas.
- Identidade gerida: Autenticar com serviços de Azure usando identidades atribuídas pelo sistema/utilizador — sem necessidade de segredos ou strings de ligação.
- Suporte a Dapr: habilite pub/sub, gerenciamento de estado e invocação de serviço seguro por meio de sidecars Dapr. Para obter mais informações, consulte APIs de microsserviço com tecnologia Dapr.
- Ingress e TLS: exponha endpoints HTTP seguros com TLS/mTLS, domínios personalizados ou mantenha-os internos.
- Isolamento do ambiente: As funções partilham os limites do ambiente das Aplicações de Contentores para uma comunicação segura e bem definida.
Esses recursos tornam as funções hospedadas em aplicativos de contêiner ideais para aplicativos sem servidor seguros e de nível empresarial.
Monitorização e registo
O Funções do Azure nas Aplicações Container integra-se perfeitamente com as ferramentas de observabilidade do Azure para acompanhamento de desempenho e diagnóstico de problemas:
- Informações sobre o aplicativo: Fornece telemetria para solicitações, dependências, exceções e rastreamentos personalizados. Para mais informações, consulte Monitor Funções do Azure.
- Análise de logs: Captura o ciclo de vida do contêiner e eventos de dimensionamento (por exemplo, entradas FunctionsScalerInfo). Para obter mais informações, consulte Registo de Aplicações em Azure Container Apps.
- Registo personalizado: Suporta estruturas padrão como ILogger e log de console para saída estruturada.
- Monitorização centralizada: O ambiente Container Apps oferece painéis e alertas unificados em todos os aplicativos.
Variáveis de ambiente
As Funções do Azure a correr em Aplicações de Contentor têm acesso às variáveis de ambiente fornecidas pelo sistema. A CONTAINER_NAME variável de ambiente é automaticamente definida para o nome da réplica da sua aplicação de função. Use esta variável para registo, correlação e depuração em cenários multi-réplica.
Para uma lista completa das variáveis de ambiente fornecidas pelo sistema, veja Variáveis de ambiente em Azure Container Apps.
Considerações
Tenha estas outras considerações em mente ao usar o Funções do Azure no Azure Container Apps:
- Requisito de entrada para dimensionamento automático: para habilitar o dimensionamento automático com base em eventos, a entrada deve ser habilitada — publicamente ou no ambiente interno dos Aplicativos de Contêiner.
- Conta de armazenamento obrigatória: cada aplicativo do Functions implantado em aplicativos de contêiner deve estar vinculado a uma conta de armazenamento. Isso é necessário para gerenciar gatilhos, logs e estado. Analise as diretrizes da conta de armazenamento para obter as práticas recomendadas.
- Armazenamento com várias revisões: ao implantar com várias revisões ativas, atribua uma conta de armazenamento dedicada a cada revisão. O uso de uma conta de armazenamento dedicada ajuda a evitar conflitos e garante o isolamento adequado. Como alternativa, se você não precisar de revisões simultâneas, considere usar o modo de revisão única padrão para gerenciamento simplificado.
- Gatilhos de várias revisões: se você estiver usando o modo de várias revisões com um gatilho baseado em pull, use uma fonte de eventos diferente para cada revisão para evitar conflitos relacionados a consumidores concorrentes. Funções que utilizam Armazenamento de Filas do Azure, Hubs de Eventos do Azure, Azure Service Bus ou gatilhos Durable Functions são exemplos de gatilhos baseados em pull.
- Latência de inicialização a frio: quando seu aplicativo de contêiner é dimensionado para zero durante períodos ociosos, a primeira solicitação após a inatividade experimenta um início a frio. Saiba mais sobre como reduzir os tempos de arranque a frio.
- Integração de insights de aplicativos: para monitoramento e diagnóstico robustos, vincule seu aplicativo Functions ao Application Insights. Para obter mais informações, consulte Integração do App Insights com o Functions.
- Proxies de funções: Não suportado. Para cenários de gateway API, integre com o API Management do Azure em vez disso.
- Espaços de implantação: Os espaços de preparação e produção não estão disponíveis. Utilize estratégias de implementação azul-verde para lançamentos sem tempo de inatividade.
- Chaves de acesso a Funções: Não é suportado usar o portal para gerar chaves de acesso a Funções. Considera usar Azure Key Vault para armazenar chaves. Você também pode usar as seguintes opções para proteger endpoints HTTP em produção:
- Limites de cota e recursos: os ambientes de aplicativos de contêiner têm limites padrão de memória, CPU e contagens de instâncias por região. Para obter mais informações, consulte os limites de ambiente e as cotas padrão. Se sua carga de trabalho exigir mais recursos, você poderá solicitar um aumento de cota.
- Configuração manual das regras de escala: O botão "Adicionar regras de escala" no portal de Azure está desativado para Funções do Azure alojado em Aplicações de Contentores porque as regras de escalabilidade são automaticamente configuradas com base na origem do evento. Definições manuais de regras KEDA não são necessárias nesta configuração.
Enviar comentários
Submeta um problema ou um pedido de funcionalidade ao repositório Azure Container Apps GitHub.
Próximas etapas / Outros recursos
Para continuar a aprender e a desenvolver com Funções do Azure em Aplicações Container, explore os seguintes recursos:
- Como começar: Guia passo a passo para implementar e configurar Funções do Azure em Azure Container Apps.
- Documentação do Azure Container Apps: Referência completa para funcionalidades de Aplicações de Contentores, incluindo escalabilidade, conectividade, Dapr e perfis de carga de trabalho.
- Preços dos Azure Container Apps: Detalhes sobre faturação baseada no consumo e custos do Plano Dedicado.
- Opções de alojamento do Funções do Azure: Comparação de planos de alojamento incluindo Container Apps, Flex Consumption, Premium e Dedicado.
- Funções do Azure guia para desenvolvedores: Uma análise aprofundada dos gatilhos, bindings, comportamento em tempo de execução e configuração.