Compartilhar via


Plano de hospedagem do Consumo Flex do Azure Functions

O Consumo Flex é um plano de hospedagem do Azure Functions baseado em Linux que usa o modelo de cobrança sem servidor, onde você paga apenas pelo que usar. O plano oferece mais flexibilidade e personalização ao introduzir rede privada, seleção do tamanho de memória da instância e recursos de expansão rápida e ampla, tudo isso com base em um modelo sem servidor.

Importante

O plano de Consumo Flex está atualmente em versão preliminar. Para ver uma lista das limitações atuais ao usar esse plano de hospedagem, confira as Considerações. Para informações atualizadas sobre a cobrança durante a versão prévia, confira Cobrança.

Você pode analisar exemplos de ponta a ponta que apresentam o plano de Consumo Flex no Repositório de exemplos do plano de Consumo Flex.

Benefícios

O plano de Consumo Flex se baseia nas vantagens do plano de Consumo, que incluem escala dinâmica e cobrança baseada em execução. Com o Consumo Flex, você também ganha estes recursos extras:

Esta tabela ajuda você a comparar diretamente os recursos do Consumo Flex com o plano de hospedagem de Consumo:

Recurso Consumo Consumo Flex
Escalar para zero ✅ Sim ✅ Sim
Comportamento da escala Orientado por eventos Orientado por eventos (rápido)
Redes virtuais ❌ Sem suporte ✅ Com suporte
Computação dedicada (atenuar inicializações a frio) ❌ Nenhum ✅ Instâncias sempre prontas (opcional)
Cobrança Apenas tempo de execução Tempo de execução + instâncias sempre prontas
Instâncias de expansão (máx.) 200 1000

Para obter uma comparação completa do plano de Consumo Flex com relação ao plano de Consumo e todos os outros tipos de plano e hospedagem, confira Opções de escala e hospedagem de funções.

Integração de rede virtual

O Consumo Flex amplia os benefícios tradicionais do plano de Consumo ao oferecer suporte para integração com rede virtual. Quando seus aplicativos são executados em um plano de Consumo Flex, eles podem se conectar de forma segura a outros serviços do Azure dentro de uma rede virtual. Isso tudo enquanto você ainda aproveita a cobrança e a escalabilidade sem servidor, juntamente com os benefícios de escala e taxa de transferência do plano de Consumo Flex. Para saber mais, veja Habilitar a integração com a rede virtual.

Memória da instância

Quando você cria seu aplicativo de funções em um plano de Consumo Flex, é possível selecionar o tamanho da memória das instâncias nas quais seu aplicativo é executado. Confira Cobrança para saber como os tamanhos da memória de instâncias afetam os custos do aplicativo de funções.

Atualmente, o Consumo Flex oferece opções de tamanho de memória de instância de 2.048 MB e 4.096 MB.

Ao decidir qual tamanho de memória de instância usar com seus aplicativos, aqui estão algumas coisas a considerar:

  • O tamanho de memória de instância de 2.048 MB é o padrão e deve ser usado na maioria dos cenários. Use o tamanho de memória de instância de 4.096 MB para cenários em que seu aplicativo requer mais simultaneidade ou maior poder de processamento. Para mais informações, confira Configurar a memória da instância.
  • Você pode alterar o tamanho da memória de uma instância a qualquer momento. Para mais informações, confira Configurar a memória da instância.
  • Os recursos de instância são compartilhados entre o código da função e o host do Azure Functions.
  • Quanto maior o tamanho da memória das instâncias, mais cada instância pode lidar com execuções simultâneas ou cargas de trabalho de CPU ou memória mais intensivas. As decisões de escala específicas são específicas da carga de trabalho.
  • A simultaneidade padrão dos gatilhos HTTP depende do tamanho da memória da instância. Para obter mais informações, consulte Simultaneidade do gatilho HTTP.
  • As CPUs disponíveis e a largura de banda de rede são fornecidas proporcionalmente a um tamanho de instância específico.

Instâncias sempre prontas

