Compare as opções de hospedagem do Azure Functions
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 para contentores/recipientes |
---|---|---|---|
Plano de consumo | Funções do Azure | Disponível de Forma Generalizada (GA) | Nenhuma |
Plano de consumo Flex | Funções do Azure | GA | 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 a sua aplicação de função é dimensionada.
- 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 os arranques 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 após ficarem inativos, operam 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 um alto custo de execução, mas poucos segundos de GB utilizados 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. Melhor para cenários prolongados onde as funções permanentes não podem ser utilizadas.
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 da aplicação de função
A functionTimeout
propriedade no ficheiro de projetohost.json especifica a duração do tempo limite para funções numa aplicação de funções. 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:
Plano | Predefinido | Máximo1 |
---|---|---|
Plano de consumo Flex | 30 | Sem limites2 |
Plano Premium | 304 | Sem limites2 |
Plano dedicado | 304 | Sem limites3 |
Aplicativos de contêiner | 30 | Sem limites5 |
Plano de consumo | 5 | 10 |
- Independentemente da configuração de tempo limite do aplicativo de função, 230 segundos é a quantidade máxima de tempo que uma função acionada por HTTP pode levar para responder a uma solicitação. Isso ocorre devido ao tempo limite de inatividade padrão do Balanceador de Carga do Azure. Para tempos de processamento mais longos, considere usar o padrão assíncrono de Funções Duráveis ou adie o trabalho real e retorne uma resposta imediata.
- Não existe um tempo limite máximo para execução definido. No entanto, o período de carência dado à execução de uma função é de 60 minutos durante a escala para os planos Flex Consumption e Premium, e um período de carência de 10 minutos é dado durante as atualizações da plataforma.
- Requer que o plano do Serviço de Aplicativo esteja definido como Sempre Ativado. Um período de carência de 10 minutos é dado durante as atualizações da plataforma.
- O tempo limite padrão para a versão 1.x do tempo de execução do host Functions é ilimitado.
- 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.