Funções do Azure opções de alojamento

Quando cria uma aplicação de funções no Azure, tem de escolher um plano de alojamento para a sua aplicação. Existem três planos básicos de alojamento disponíveis para Funções do Azure: plano de consumo, plano Premium e plano Dedicado (Serviço de Aplicações). Todos os planos de alojamento estão geralmente disponíveis (GA) em máquinas virtuais do Linux e do Windows.

O plano de alojamento que escolher dita os seguintes comportamentos:

  • Como a sua aplicação de funções é dimensionada.
  • Os recursos disponíveis para cada instância da aplicação de funções.
  • Suporte para funcionalidades avançadas, como o Azure Rede Virtual conectividade.

Este artigo fornece uma comparação detalhada entre os vários planos de alojamento, juntamente com o alojamento baseado no Kubernetes.

Nota

Se optar por alojar as suas funções num cluster do Kubernetes, considere utilizar um cluster do Kubernetes compatível com o Azure Arc. O alojamento num cluster do Kubernetes compatível com o Azure Arc está atualmente em pré-visualização. Para saber mais, veja Serviço de Aplicações, Funções e Logic Apps no Azure Arc.

Descrição geral dos planos

Segue-se um resumo das vantagens dos três principais planos de alojamento para Funções:

Planear Benefícios
Plano de consumo Dimensione automaticamente e pague apenas os recursos de computação quando as suas funções estiverem em execução.

No plano Consumo, as instâncias do anfitrião de Funções são adicionadas e removidas dinamicamente com base no número de eventos recebidos.

✔ Plano de alojamento predefinido.
✔ Pague apenas quando as suas funções estiverem em execução.
✔ Dimensiona automaticamente, mesmo durante períodos de carga elevada.
Plano Premium Dimensiona automaticamente com base na procura através de trabalhadores pré-aquecidos, que executam aplicações sem atraso após estarem inativas, são executadas em instâncias mais poderosas e ligam-se a redes virtuais.

Considere o plano Funções do Azure Premium nas seguintes situações:

✔ As aplicações de funções são executadas continuamente ou quase continuamente.
✔ Tem um número elevado de pequenas execuções e uma fatura de execução elevada, mas poucos segundos GB no plano Consumo.
✔ Precisa de mais opções de CPU ou memória do que as fornecidas pelo Plano de consumo.
✔ O código tem de ser executado durante mais tempo do que o tempo máximo de execução permitido no Plano de consumo.
✔ Precisa de funcionalidades que não estejam disponíveis no plano consumo, como a conectividade de rede virtual.
✔ Quer fornecer uma imagem personalizada do Linux para executar as suas funções.
Plano dedicado Execute as suas funções num plano de Serviço de Aplicações com taxas regulares de planos de Serviço de Aplicações.

Melhor para cenários de execução prolongada em que não é possível utilizar Durable Functions. Considere um plano de Serviço de Aplicações nas seguintes situações:

✔ Tem VMs subutilizadas existentes que já estão a executar outras instâncias Serviço de Aplicações.
✔ O dimensionamento preditivo e os custos são necessários.

As tabelas de comparação neste artigo também incluem as seguintes opções de alojamento, que fornecem a maior quantidade de controlo e isolamento para executar as suas aplicações de funções.

Opção de alojamento Detalhes
ASE Ambiente do Serviço de Aplicações (ASE) é uma funcionalidade Serviço de Aplicações que fornece um ambiente totalmente isolado e dedicado para executar aplicações Serviço de Aplicações em alta escala de forma segura.

Os ASEs são adequados para cargas de trabalho de aplicações que requerem:

✔ Escala muito alta.
✔ Isolamento total da computação e acesso seguro à rede.
✔ Utilização elevada da memória.
Kubernetes
(Direto ou
Azure Arc)
O Kubernetes fornece um ambiente totalmente isolado e dedicado em execução na plataforma kubernetes.

O Kubernetes é adequado para cargas de trabalho de aplicações que requerem:
✔ Requisitos de hardware personalizados.
✔ Isolamento e acesso seguro à rede.
✔ Capacidade de execução em ambiente híbrido ou multi cloud.
✔ Execute juntamente com aplicações e serviços do Kubernetes existentes.