O Consumo Flex inclui um recurso sempre pronto que permite escolher instâncias que estão sempre em execução e atribuídas a cada um dos seus grupos ou funções de escala por função. Essa é uma ótima opção para cenários onde você precisa ter um número mínimo de instâncias sempre prontas para lidar com solicitações, como, por exemplo, para reduzir a latência de inicialização a frio do aplicativo. O padrão é 0 (zero).

Por exemplo, se você definir o recurso "sempre pronto" para 2 em seu grupo de funções HTTP, a plataforma manterá duas instâncias sempre em execução e atribuídas ao seu aplicativo para suas funções HTTP no aplicativo. Essas instâncias estão processando suas execuções de função, mas dependendo das configurações de simultaneidade, a plataforma expande além dessas duas instâncias com instâncias sob demanda.

Para aprender a configurar instâncias sempre prontas, confira Definir números de instâncias sempre prontas.

Escalabilidade por função

A simultaneidade é um fator-chave que determina como os aplicativos de funções de Consumo Flex escalam. Para melhorar o desempenho de escala de aplicativos com vários tipos de gatilho, o plano de Consumo Flex fornece uma maneira mais determinística de escalar seu aplicativo com base em funções.

Este comportamento de escalabilidade por função faz parte da plataforma de hospedagem, então você não precisa configurar seu aplicativo ou mudar o código. Para mais informações, confira Escalabilidade por função no artigo chamado Escalabilidade orientada por eventos.

Na escalabilidade por função, gatilhos HTTP, Blob (Grade de Eventos) e Durable são casos especiais. Todas as funções disparadas por HTTP no aplicativo são agrupadas e colocas em escala de forma conjunta nas mesmas instâncias, e todas as funções disparadas Durable (gatilhos de Orquestração, Atividade ou Entidade) são agrupadas e dimensionadas juntas nas mesmas instâncias. Todas as outras funções no aplicativo são colocadas em escala de forma individual.

Simultaneidade

Simultaneidade refere-se ao número de execuções simultâneas de uma função em uma instância do seu aplicativo. Você pode definir um número máximo de execuções simultâneas que cada instância deve lidar a qualquer momento. Para obter mais informações, consulte Simultaneidade do gatilho HTTP.

A simultaneidade tem um efeito direto em como seu aplicativo escala, pois, em níveis de simultaneidade mais baixos, você precisa de mais instâncias para lidar com a demanda orientada por eventos de uma função. Embora seja possível controlar e ajustar a simultaneidade, fornecemos padrões que funcionam para a maioria dos casos. Para aprender a definir limites de simultaneidade para funções de gatilho HTTP, confira Definir limites de simultaneidade HTTP.

Implantação

As implantações no plano de Consumo Flex seguem um único caminho. Depois que o código do projeto é compilado e compactado em um pacote de aplicativos, ele é implantado em um contêiner de armazenamento de blobs. Após a inicialização, seu aplicativo recuperará o pacote e será executado nele. Por padrão, a mesma conta de armazenamento usada para armazenar metadados internos do host (AzureWebJobsStorage) também é usada como contêiner de implantação. No entanto, você pode usar uma conta de armazenamento alternativa ou escolher seu método de autenticação preferencial definir as configurações de implantação do aplicativo. Ao simplificar o caminho de implantação, não há mais a necessidade de configurações de aplicativo influenciarem o comportamento da implantação.

Cobrança

Existem dois modos pelos quais seus custos são determinados ao executar seus aplicativos no plano de Consumo Flexível. Cada modo é determinado por instância.

Modo de cobrança Descrição
Sob demanda Quando executado no modo sob demanda, você é cobrado apenas pelo tempo que o código da sua função está executando nas suas instâncias disponíveis. No modo sob demanda, não é necessário um número mínimo de instâncias. Você é cobrado por:

• A quantidade total de memória provisionada enquanto cada instância sob demanda está ativamente executando funções (em GB-segundos), menos uma concessão gratuita de GB-s por mês.
• O número total de execuções, menos uma concessão gratuita (número) de execuções por mês.
Sempre pronto Você pode configurar uma ou mais instâncias, atribuídas a tipos de gatilhos específicos (HTTP/Durable/Blob) e funções individuais, que estão sempre disponíveis para lidarem com solicitações. Quando você tem qualquer instância sempre pronta habilitada, você é cobrado por:

