Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
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. Ele oferece mais flexibilidade e personalização introduzindo rede privada, seleção de tamanho de memória de instância e recursos de expansão rápida/grande ainda com base em um modelo sem servidor .
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.
Benefits
O Plano Consumo Flex baseia-se nos pontos fortes do plano de consumo sem servidor, que incluem escalonamento dinâmico e cobrança baseada em execução. Com o Consumo Flex, você também ganha estes recursos extras:
- Tempos de início a frio reduzidos: habilite instâncias sempre prontas para atingir tempos de início a frio mais rápidos em comparação com o plano de consumo.
- Suporte à rede virtual: a integração de rede virtual permite que seu aplicativo sem servidor seja executado em uma rede virtual.
- Dimensionamento por Função: cada função no seu aplicativo escala independentemente com base em sua carga de trabalho, o que pode resultar em uma alocação de recursos mais eficiente.
- Tratamento de simultaneidade aprimorado: melhor manipulação de execuções simultâneas com configurações de simultaneidade configuráveis por função.
- Configuração de Memória Flexível: o Consumo Flex oferece várias opções de tamanho de instância , permitindo que você otimize para seus requisitos específicos de carga de trabalho.
Esta tabela ajuda você a comparar diretamente os recursos do Consumo Flex com o plano de hospedagem de Consumo:
| Feature | Consumo | Consumo Flexível |
|---|---|---|
| Escala para zero | ✅ Sim | ✅ Sim |
| Comportamento de escala | Controlado por eventos | Controlado por eventos (rápido) |
| Redes virtuais | ❌ Sem suporte | ✅ Com suporte |
| Computação dedicada (mitigar inicializações a frio) | ❌ Nenhum | ✅ Instâncias sempre prontas (opcional) |
| Billing | Somente tempo de execução | Tempo de execução + instâncias sempre prontas |
| Instâncias de expansão (máx.) | 200 | 1000 |
Para uma comparação completa do plano Flex Consumo com o plano Consumo e todos os outros tipos de planos e hospedagem, veja escala de funções e opções de hospedagem.
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.
Tamanhos de 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. Veja Faturamento para saber como os tamanhos de memória da instância afetam os custos do seu aplicativo de função.
Atualmente, Flex Consumption oferece estas opções de tamanho de instância:
| Memória da instância (MB) | Núcleos de CPU |
|---|---|
| 512 | 0,25 |
| 2048 | 1 |
| 4096 | 2 |
Observação
Os valores principais da CPU mostrados são alocações típicas para instâncias com o tamanho de memória especificado. No entanto, as instâncias iniciais podem receber alocações de núcleo ligeiramente diferentes para melhorar o desempenho.
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. Os tamanhos de memória das instâncias de 512 MB e 4.096 MB estão disponíveis para cenários que melhor se adequam aos requisitos de concorrência ou potência de processamento do aplicativo. 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 mais informações, confira 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.
Escalonamento 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.
Esse comportamento de dimensionamento por função faz parte da plataforma de hospedagem, portanto, você não precisa configurar seu aplicativo ou alterar o código. Para obter mais informações, consulte o dimensionamento por função no artigo de dimensionamento controlado por eventos.
No dimensionamento por função, as decisões são tomadas para determinados gatilhos de função com base em agregações de grupo. Esta tabela mostra o conjunto definido de grupos de dimensionamento de funções:
| Grupos de escala | Gatilhos em grupo | Valor das configurações |
|---|---|---|
| Gatilhos HTTP |
HTTP Trigger Gatilho do SignalR |
http |
| Gatilhos de armazenamento de blobs (Baseado em Event Grid) |
Gatilho de armazenamento de blobs | blob |
| Durable Functions |
Gatilho de orquestração Gatilho de atividade Gatilho de entidade |
durable |
Todas as outras funções no aplicativo são dimensionadas individualmente em seu próprio conjunto de instâncias, que são referenciadas usando a convenção function:<NAMED_FUNCTION>.
Instâncias sempre prontas
O Flex Consumo inclui um recurso sempre pronto que permite que você escolha instâncias que estão sempre em execução e atribuídas a cada um dos seus grupos de escala por função ou funções. Sempre pronto é 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. Por exemplo, para reduzir a latência da 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.
Não menos que duas instâncias sempre prontas podem ser configuradas por função ou grupo de funções enquanto a redundância de zona está habilitada.
Para aprender a configurar instâncias sempre prontas, confira Definir números de instâncias sempre prontas.
Concurrency
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. 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. Para saber como definir limites de simultaneidade para funções de gatilho não HTTP, veja Dimensionamento de base de destino.
Deployment
As implantações no plano de Consumo Flexível seguem um único caminho e não há mais a necessidade de configurações de aplicativo influenciarem o comportamento da implantação. 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. Na inicialização, seu aplicativo obtém o pacote e executa o código da função a partir desse pacote. 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.
Implantações sem tempo de inatividade
Observação
Implantações de tempo de inatividade zero com atualizações sem interrupção estão atualmente em versão prévia pública.
O Flex Consumption proporciona implantação sem interrupção por meio de atualizações contínuas como a estratégia de atualização de site, permitindo que implantações de código e alterações de configuração sejam aplicadas gradualmente em instâncias sem interromper a execução da função. Outros planos de hospedagem usam slots de implantação para minimizar o tempo de inatividade durante as implantações. Para obter opções de implantação em todos os planos de hospedagem, consulte otimizar implantações.
Billing
Existem dois modos pelos quais seus custos são determinados ao executar seus aplicativos no plano de Consumo Flex. Cada modo é determinado por instância.
| Modo de cobrança | Description |
|---|---|
| Sob Demanda | Ao executar no modo por demanda, você é cobrado somente pelo tempo em que seu código de função é executado em 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 gatilho específicos (HTTP/Durable/Blob) e funções individuais, que estão sempre disponíveis para lidar com solicitações. Quando você tem alguma instância sempre pronta habilitada, você será cobrado por: • A quantidade total de memória provisionada em todas as suas instâncias sempre prontas, conhecidas como a linha de base (em GB-segundos). • A quantidade total de memória provisionada durante o tempo em que cada instância sempre pronta está executando ativamente funções (em gb-seconds). • O número total de execuções. No faturamento sempre pronto, não há subsídios gratuitos. |
Para obter as informações mais atualizadas sobre preços de execução, custos de linha de base sempre prontos e concessões gratuitas para execuções sob demanda, veja a página de preços do Azure Functions.
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 faturamento do plano Flex de Consumo na Referência de Monitoramento.
Para obter detalhes sobre como os custos são calculados ao executar utilizando um plano de Consumo Flex, incluindo exemplos, consulte Custos baseados no consumo e Visualização de dados relacionados ao custo.
Versões de pilha de linguagem com suporte
Essa tabela mostra as versões de pilha de idiomas que são atualmente suportadas para aplicativos Flex Consumo:
| Pilha de linguagem | Versão necessária |
|---|---|
| C# (modo de processo isolado)1 | .NET 82, .NET 93 |
| Java | Java 11, Java 17, Java 21 |
| Node.js | Node.js 20, Node.js 22 |
| PowerShell | PowerShell 7.4 |
| Python | Python 3.10, Python 3.11, Python 3.12 |
- Não há suporte para o modo em processo do C#. Em vez disso, você precisa migrar seu projeto de código .NET para executar no modelo de trabalho isolado.
- Requer a versão
1.20.0ou posterior do Microsoft.Azure.Functions.Worker e versão1.16.2ou posterior do Microsoft.Azure.Functions.Worker.Sdk. - Requer a versão
2.0.0ou posterior de Microsoft.Azure.Functions.Worker e Microsoft.Azure.Functions.Worker.Sdk.
Cotas de memória de assinatura regional
O plano de Consumo Flex tem uma cota baseada em memória que limita a quantidade de computação que todos os seus aplicativos de Consumo Flex podem usar ao mesmo tempo em uma região e assinatura específicas. Imagine que você tenha um bucket de memória medido em GB ou núcleos de CPU para toda a sua assinatura dentro de uma região. Todos os seus aplicativos de Consumo Flexível nessa região compartilham esse bucket. Se seus aplicativos de Consumo Flexível tentarem usar mais do que a cota permite, algumas execuções poderão ser atrasadas ou limitadas ao dimensionamento, mas você não será impedido de criar ou implantar aplicativos.
Atualmente, cada região em uma determinada assinatura tem uma cota padrão de no máximo 512,000 MB ou 250 núcleos para todas as instâncias de aplicativos em execução em planos de Consumo Flexível. Essas cotas significam que, em uma determinada assinatura e região, você pode ter qualquer combinação de tamanhos e contagens de memória de instância, desde que permaneçam abaixo dos limites de cota. Por exemplo, em cada um desses cenários, a cota é atingida e os aplicativos na região param de dimensionar:
- Você tem um aplicativo de 512 MB dimensionado para 250 instâncias e um segundo aplicativo de 512 MB dimensionado para 750 instâncias.
- Você tem um aplicativo de 512 MB escalado para 1.000 instâncias.
- Você tem um aplicativo de 2.048 MB dimensionado para 100 e um segundo aplicativo de 2.048 MB dimensionado para 150 instâncias
- Você tem um aplicativo de 2.048 MB que foi dimensionado para 250 instâncias
- Você tem um aplicativo de 4.096 MB que pode ser dimensionado para 125 instâncias
- Você tem um aplicativo de 4.096 MB dimensionado para 100 e um aplicativo de 2.048 MB dimensionado para 50 instâncias
Aplicativos de Consumo flexível dimensionados para zero ou instâncias marcadas para serem dimensionadas e excluídas não são contabilizados na cota. Essa cota pode ser aumentada para permitir que os aplicativos do Consumo Flex sejam dimensionados ainda mais, dependendo dos seus requisitos. Se seus aplicativos exigirem uma cota maior, crie um tíquete de suporte.
Propriedades e configurações preteridas
No plano Consumo Flexível, muitas das configurações de aplicativo padrão e as propriedades de configuração de site 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, veja Descontinuações do plano de Consumo Flexível.
Considerations
Lembre-se das seguintes considerações ao usar o plano de Consumo Flex:
- Aplicativos por Plano: apenas um aplicativo é permitido por plano de consumo flex.
-
Host: Há um tempo limite de 30 segundos para inicialização do aplicativo. Quando seu aplicativo de função demora mais de 30 segundos para iniciar, você pode ver entradas
System.TimeoutExceptionrelacionadas ao gRPC registradas. No momento, não é possível configurar esse tempo limite. Para obter mais informações, consulte este item de trabalho do host. - Durable Functions: O Armazenamento do Azure é atualmente o único provedor de armazenamento com suporte para Durable Functions quando hospedado no plano de consumo flex. Confira as recomendações ao hospedar o Durable Functions no plano de consumo flex.
-
Integração de rede virtual Verifique se o provedor de recursos do Azure
Microsoft.Appestá habilitado para sua assinatura seguindo estas instruções. A delegação de sub-rede exigida pelos aplicativos Flex Consumo éMicrosoft.App/environments. -
Gatilhos: embora todos os gatilhos sejam totalmente compatíveis em um plano de Consumo Flexível, o gatilho de Armazenamento de Blobs só dá suporte à origem da Grade de Eventos. Os aplicativos de função não 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: no momento, não há suporte para slots de implantação.
-
Escala: A menor escala máxima é atualmente
40. O valor mais alto com suporte no momento é1000. - Dependências gerenciadas: Dependências gerenciadas no PowerShell não são suportadas pelo Flex Consumption. Em vez disso, você deve carregar módulos com o conteúdo do aplicativo.
- Certificados: Atualmente, não há suporte para o carregamento de certificados com a configuração do aplicativo WEBSITE_LOAD_CERTIFICATES, certificados gerenciados, certificados de serviço de aplicativo e outros recursos baseados em certificado de plataforma, como endToEndEncryptionEnabled.
-
Fusos horários: As configurações do aplicativo
WEBSITE_TIME_ZONEeTZnão têm suporte no momento quando são executadas no plano de Consumo Flex.
Artigos relacionados
Opções de hospedagem do Azure FunctionsCrie e gerencie aplicativos de funções no plano de Consumo Flex