Compare as opções de hospedagem do Azure Functions

Concluído

Ao criar um aplicativo de função no Azure, você deve escolher um plano de hospedagem para seu aplicativo. O Azure fornece estas opções de hospedagem para seu código de função:

Opção de hospedagem Serviço Disponibilidade Suporte de contentor
Plano de consumo Funções do Azure Disponível de Forma Generalizada (GA) Nenhuma
Plano de consumo Flex Funções do Azure Pré-visualizar Nenhuma
Plano Premium Funções do Azure GA Linux
Plano dedicado Funções do Azure GA Linux
Aplicativos de contêiner Azure Container Apps GA Linux

A infraestrutura do Serviço de Aplicativo do Azure facilita a hospedagem do Azure Functions em máquinas virtuais Linux e Windows. A opção de hospedagem escolhida dita os seguintes comportamentos:

  • Como seu aplicativo de função é dimensionado.
  • Os recursos disponíveis para cada instância do aplicativo de função.
  • Suporte para funcionalidades avançadas, como conectividade de Rede Virtual do Azure.
  • Suporte para contêineres Linux.

O plano escolhido também afeta os custos de execução do código de função.

Visão geral dos planos

A seguir está um resumo dos benefícios das várias opções de hospedagem:

Plano de consumo

O plano de consumo é o plano de hospedagem padrão. Pague pelos recursos de computação apenas quando as suas funções estiverem em execução (pay-as-you-go) com escala automática. No Plano de consumo, as instâncias do anfitrião das Funções são adicionadas e removidas dinamicamente com base no número de eventos de entrada.

Plano de consumo Flex

Obtenha alta escalabilidade com opções de computação, redes virtuais e faturamento pré-pago. No plano Flex Consumption, as instâncias do host Functions são adicionadas e removidas dinamicamente com base na simultaneidade configurada por instância e no número de eventos de entrada.

Você pode reduzir as partidas a frio especificando o número de instâncias pré-provisionadas (sempre prontas). Dimensiona automaticamente com base na demanda.

Plano Premium

Dimensiona automaticamente com base na demanda usando trabalhadores pré-aquecidos, que executam aplicativos sem atraso depois de ficarem ociosos, são executados em instâncias mais poderosas e se conectam a redes virtuais.

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

  • Seus aplicativos funcionais são executados continuamente ou quase continuamente.
  • Você quer mais controle de suas instâncias e deseja implantar vários aplicativos de função no mesmo plano com dimensionamento controlado por eventos.
  • Você tem um alto número de pequenas execuções e uma alta conta de execução, mas poucos segundos de GB no plano de consumo.
  • Você precisa de mais opções de CPU ou memória do que as fornecidas pelos planos de consumo.
  • Seu código precisa ser executado por mais tempo do que o tempo máximo de execução permitido no plano de consumo.
  • Você precisa de conectividade de rede virtual.
  • Você deseja fornecer uma imagem Linux personalizada para executar suas funções.

Plano dedicado

Execute suas funções dentro de um plano do Serviço de Aplicativo com as taxas regulares do plano do Serviço de Aplicativo. Ideal para cenários de longa duração em que as funções duráveis não podem ser usadas.

Considere um plano do Serviço de Aplicativo nas seguintes situações:

  • Você deve ter faturamento totalmente previsível ou precisa dimensionar instâncias manualmente.
  • Você deseja executar vários aplicativos Web e aplicativos funcionais no mesmo plano
  • Você precisa ter acesso a opções de tamanho de computação maiores.
  • Isolamento de computação completo e acesso seguro à rede fornecido por um Ambiente de Serviço de Aplicativo (ASE).
  • Alto uso de memória e alta escala (ASE).

Aplicativos de contêiner

Crie e implante aplicativos de função em contêineres em um ambiente totalmente gerenciado hospedado pelos Aplicativos de Contêiner do Azure.

Use o modelo de programação do Azure Functions para criar aplicativos de função nativos da nuvem, sem servidor e orientados a eventos. Execute suas funções ao lado de outros microsserviços, APIs, sites e fluxos de trabalho como programas hospedados em contêiner.

Considere hospedar suas funções em aplicativos de contêiner nas seguintes situações:

  • Você deseja empacotar bibliotecas personalizadas com seu código de função para oferecer suporte a aplicativos de linha de negócios.
  • Você precisa migrar a execução de código de aplicativos locais ou herdados para microsserviços nativos da nuvem executados em contêineres.
  • Você deseja evitar a sobrecarga e a complexidade do gerenciamento de clusters Kubernetes e computação dedicada.
  • Você precisa do poder de processamento high-end fornecido por recursos de computação de CPU dedicados para suas funções.

Duração do tempo limite do aplicativo de função

A functionTimeout propriedade no arquivo de projeto host.json especifica a duração do tempo limite para funções em um aplicativo de função. Esta propriedade aplica-se especificamente a execuções de funções. Depois que o gatilho inicia a execução da função, a função precisa retornar/responder dentro da duração do tempo limite.

A tabela a seguir mostra os valores padrão e máximo (em minutos) para planos específicos:

Planear Predefinido Máximo1
Plano de consumo 5 10
Plano de consumo Flex 30 Ilimitada3
Plano Premium 302 Ilimitada3
Plano dedicado 302 Ilimitada3
Aplicativos de contêiner 305 Ilimitada3
  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.
  2. O tempo limite padrão para a versão 1.x do tempo de execução do Functions é ilimitado.
  3. Garantido por até 60 minutos. Patches de SO e tempo de execução, patches de vulnerabilidade e dimensionamento em comportamentos ainda podem cancelar execuções de funções.
  4. Em um plano Flex Consumption, o host não impõe um limite de tempo de execução. No entanto, atualmente não há garantias porque a plataforma pode precisar encerrar suas instâncias durante scale-in, implantações ou aplicar atualizações.
  5. Quando o número mínimo de réplicas é definido como zero, o tempo limite padrão depende dos gatilhos específicos usados no aplicativo.