Partilhar via


Plano Premium das Funções do Azure

O plano Azure Functions Elastic Premium é uma opção de hospedagem em escala dinâmica para aplicativos funcionais. Para outras opções de plano de hospedagem, consulte Opções de hospedagem do Azure Functions.

Importante

O Azure Functions pode ser executado na plataforma do Serviço de Aplicativo do Azure. Na plataforma do Serviço de Aplicativo, os planos que hospedam aplicativos de função de plano Premium são chamados de planos Elastic Premium, com nomes de SKU como EP1. Se você optar por executar seu aplicativo de função em um plano Premium, certifique-se de criar 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 P1V2 (plano Premium V2 Pequeno), são, na verdade , planos de hospedagem dedicados. Por serem Dedicados e não Elastic Premium, os planos com nomes de SKU começando com "P" não serão dimensionados dinamicamente e poderão aumentar seus custos.

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

Quando usa o plano Premium, adiciona e remove instâncias do host Azure Functions com base no número de eventos recebidos, tal como o plano Flex Consumption e o plano Consumption. Pode implementar várias aplicações funcionais no mesmo plano Premium. Pode configurar o tamanho da instância de computação, o tamanho do plano base e o tamanho máximo do plano.

Faturação

Pagas pelo plano Premium com base no número de segundos de núcleo e memória alocada entre as instâncias. Este modelo de faturação difere do plano de Consumo, que cobra com base no consumo e execução de recursos por segundo. O plano Premium não tem custos de execução. Este modelo de faturação resulta num custo mensal mínimo por plano ativo, quer a função esteja ativa ou ociosa. Todas as aplicações funcionais num plano Premium partilham instâncias atribuídas. Para obter mais informações, consulte Preços do Azure Functions.

Nota

Todos os planos premium têm sempre pelo menos uma instância ativa e faturada.

Criar um plano Premium

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

Os artigos a seguir mostram como criar programaticamente um aplicativo de função com um plano Premium:

Elimine arranques a frio

Quando eventos ou execuções não ocorrem no plano de consumo, seu aplicativo pode ser dimensionado para zero instâncias. Quando surgem novos eventos, o sistema tem de criar uma nova instância que execute a sua aplicação. Especializar novas instâncias leva tempo, dependendo do aplicativo. Esta latência extra na primeira chamada é frequentemente chamada de arranque a frio.

O plano Premium fornece dois recursos que trabalham juntos para eliminar efetivamente arranques a frio nas funções: instâncias sempre prontas e instâncias pré-aquecidas. As instâncias sempre prontas são uma categoria de instâncias pré-alocadas que não são afetadas pelo escalonamento, e as instâncias pré-aquecidas servem como buffer durante o escalonamento devido a eventos HTTP.

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

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 as suas instâncias sempre prontas conseguem suportar, a aplicação adiciona mais instâncias conforme necessário, até ao 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 aplicações funcionais no mesmo plano Premium. Quando duas das tuas aplicações têm sempre o número de instâncias prontas definido para um, e a terceira app está definida para cinco, o número mínimo para todo o teu plano é cinco. Este número também reflete o número mínimo de casos em que o seu plano é faturado. O número máximo de instâncias sempre prontas suportadas por aplicação é 20.

Pode configurar o número de instâncias sempre prontas no portal Azure, selecionando a sua Function App, acessando a opção plano de Serviço de Aplicações>, escolhendo Aumentar Capacidade no menu à esquerda e editando as opções de Escalonamento de Aplicações. Na janela de edição do aplicativo de função, as instâncias sempre prontas são específicas para esse aplicativo.

Instâncias pré-aquecidas

A configuração de contagem de instâncias pré-aquecidas fornece instâncias aquecidas como um buffer durante eventos de ativação e dimensionamento HTTP. As instâncias pré-aquecidas continuam a armazenar em buffer até que o limite máximo de expansão seja atingido. A contagem padrão de instâncias pré-aquecidas é 1 e, na maioria dos cenários, mantém-se este valor como 1.

