Compartilhar via


Plano Premium do Azure Functions

O plano Premium Elástico do Azure Functions é uma opção de hospedagem de escala dinâmica para aplicativos de funções. Para outras opções de plano de hospedagem, consulte as opções de hospedagem do Azure Functions.

Importante

O Azure Functions pode ser executado na plataforma de Serviço de Aplicativo do Azure. Na plataforma do Serviço de Aplicativo, os planos que hospedam Premium aplicativos de função de plano são chamados de planos Premium Elásticos, com nomes de SKU como EP1. Se optar por executar seu aplicativo de funções em um plano Premium, crie um plano com um nome de SKU que comece com "E", como EP1. Os nomes de SKU do Plano do Serviço de Aplicativo que começam com "P", como o P1V2 (Plano Premium V2 Small), são, na verdade, Planos de hospedagem Dedicados. Como eles são Dedicados e não Elásticos Premium, os planos com nomes de SKU começando com "P" não serão dimensionados dinamicamente e poderão aumentar os custos.

A hospedagem de plano Premium oferece os seguintes benefícios para suas funções:

Ao usar o plano Premium, você adiciona e remove instâncias do host do Azure Functions com base no número de eventos de entrada, assim como o plano de consumo flex e o plano de consumo. Você pode implantar vários aplicativos de funções no mesmo plano Premium. Você pode configurar o tamanho da instância de computação, o tamanho do plano base e o tamanho máximo do plano.

Cobrança

Você paga pelo plano Premium com base no número de segundos principais e na memória alocada entre instâncias. Esse modelo de cobrança é diferente do plano de Consumo, que cobra com base no consumo de recursos por segundo e nas execuções. O plano Premium não tem nenhum custo de execução. Esse modelo de cobrança resulta em um custo mensal mínimo por plano ativo, seja a função ativa ou ociosa. Todos os aplicativos de funções em um plano Premium compartilham instâncias alocadas. Para saber mais, confira Preços do Azure Functions.

Observação

Todo plano premium sempre tem, pelo menos, uma instância ativa (cobrada).

Criar um plano Premium

Quando você cria um aplicativo de funções no portal do Azure, o plano de Consumo é o padrão. Para criar um aplicativo de funções executado em um plano Premium, você deve criar ou escolher explicitamente um plano de hospedagem Premium do Azure Functions usando uma das versões do Elastic Premium . Você hospeda o aplicativo de funções que cria neste plano. O portal do Azure facilita a criação concomitante do plano Premium e do aplicativo de funções. Você pode executar mais de um aplicativo de funções no mesmo plano Premium, mas eles devem ser executados no mesmo sistema operacional (Windows ou Linux).

Os seguintes artigos mostram como criar de forma programática um aplicativo de funções com um plano Premium:

Eliminar inicializações a frio

Quando os eventos ou execuções não ocorrem no plano de Consumo, seu aplicativo poderá ser dimensionado para zero instâncias. Quando novos eventos chegam, o sistema deve criar uma nova instância que execute seu aplicativo. A especialização de novas instâncias leva tempo, dependendo do aplicativo. Essa latência extra na primeira chamada geralmente é chamada de início frio.

O plano Premium fornece dois recursos que funcionam juntos para eliminar efetivamente o cold start em suas funções: instâncias sempre prontas e instâncias pré-aquecidas. As instâncias sempre prontas constituem uma categoria de instâncias pré-alocadas não afetadas pelo dimensionamento, e as instâncias pré-aquecidas funcionam como um buffer à medida que você as dimensiona devido a eventos de HTTP.

Quando os eventos começam a acionar o aplicativo, o sistema os encaminha primeiro para as instâncias sempre prontas. À medida que a função se torna ativa devido a eventos HTTP, outras instâncias se aquecem como um buffer. Essas instâncias que geram um buffer são chamadas de instâncias pré-aquecidas. Esse buffer reduz a inicialização a frio para novas instâncias necessárias durante o dimensionamento.

Instâncias sempre prontas