As restantes tabelas neste artigo comparam os planos em várias funcionalidades e comportamentos. Para obter uma comparação de custos entre planos de alojamento dinâmicos (Consumo e Premium), veja a página de preços do Funções do Azure. Para obter os preços das várias opções de plano dedicado, consulte a página de preços do Serviço de Aplicações.

Sistema operativo/runtime

A tabela seguinte mostra o sistema operativo e o suporte de idiomas para os planos de alojamento.

Linux1,2
apenas código
Apenas código do Windows Linux1,2,3
Contentor do Docker
Plano de consumo C#
JavaScript
Java
Python
PowerShell Core
TypeScript
C#
JavaScript
Java
PowerShell Core
TypeScript
Sem suporte
Plano Premium C#
JavaScript
Java
Python
PowerShell Core
TypeScript
C#
JavaScript
Java
PowerShell Core
TypeScript
C#
JavaScript
Java
PowerShell Core
Python
TypeScript
Plano dedicado C#
JavaScript
Java
Python
TypeScript
C#
JavaScript
Java
PowerShell Core
TypeScript
C#
JavaScript
Java
PowerShell Core
Python
TypeScript
ASE C#
JavaScript
Java
Python
TypeScript
C#
JavaScript
Java
PowerShell Core
TypeScript
C#
JavaScript
Java
PowerShell Core
Python
TypeScript
Kubernetes (direto) n/a n/a C#
JavaScript
Java
PowerShell Core
Python
TypeScript
Azure Arc (Pré-visualização) C#
JavaScript
Java
Python
TypeScript
n/a C#
JavaScript
Java
PowerShell Core
Python
TypeScript

1 O Linux é o único sistema operativo suportado para a pilha de runtime do Python.
2 O suporte do PowerShell no Linux está atualmente em pré-visualização.
3 O Linux é o único sistema operativo suportado para contentores do Docker.

Duração do tempo limite da aplicação de funções

A duração do tempo limite das funções numa aplicação de funções é definida pela functionTimeout propriedade no ficheiro de projeto host.json . Esta propriedade aplica-se especificamente a execuções de funções. Depois de o acionador iniciar a execução da função, a função tem de devolver/responder dentro da duração do tempo limite. Para obter mais informações, veja Melhorar o desempenho e a fiabilidade do Funções do Azure.

A tabela seguinte mostra os valores predefinidos e máximos (em minutos) para planos específicos:

Planear Predefinição Máximo1
Plano de consumo 5 10
Plano Premium 302 Ilimitado
Plano dedicado 302 Ilimitado

1 Independentemente da definição de tempo limite da aplicação de funções, 230 segundos é a quantidade máxima de tempo que uma função acionada por HTTP pode demorar a responder a um pedido. Isto deve-se ao tempo limite de inatividade predefinido de Balanceador de Carga do Azure. Para tempos de processamento mais longos, considere utilizar o padrão assíncrono Durable Functions ou diferir o trabalho real e devolver uma resposta imediata.
2 O tempo limite predefinido para a versão 1.x do runtime das Funções é ilimitado.

Escala

A tabela seguinte compara os comportamentos de dimensionamento dos vários planos de alojamento.
As instâncias máximas são fornecidas numa base por aplicação por função (Consumo) ou por plano (Premium/Dedicado), salvo indicação em contrário.

Planear Aumentar horizontalmente Número máximo de instâncias
Plano de consumo Condicionada por eventos. Aumentar horizontalmente automaticamente, mesmo durante períodos de carga elevada. Funções do Azure infraestrutura dimensiona a CPU e os recursos de memória ao adicionar instâncias adicionais do anfitrião das Funções, com base no número de eventos de acionador recebidos. Windows: 200
Linux: 1001
Plano Premium Condicionada por eventos. Aumentar horizontalmente automaticamente, mesmo durante períodos de carga elevada. Funções do Azure infraestrutura dimensiona a CPU e os recursos de memória ao adicionar instâncias adicionais do anfitrião das Funções, com base no número de eventos em que as suas funções são acionadas. Windows: 100
Linux: 20-1002
Plano dedicado3 Dimensionamento manual/automático 10-30
ASE3 Dimensionamento manual/automático 100
Utilizar o Kubernetes Dimensionamento automático condicionado por eventos para clusters do Kubernetes com KEDA. Varia de acordo com o cluster