Considere um cenário menos comum, como uma aplicação a correr num contentor personalizado. Como os recipientes personalizados têm um tempo de aquecimento longo, poderá considerar aumentar esta margem de instâncias pré-aquecidas. Uma instância pré-aquecida torna-se ativa somente depois que todas as instâncias ativas estiverem em uso.

Você também pode definir um gatilho que é acionado 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 para que suas funções estejam prontas para começar a processar solicitações imediatamente. Para saber mais, consulte Gatilho de aquecimento do Azure Functions.

Considere este exemplo que mostra como instâncias sempre disponíveis e instâncias pré-aquecidas funcionam juntas. Um aplicativo de função premium tem duas instâncias sempre prontas configuradas e o padrão de uma instância pré-aquecida.

Captura de tela mostrando o gráfico de expansão.

  1. Quando o aplicativo está ocioso e nenhum evento é acionado, o aplicativo é provisionado e executado com duas instâncias. No momento, você é cobrado pelas duas instâncias sempre prontas, mas não é cobrado por uma instância pré-aquecida porque nenhuma instância pré-aquecida é alocada.
  2. À medida que seu aplicativo começa a receber tráfego HTTP, as solicitações são balanceadas entre as duas instâncias sempre prontas. Assim que essas duas instâncias começam a processar eventos, uma instância é adicionada para preencher o buffer inicializado. O aplicativo agora está sendo executado com três instâncias provisionadas: as duas instâncias sempre prontas e o terceiro buffer pré-aquecido e inativo. Você é cobrado pelas três instâncias.
  3. À medida que a carga aumenta e a tua aplicação precisa de mais instâncias para gerir tráfego HTTP, essa instância pré-aquecida muda para 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 dimensionamento e pré-aquecimento continua até que a contagem máxima de instâncias do aplicativo seja atingida ou a carga diminua, fazendo com que a plataforma volte a ser dimensionada após um período. Nenhuma instância é pré-aquecida ou ativada além do máximo.

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

Máximo de instâncias de aplicativo de função

Além da contagem máxima de intermitências do plano, você pode configurar um máximo por aplicativo. Configura o máximo da app usando o limite de escala da app. 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 funcionais implantados em um plano Premium podem aproveitar a integração de rede virtual para aplicativos Web. Quando configurado, seu aplicativo pode se comunicar com recursos em sua rede virtual ou protegido por meio de pontos de extremidade de serviço. Também pode usar restrições de IP na aplicação para restringir o tráfego recebido.

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

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

Escala elástica rápida

A mesma lógica de escalabilidade rápida dos planos Flex Consumption e Consumption adiciona automaticamente mais instâncias de computação para a sua aplicação. Os aplicativos no mesmo Plano do Serviço de Aplicativo são dimensionados independentemente uns dos outros com base nas necessidades de um aplicativo individual. No entanto, os aplicativos do Functions no mesmo Plano do Serviço de Aplicativo compartilham recursos de VM para ajudar a reduzir custos, quando possível. O número de aplicativos associados a uma VM depende da pegada de cada aplicativo e do tamanho da VM.

Para saber mais sobre como funciona o dimensionamento, consulte Dimensionamento controlado por eventos no Azure Functions.

Maior duração de execução

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

  • As atualizações da plataforma podem desencadear um desligamento gerenciado e interromper a execução da função com um período de carência de 10 minutos.
  • Um temporizador de inatividade interrompe o funcionamento após 60 minutos sem novas execuções.
  • O comportamento de expansão pode causar o desligamento do trabalhador após 60 minutos.
  • As trocas de slots podem encerrar execuções nos slots de origem e de destino durante a troca.

Migração

Se você tiver um aplicativo de função existente, poderá usar 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, veja Migração de planos.

Esta migração não é suportada no Linux.

Configurações do plano Premium