No plano Premium, você pode ter seu aplicativo sempre pronto em um número especificado de instâncias. Seu aplicativo é executado continuamente nessas instâncias, independentemente da carga. Se a carga exceder o que suas instâncias sempre prontas podem manipular, o aplicativo adicionará mais instâncias conforme necessário, até o máximo especificado.

Essa configuração no nível do aplicativo também controla as instâncias mínimas do seu plano. Por exemplo, considere três aplicativos de funções no mesmo plano Premium. Quando dois de seus aplicativos sempre tiverem a contagem de instâncias pronta definida como uma e o terceiro aplicativo for definido como cinco, o número mínimo para todo o plano será cinco. Esse número também reflete o número mínimo de instâncias pelas quais seu plano é cobrado. O número máximo de instâncias suportadas por aplicativo que estão sempre prontas é 20.

Você pode configurar o número de instâncias sempre prontas no portal do Azure selecionando seu Aplicativo de Funções, acessando a opção de menuScale Out do > do Serviço de Aplicativo à esquerda e editando as opções de Expansão de Aplicativos. Na janela editar do aplicativo de funções, as instâncias sempre prontas são específicas para esse aplicativo.

Instâncias pré-aquecidas

A configuração do número de instâncias pré-aquecidas fornece instâncias aquecidas que atuam como um buffer durante os eventos de ativação e o dimensionamento de HTTP. As instâncias pré-aquecidas continuam no buffer até que o limite máximo de expansão seja atingido. A contagem padrão de instâncias pré-aquecidas é 1 e, para a maioria dos cenários, mantenha esse valor como 1.

Considere um cenário menos comum, como um aplicativo em execução em um contêiner personalizado. Como os contêineres personalizados têm um tempo de aquecimento longo, você pode considerar aumentar esse buffer de instâncias pré-aquecidas. Uma instância pré-aquecida se torna ativa somente depois que todas as instâncias ativas estiverem em uso.

Você também pode definir um gatilho de aquecimento que é executado durante o processo de pré-aquecimento. Você pode usar um gatilho de aquecimento para pré-carregar dependências personalizadas durante o processo de pré-aquecimento de forma que suas funções fiquem prontas para começar a processar solicitações imediatamente. Para saber mais, veja Gatilhos de aquecimento do Azure Functions.

Veja esse exemplo que mostra como as instâncias sempre prontas e as instâncias pré-aquecidas funcionam juntas. Um aplicativo de funções premium tem duas instâncias sempre prontas configuradas e o número padrão de uma instância pré-aquecida.

Captura de tela mostrando o grafo de expansão.

  1. Quando o aplicativo está ocioso e nenhum evento está sendo acionado, o aplicativo é provisionado e executado com duas instâncias. No momento, a cobrança é feita pelas duas instâncias sempre prontas, mas não é cobrado por uma instância pré-aquecida, já que nenhuma instância pré-aquecida é alocada.
  2. À medida que seu aplicativo começa a receber tráfego HTTP, as solicitações são balanceadas por carga entre as duas instâncias sempre prontas. Assim que essas duas instâncias iniciam o processamento de eventos, uma instância é adicionada para preencher o buffer pré-armado. O aplicativo agora está sendo executado com três instâncias provisionadas: as duas instâncias sempre prontas e a terceira que é um buffer pré-aquecido e inativo. A cobrança é feita pelas três instâncias.
  3. À medida que a carga aumenta e seu aplicativo precisa de mais instâncias para lidar com o tráfego HTTP, essa instância pré-aquecida é convertida em uma instância ativa. A carga HTTP agora é roteada para todas as três instâncias e uma quarta instância é provisionada instantaneamente para preencher o buffer pré-aquecido.
  4. Essa sequência de ampliação e pré-aquecimento continua até que o número máximo de instâncias do aplicativo seja atingido ou a carga diminua, fazendo com que a plataforma seja reduzida após um determinado período. Nenhuma instância é pré-aquecida ou ativada além do número máximo.

