Comparar as opções de hospedagem do Azure Functions

Concluído

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

Opção de hospedagem Serviço Disponibilidade Suporte a contêiner
Plano de Consumo Azure Functions GA (em disponibilidade geral) Nenhum
Plano de Consumo Flexível Azure Functions Visualizar Nenhum
Plano Premium Azure Functions GA Linux
Plano dedicado Azure Functions GA Linux
Aplicativos de Contêiner Aplicativos de Contêiner do Azure 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 que você escolher determinará os seguintes comportamentos:

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

O plano escolhido também afeta os custos para executar seu 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 somente quando suas funções estiverem em execução (pagamento conforme o uso) com escala automática. No plano de Consumo, as instâncias do host do Functions são adicionadas e removidas dinamicamente com base no número de eventos de entrada.

Plano de Consumo Flexível

Obtenha alta escalabilidade com opções de computação, rede virtual e cobrança de pagamento conforme o uso. No plano de Consumo Flexível, as instâncias do host do Functions são adicionadas e removidas dinamicamente com base na simultaneidade por instância configurada e no número de eventos de entrada.

Você pode reduzir inicializações a frio especificando o número de instâncias pré-provisionadas (sempre prontas). Escala automaticamente com base na demanda.

Plano Premium

É escalado automaticamente de acordo com a demanda, por meio de trabalhos pré-ativados que executam aplicativos sem atraso após estarem ociosos, é executado em instâncias com maior potência e se conecta a redes virtuais.

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

  • Os aplicativos de funções executam continuamente ou quase continuamente.
  • Você deseja ter mais controle de suas instâncias e implantar vários aplicativos de funções no mesmo plano com escalabilidade orientada a eventos.
  • Você tem um grande número de pequenas execuções e uma conta de execução alta, mas poucos GB por segundo 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 personalizada do Linux para executar suas funções.

Plano dedicado

Execute suas funções em um plano do Serviço de Aplicativo com taxas regulares do Plano do Serviço de Aplicativo. Melhor para cenários de execução longa em que o Durable Functions não pode ser usado.

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

  • Você deve ter um faturamento totalmente previsível ou precisará dimensionar as instâncias manualmente.
  • Você deseja executar vários aplicativos da web e aplicativos de funções no mesmo plano
  • Você precisa de acesso a opções maiores de tamanho de computação.
  • Isolamento total de computação e acesso seguro à rede fornecidos por um Serviço de Aplicativo do Azure Environment (ASE).
  • Alto uso de memória e alta escala (ASE).

Aplicativos de Contêiner

Crie e implante aplicativos de funções 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ções nativos da nuvem, sem servidor e controlados por eventos de build. Execute suas funções junto com outros microsserviços, APIs, sites e fluxos de trabalho como programas hospedados em contêiner.

Considere a possibilidade de 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 dar suporte a aplicativos de linha de negócios.
  • Você precisa migrar a execução de código de aplicativos locais ou legados para microsserviços nativos da nuvem em execução em contêineres.
  • Você deseja evitar a sobrecarga e a complexidade do gerenciamento de clusters Kubernetes e da computação dedicada.
  • Você precisa do poder de processamento de ponta fornecido por recursos de computação de CPU dedicados para suas funções.

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

A propriedade functionTimeout no arquivo de projeto host.json especifica a duração do tempo limite para funções em um aplicativo de funções. Essa propriedade se aplica especificamente a execuções de função. 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 seguinte tabela mostra os valores padrão e máximo (em minutos) para planos específicos:

Plano Padrão Máximo1
Plano de Consumo 5 10
Plano de Consumo Flexível 30 Ilimitado3
Plano Premium 302 Ilimitado3
Plano dedicado 302 Ilimitado3
Aplicativos de Contêiner 305 Ilimitado3
  1. Independentemente da configuração de tempo limite do aplicativo de funções, 230 segundos é a quantidade de tempo máxima que uma função disparada por HTTP pode levar para responder a uma solicitação.
  2. O tempo limite padrão para a versão 1.x do tempo de execução do Functions é limitada.
  3. Garantido por até 60 minutos. A correção do sistema operacional e do tempo de execução, a correção de vulnerabilidades e a escala de comportamentos ainda podem cancelar as execuções de funções.
  4. Em um plano de Consumo Flexível, o host não impõe um limite de tempo de execução. Porém, no momento, não há nenhuma garantia, porque a plataforma pode precisar encerrar suas instâncias durante a redução horizontal e as implantações ou para 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.