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 combina as capacidades orientadas a eventos do Funções do Azure com funcionalidades do Container Apps. Estas capacidades incluem orquestração baseada em Kubernetes, autoescalonamento integrado alimentado pelo Kubernetes Event-driven Autoscaling (KEDA), integração Dapr, suporte a cargas de trabalho GPU, suporte a sidecar, conectividade à rede virtual (VNet) e gestão de versões.
Esta abordagem é útil quando se quer que as suas funções corram juntamente com outras aplicações containerizadas, como microserviços, APIs ou websites. A containerização das suas aplicações funcionais também pode ajudar quando precisa de dependências personalizadas ou quer escalar para zero para reduzir custos. Para tarefas que exigem muita computação, como inferência de IA, as Aplicações Container suportam alojamento baseado em GPU através de GPUs serverless e perfis dedicados de carga de trabalho.
Como funcionalidade integrada no Azure Container Apps, pode implementar imagens de contentores do Funções do Azure diretamente para o Azure Container Apps, usando o Microsoft.App fornecedor de recursos e a definição kind=functionapp quando chamar az containerapp create. As aplicações criadas desta forma têm acesso a todas as funcionalidades do Azure Container Apps. No portal Azure, selecione a opção Otimizar para Funções do Azure durante a configuração. Para mais informações, consulte Implementação e configuração.
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.
- Escala para zero e escala para 1.000 instâncias usando KEDA.
- Rede segura com integração VNet completa.
- Funcionalidades das Aplicações Container como múltiplas 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 seguinte ajuda-o a comparar as funcionalidades das Funções nas Aplicações Container com o plano Flex Consumption.
| 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 aplicações legadas e/ou monolíticas locais para microsserviços nativos da cloud baseados em contentores.
- Processamento orientado por eventos: Gere eventos a partir do Event Grid, Service Bus, Event Hubs e outras fontes de eventos utilizando o modelo de programação do Funções do Azure.
- Cargas de trabalho de IA e GPU: Processar vídeos, imagens, transcrições e outras cargas de trabalho intensivas em computação que requerem recursos 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 tua function app como uma imagem de contentor personalizada e implementa-a como qualquer outra aplicação de container, com uma diferença chave. Define a kind=functionapp propriedade quando usares o CLI do Azure, os templates do Azure Resource Manager ou o Bicep. Para passos e exemplos detalhados, veja Criar uma aplicação de funções.
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 sua aplicação funcional. 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 usar a configuração Funções do Azure.
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.
Detalhes de faturação:
- 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 no Container Apps é compatível com todos os principais runtimes de linguagem disponíveis no Funções do Azure, incluindo C#, JavaScript / TypeScript (Node.js), Python, Java, PowerShell e contentores personalizados (utilize a sua própria imagem).
Funções do Azure em execução no Azure Container Apps configuram automaticamente regras de dimensionamento com base na origem do evento, eliminando a necessidade de definições manuais de regras de dimensionamento do KEDA na experiência predefinida. É 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.
Se precisares de fornecer as tuas próprias regras de escala, podes optar por não participar nas regras geradas pela plataforma usando allowScalingRuleOverride. Para mais informações, consulte Substituir regras de dimensionamento do KEDA geradas automaticamente para Funções do Azure em Aplicações de Contentores.
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
- Durable Functions autoscaling: Suporta apenas fornecedores de armazenamento Microsoft SQL Server e Durable Task Scheduler. Para mais informações, consulte Deploy Durable Functions with SQL Server.
- O autoscaling não é suportado para:
- Cache do Azure 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 no Container Apps escalam automaticamente com base em eventos, utilizando o KEDA por predefinição. Você ainda pode definir réplicas min/max para controlar o comportamento de dimensionamento. Também podes usar allowScalingRuleOverride para fornecer regras de escala personalizadas.
- 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 on Container Apps utiliza funcionalidades de rede e segurança das Container Apps:
- Integração VNet: Aceda a recursos privados de forma segura através de terminais internos e bases de dados privadas.
- Identidade gerida: Autenticar com os serviços do Azure utilizando identidades atribuídas pelo sistema ou pelo utilizador. Não precisas de gerir segredos ou linhas 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 Container para uma comunicação segura e com âmbito.
Monitorização e registo
Funções do Azure on Container Apps integra-se 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.
-
Log Analytics: Captura o ciclo de vida dos contentores e eventos de escalabilidade, como
FunctionsScalerInfoentradas. Para mais informações, consulte o login 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 registos, correlação e depuração em cenários multiré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 autoescalabilidade: Para permitir a escalabilidade automática com base em eventos, ative a entrada, seja publicamente ou dentro do ambiente interno das Aplicações Container.
- Conta de armazenamento obrigatória: Cada aplicação de funções implementada nas Aplicações Container deve estar ligada a uma conta de armazenamento. Esta conta de armazenamento gere os gatilhos, registos e estados. 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 com o Application Insights: Para monitorizar e diagnosticar a sua aplicação de funções, ligue-a ao Application Insights. Para mais informações, consulte Integração do Application Insights com Funções.
- 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.