Não é possível alterar a configuração de contagem de instâncias pré-aquecidas no portal. Em vez disso, você deve usar a CLI do Azure ou o Azure PowerShell.

Máximo de instâncias do aplicativo de funções

Além da contagem máxima de intermitências do plano, você pode configurar um máximo por aplicativo. Configure o máximo do aplicativo usando o limite de escala do aplicativo. O limite máximo de expansão do aplicativo não pode exceder o máximo de instâncias de intermitência do plano.

Conectividade de rede privada

Os aplicativos de funções implantados em um plano Premium podem tirar proveito da integração de rede virtual para aplicativos web. Quando configurado, seu aplicativo pode se comunicar com recursos dentro da sua rede virtual ou protegidos por meio de pontos de extremidade de serviço. Você também pode usar restrições de IP no aplicativo para restringir o tráfego de entrada.

Ao atribuir uma sub-rede ao seu aplicativo de funções em um plano Premium, você precisa de uma sub-rede com endereços IP suficientes para cada instância em potencial. Você precisa de um bloco IP com pelo menos 100 endereços disponíveis.

Para obter mais informações, consulte Integrar o Azure Functions a uma rede virtual.

Dimensionamento elástico rápido

A mesma lógica de dimensionamento rápido dos planos de Consumo Flexível e Consumo adiciona automaticamente mais instâncias de computação para seu aplicativo. Os aplicativos no mesmo Plano do Serviço de Aplicativo escalam de forma independente, com base nas necessidades de um aplicativo individual. No entanto, os aplicativos de Funções no mesmo Plano do Serviço de Aplicativo compartilham recursos da VM para ajudar a reduzir os custos, quando possível. O número de aplicativos associados a uma VM depende do volume de memória de cada aplicativo e do tamanho da VM.

Para saber mais sobre como a colocação em escala funciona, consulte Colocação em escala controlada por eventos no Azure Functions.

Duração da execução mais longa

As funções em um plano de consumo são limitadas a 10 minutos para uma única execução. No plano Premium, o padrão de duração da execução é de 30 minutos para evitar execuções sem controle. No entanto, é possível modificar a configuração de host.json a fim de tornar a duração ilimitada para aplicativos do plano Premium, com as seguintes limitações:

  • As atualizações da plataforma podem acionar um desligamento gerenciado e interromper a execução da função com um período de tolerância de 10 minutos.
  • Um temporizador ocioso interrompe o trabalho após 60 minutos sem novas execuções.
  • Comportamento de redução pode causar o desligamento do trabalhador após 60 minutos.
  • As trocas de slot podem encerrar execuções nos slots de origem e destino durante a troca.

Migração

Se você possuir um aplicativo de funções existente, use os comandos da CLI do Azure para migrar seu aplicativo entre um plano de Consumo e um plano Premium no Windows. Os comandos específicos dependem da direção da migração. Para obter mais informações, confira Plano de migração.

Não há suporte para essa migração no Linux.

Configurações do plano Premium

Ao criar o plano, você define duas configurações de tamanho de plano: o número mínimo de instâncias (ou tamanho do plano) e o limite máximo de intermitência.

Se o seu aplicativo precisar de mais instâncias além das instâncias sempre prontas, ele poderá continuar a expandir até que o número de instâncias atinja o limite máximo de aumento do plano ou o limite máximo de expansão do aplicativo, se você o definir. Você paga por instâncias apenas enquanto elas estão em execução e alocadas a você, por segundo. A plataforma se esforça ao máximo para escala de seu aplicativo até os limites máximos definidos.

Você pode configurar o tamanho do plano no portal do Azure selecionando seu Aplicativo de Funções implantado nesse plano, acessando o menu Escalar Verticalmente nas opções de > à esquerda e escolhendo um tamanho de plano maior. Para aumentar o limite máximo de rajada, escolha a opção de menu Expandir e edite a opção Expansão do plano>Rajada máxima.