1 Durante o aumento horizontal, existe atualmente um limite de 500 instâncias por subscrição por hora para aplicações Linux num plano de Consumo.
2 Em algumas regiões, as aplicações Linux num plano Premium podem ser dimensionadas para 100 instâncias. Para obter mais informações, veja o artigo Plano Premium.
3 Para obter limites específicos para as várias opções do plano de Serviço de Aplicações, veja os limites do plano de Serviço de Aplicações.

Comportamento de arranque a frio

Planear Detalhes
Plano de consumo As aplicações podem ser dimensionadas para zero quando estão inativas, o que significa que alguns pedidos podem ter latência adicional no arranque. O plano de consumo tem algumas otimizações para ajudar a diminuir a hora de início a frio, incluindo a extração de funções de marcador de posição pré-aqueadas que já têm o anfitrião de funções e os processos de linguagem em execução.
Plano Premium Instâncias perpétuamente quentes para evitar qualquer arranque a frio.
Plano dedicado Ao executar num plano Dedicado, o anfitrião de Funções pode ser executado continuamente, o que significa que o arranque a frio não é realmente um problema.
ASE Ao executar num plano Dedicado, o anfitrião de Funções pode ser executado continuamente, o que significa que o arranque a frio não é realmente um problema.
Utilizar o Kubernetes Dependendo da configuração keda, as aplicações podem ser configuradas para evitar um arranque a frio. Se configurado para dimensionar para zero, é registado um início a frio para novos eventos.

Limites do serviço

Recurso Plano de consumo Plano Premium Plano dedicado ASE Kubernetes
Duração do tempo limite predefinida (min) 5 30 301 30 30
Duração máxima do tempo limite (min) 10 não vinculado7 não vinculado2 não vinculado não vinculado
Máximo de ligações de saída (por instância) 600 ativos (1200 no total) não vinculado não vinculado não vinculado não vinculado
Tamanho máximo do pedido (MB)3 100 100 100 100 Depende do cluster
Comprimento máximo da cadeia de consulta3 4096 4096 4096 4096 Depende do cluster
Comprimento máximo do URL do pedido3 8192 8192 8192 8192 Depende do cluster
ACU por instância 100 210-840 100-840 210-2508 Preços do AKS
Memória máxima (GB por instância) 1.5 3.5-14 1.75-14 3.5 - 14 Qualquer nó é suportado
Contagem máxima de instâncias (Windows/Linux) 200/100 100/20 varia por SKU9 1009 Depende do cluster
Aplicações de funções por plano 100 100 não vinculado4 não vinculado não vinculado
Planos do Serviço de Aplicações 100 por região 100 por grupo de recursos 100 por grupo de recursos - -
Blocos de implementação por aplicação10 2 3 1-209 20 n/a
Armazenamento5 5 TB 250 GB 50-1000 GB 1 TB n/a
Domínios personalizados por aplicação 5006 500 500 500 n/a
Suporte SSL de domínio personalizado ligação SNI SSL não vinculada incluída SSL SNI não vinculado e 1 ligações SSL IP incluídas SSL SNI não vinculado e 1 ligações SSL IP incluídas SSL SNI não vinculado e 1 ligações SSL IP incluídas n/a