Quando crias o plano, defines duas definições de tamanho do plano: o número mínimo de instâncias (ou tamanho do plano) e o limite máximo de rajadas.

Se a sua aplicação precisar de mais instâncias para além das instâncias sempre prontas, pode continuar a escalar até o número de instâncias atingir o limite máximo de burst do plano, ou o limite máximo de scale-out da app, se o definir. Pagas pelas instâncias apenas enquanto estão a correr e são atribuídas a ti, por segundo. A plataforma faz o seu melhor esforço para dimensionar seu aplicativo para os limites máximos definidos.

Pode configurar o tamanho do plano no portal Azure ao selecionar a sua Function App implementada nesse plano, acedendo ao menu Plano do Serviço de Aplicações>Escalar à esquerda e escolhendo um tamanho de plano maior. Para aumentar o limite máximo de rajadas, escolha a opção Scale Out e edite a opção Plan Scale Out>Maximum burst.

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 pelas aplicações 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 cinco. A Aplicação A corre em todas as cinco instâncias, e a Aplicação B em duas.

Importante

Você é cobrado por cada instância alocada na contagem mínima de instâncias, independentemente de as funções estarem 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 ocorre com o melhor esforço. É possível, embora improvável, que em um horário específico a expansão possa ser atrasada se outras instâncias não estiverem disponíveis. Ao definir um mínimo maior do que o mínimo calculado automaticamente, você reserva instâncias antes da expansão.

Pode configurar as instâncias mínimas no portal Azure selecionando a App de Função implementada nesse plano, indo ao menu à esquerda, na opção Plano do Serviço de Aplicações>Escalonar, e editando a opção Escalonamento do Plano>Instâncias Mínimas.

SKUs de instância disponíveis

Quando criar ou escalar o seu plano, escolha entre três tamanhos de instância. És faturado pelo número total de núcleos e memória que forneces, por segundo, por cada instância que te é atribuída. A sua aplicação pode ser dimensionada automaticamente para várias instâncias, conforme necessário.

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

Considerações sobre o uso de memória

A execução em uma máquina com mais memória nem sempre significa que seu aplicativo de função usa toda a memória disponível.

Por exemplo, um aplicativo de função JavaScript é limitado pelo limite de memória padrão no Node.js. Para aumentar esse limite de memória fixa, adicione a configuração languageWorkers:node:arguments do aplicativo com o 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 de Bitness em 64 BitDefinições Gerais.

Expansão máxima da região

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

País/Região Mac OS Aplicações Linux
Austrália Central 100 20
Austrália Central 2 100 Não Disponível
Leste da Austrália 100 40
Austrália Sudeste 100 20
Sul do Brasil 100 20
Canadá Central 100 100
Índia Central 100 20
E.U.A. Central 100 100
China Leste 2 20 20
China Norte 2 20 20
Norte da China 3 20 20
Ásia Leste 100 20
E.U.A. Leste 100 100
E.U.A. Leste 2 80 100
Centro de França 100 60
Alemanha Centro-Oeste 100 20
Israel Central 100 20
Norte de Itália 100 20
Leste do Japão 100 20
Oeste do Japão 100 20
Jio, Oeste da Índia 100 20
Coreia Central 100 20
Sul da Coreia 40 20
México Central 20 20
E.U.A. Centro-Norte 100 20
Europa do Norte 100 100
Leste da Noruega 100 20
Norte da África do Sul 100 20
Oeste da África do Sul 20 20
E.U.A. Centro-Sul 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 E.A.U. 100 100
Sul do Reino Unido 100 100
Oeste do Reino Unido 100 20
US Gov - Arizona 20 20
USGov Texas 20 Não Disponível
Governo dos Estados Unidos da Virgínia 80 20
E.U.A. Centro-Oeste 100 20
Europa Ocidental 100 100
Índia Ocidental 100 20
E.U.A. Oeste 100 100
E.U.A. Oeste 2 100 20
E.U.A. Oeste 3 100 20

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