O mínimo para cada plano Premium é de pelo menos uma instância. O número mínimo real de instâncias é determinado com base nas instâncias sempre prontas solicitadas por aplicativos no plano. Por exemplo, se o aplicativo A solicitar cinco instâncias sempre prontas e o aplicativo B solicitar duas instâncias sempre prontas no mesmo plano, o tamanho mínimo do plano será determinado como sendo cinco. O aplicativo A é executado em todas as cinco instâncias e o aplicativo B é executado em duas.

Importante

Você recebe cobrança por cada instância alocada na contagem mínima de instâncias se as funções estão ou não em execução.

Na maioria das circunstâncias, esse mínimo calculado automaticamente é suficiente. No entanto, o dimensionamento além do mínimo é realizado da melhor forma possível. É possível, embora seja improvável, que uma expansão em um momento específico possa ser adiada se as instâncias adicionais estiverem indisponíveis. Ao definir um mínimo maior que o mínimo calculado automaticamente, você reservará as instâncias da expansão com antecedência.

Você pode configurar as instâncias mínimas no portal do Azure selecionando seu Aplicativo de Funções implantado nesse plano, acessando a opção de menuScale Out do > do Serviço de Aplicativo à esquerda e editando a opção Plan Scale out>Minimum Instances.

SKUs da instância disponível

Ao criar ou dimensionar seu plano, escolha entre três tamanhos de instância. Você é cobrado pelo número total de núcleos e memória que você provisiona, por segundo, para cada instância alocada a você. Seu aplicativo pode escalar horizontalmente de forma automática para várias instâncias, conforme necessário.

SKU Núcleos Memória Armazenamento
EP1 1 3,5 GB 250 GB
EP2 2 7 GB 250 GB
EP3 4 14 GB 250 GB

Considerações sobre o uso de memória

A execução em um computador com mais memória nem sempre significa que seu aplicativo de funções usa toda a memória disponível.

Por exemplo, um aplicativo de funções JavaScript é restrito pelo limite de memória padrão em Node.js. Para aumentar esse limite de memória fixa, adicione a configuração do aplicativo languageWorkers:node:arguments com um valor de --max-old-space-size=<max memory in MB>.

Para planos com mais de 4 GB de memória, defina a Configuração da Plataforma bitness como 64 Bit em configurações gerais.

Expansão máxima da região

A tabela a seguir lista os valores máximos de expansão com suporte no momento para um único plano em cada região e configuração do sistema operacional:

Região Windows Linux
Austrália Central 100 20
Austrália Central 2 100 Não disponível
Leste da Austrália 100 40
Sudeste da Austrália 100 20
Sul do Brasil 100 20
Canadá Central 100 100
Índia Central 100 20
EUA Central 100 100
Leste da China 2 20 20
Norte da China 2 20 20
Norte da China 3 20 20
Ásia Oriental 100 20
Leste dos EUA 100 100
Leste dos EUA 2 80 100
França Central 100 60
Centro-oeste da Alemanha 100 20
Israel Central 100 20
Norte da Itália 100 20
Leste do Japão 100 20
Oeste do Japão 100 20
Oeste da Índia JIO 100 20
Coreia Central 100 20
Sul da Coreia 40 20
México Central 20 20
Centro-Norte dos EUA 100 20
Europa Setentrional 100 100
Leste da Noruega 100 20
Norte da África do Sul 100 20
Oeste da África do Sul 20 20
Centro-Sul dos EUA 100 100
Sul da Índia 100 Não disponível
Sudeste Asiático 100 20
Espanha Central 20 20
Norte da Suíça 100 20
Oeste da Suíça 100 20
Norte dos EAU 100 100
Sul do Reino Unido 100 100
Oeste do Reino Unido 100 20
Gov. dos EUA – Arizona 20 20
Gov. dos EUA – Texas 20 Não disponível
US Gov - Virgínia 80 20
Centro-oeste dos EUA 100 20
Oeste da Europa 100 100
Índia Ocidental 100 20
Oeste dos EUA 100 100
Oeste dos EUA 2 100 20
Oeste dos EUA 3 100 20

Para obter mais informações, veja Produtos disponíveis por região.