1 Por predefinição, o tempo limite para o runtime das Funções 1.x num plano de Serviço de Aplicações não está vinculado.
2 Requer que o plano de Serviço de Aplicações esteja definido como AlwaysOn. Pagar a tarifas padrão.
3 Estes limites são definidos no anfitrião.
4 O número real de aplicações de funções que pode alojar depende da atividade das aplicações, do tamanho das instâncias da máquina e da utilização de recursos correspondente.
5 O limite de armazenamento é o tamanho total do conteúdo no armazenamento temporário em todas as aplicações no mesmo plano de Serviço de Aplicações. O plano de consumo utiliza Ficheiros do Azure para armazenamento temporário.
6 Quando a aplicação de funções está alojada num plano de Consumo, só é suportada a opção CNAME. Para aplicações de funções num plano Premium ou num plano de Serviço de Aplicações, pode mapear um domínio personalizado com um CNAME ou um registo A.
7 Garantido até 60 minutos.
8 Os trabalhadores são funções que alojam aplicações de clientes. As funções de trabalho estão disponíveis em três tamanhos fixos: uma vCPU/3,5 GB de RAM; Duas vCPUs/7 GB de RAM; Quatro RAM vCPU/14 GB.
9 Veja Serviço de Aplicações limites para obter detalhes.
10 Incluindo o bloco de produção.

Limitações para criar novas aplicações de funções num grupo de recursos existente

Em alguns casos, ao tentar criar um novo plano de alojamento para a sua aplicação de funções num grupo de recursos existente, poderá receber um dos seguintes erros:

  • O escalão de preço não é permitido neste grupo de recursos
  • <> SKU_name trabalhadores não estão disponíveis no grupo <de recursos resource_group_name>

Isto pode acontecer quando são cumpridas as seguintes condições:

  • Pode criar uma aplicação de funções num grupo de recursos existente que já tenha contido outra aplicação de funções ou aplicação Web.
  • A nova aplicação de funções é criada na mesma região que a aplicação anterior.
  • A aplicação anterior é de alguma forma incompatível com a sua nova aplicação. Isto pode acontecer entre SKUs, sistemas operativos ou devido a outras funcionalidades ao nível da plataforma, como o suporte da zona de disponibilidade.

Esta situação deve-se à forma como a aplicação de funções e os planos de aplicações Web são mapeados para diferentes conjuntos de recursos quando são criados. SkUs diferentes requerem um conjunto diferente de capacidades de infraestrutura. Quando cria uma aplicação num grupo de recursos, esse grupo de recursos é mapeado e atribuído a um conjunto específico de recursos. Se tentar criar outro plano nesse grupo de recursos e o conjunto mapeado não tiver os recursos necessários, este erro ocorrerá.

Quando este erro ocorrer, crie a aplicação de funções e o plano de alojamento num novo grupo de recursos.

Funcionalidades de rede

Funcionalidade Plano de consumo Plano Premium Plano dedicado ASE
Restrições de IP de entrada ✅Sim ✅Yes ✅Yes ✅Yes
Pontos Finais Privados de Entrada ❌Não ✅Sim ✅Yes ✅Yes
Integração da rede virtual ❌Não ✅Sim (Regional) ✅Sim (Regional e Gateway) ✅Sim
Acionadores de rede virtual (não HTTP) ❌Não ✅Sim ✅Yes ✅Sim
Ligações híbridas (apenas Windows) ❌Não ✅Yes ✅Yes ✅Yes
Restrições de IP de saída ❌Não ✅Yes ✅Yes ✅Yes

Faturação

Planear Detalhes
Plano de consumo Pague apenas pelo tempo de execução das suas funções. A faturação baseia-se no número de execuções, no tempo de execução e na memória utilizada.
Plano Premium O plano Premium baseia-se no número de segundos principais e na memória utilizada em instâncias necessárias e pré-aqueciadas. Pelo menos uma instância por plano tem de ser sempre mantida quente. Este plano fornece os preços mais previsíveis.
Plano dedicado Paga o mesmo pelas aplicações de funções num Plano de Serviço de Aplicações, tal como faria com outros recursos Serviço de Aplicações, como aplicações Web.
Ambiente do Serviço de Aplicações (ASE) Existe uma taxa mensal fixa para um ASE que paga a infraestrutura e não muda com o tamanho do ASE. Também existe um custo por Serviço de Aplicações vCPU do plano. Todas as aplicações alojadas num ASE estão na SKU de preços Isolada.
Utilizar o Kubernetes Paga apenas os custos do cluster do Kubernetes; sem faturação adicional para Funções. A sua aplicação de funções é executada como uma carga de trabalho de aplicação sobre o cluster, tal como uma aplicação normal.

Passos seguintes