• A quantidade total de memória provisionada em todas as suas instâncias sempre prontas, conhecida como base (em GB-segundos).
• A quantidade total de memória provisionada durante o tempo que cada instância sempre pronta está ativamente executando funções (em GB-segundos).
• O número total de execuções.

Na cobrança sempre pronta, não há concessões gratuitas.

O período mínimo faturável de execução para ambos os modos de execução é de 1.000 ms. Após isso, o período de atividade faturável é arredondado para os 100 ms mais próximos. Você pode encontrar detalhes sobre os medidores de cobrança do plano de Consumo Flex na Referência monitoramento.

Para detalhes sobre como os custos são calculados quando você usa um plano de Consumo Flex, incluindo exemplos, confira Custos baseados no consumo.

Para conferir as informações mais atualizadas sobre preços de execução, custos de referência para o recurso "sempre pronto" e concessões gratuitas para execuções sob demanda, acesse a Página de preços do Azure Functions.

Versões de pilha de linguagem com suporte

Esta tabela mostra as versões de pilha de linguagem que têm suporte para aplicativos de Consumo Flex neste momento:

Pilha de linguagem Versão necessária
C# (modelo de processo isolado)1 .NET 82
Java Java 11, Java 17
Node.js Node 20
PowerShell PowerShell 7.4
Python Python 3.10, Python 3.11

1Modo de processo em C# não tem suporte. Em vez disso, você precisa migrar seu projeto de código .NET para executar no modelo de trabalho isolado.
2Requer a versão 1.20.0 ou posterior do Microsoft.Azure.Functions.Worker e versão 1.16.2 ou posterior do Microsoft.Azure.Functions.Worker.Sdk.

Cotas de memória de assinatura regional

Atualmente, cada região em uma determinada assinatura tem um limite de memória de 512.000 MB para todas as instâncias de aplicativos em execução em planos de Consumo Flex nessa região. Isso significa que, em uma determinada assinatura e região, você poderia ter qualquer uma das seguintes combinações de tamanhos e números máximos de instâncias, todas as quais atingem o limite atual de 512.000 MB:

Tamanho de memória de instância (MB) Números máximos de instância (por região)
2048 MB 250
4096 MB 125

Você poderia ter qualquer outra combinação de números tamanhos de memória de instância em uma determinada região, desde que fiquem abaixo do limite de 512.000 MB. Se seus aplicativos precisarem de uma cota maior, você poderá criar um tíquete de suporte para solicitar um aumento de cota.

Propriedades e configurações preteridas

No Consumo Flex, muitas das configurações de aplicativo padrão e as propriedades de configuração de site usadas no Bicep, nos modelos do ARM e no plano de controle geral foram preteridas ou movidas e não devem ser usadas ao automatizar a criação de recursos do aplicativo de funções. Para obter mais informações, confira Plano de Consumo Flex preteridos.

Considerações

Mantenha essas outras considerações em mente ao usar o plano de Consumo Flex durante a versão prévia atual:

  • Gatilhos: todos os gatilhos possuem suporte total, exceto os gatilhos Kafka, SQL do Azure e SignalR. O gatilho de armazenamento Blobs só oferece suporte ou Provedor de origem da Grade de Eventos. Os aplicativos de funções que são usam C# devem usar a versão [4.0.0, 5.0.0) do pacote de extensão ou uma versão posterior.
  • Regiões: nem todas as regiões têm suporte no momento. Para saber mais, confira Exibir regiões com suporte no momento.
  • implantações: atualmente, não há suporte para esses recursos relacionados à implantação:
    • Slots de implantação
    • Implantação contínua usando tarefas do Azure DevOps (AzureFunctionApp@2)
    • Implantação contínua usando o GitHub Actions (functions-action@v1)
  • Escala: a escala máxima mais baixa na versão prévia é 40. O valor mais alto com suporte no momento é 1000.

Opções de hospedagem do Azure FunctionsCrie e gerencie aplicativos de funções no plano de Consumo Flex