Escala e hospedagem no Azure FunctionsAzure Functions scale and hosting

Ao criar um aplicativo de funções no Azure, você deve escolher um plano de hospedagem para seu aplicativo.When you create a function app in Azure, you must choose a hosting plan for your app. Há três planos de hospedagem básicos disponíveis para Azure Functions: plano de consumo, plano Premiume plano dedicado (serviço de aplicativo).There are three basic hosting plans available for Azure Functions: Consumption plan, Premium plan, and Dedicated (App Service) plan. Todos os planos de hospedagem estão geralmente disponíveis (GA) em máquinas virtuais Linux e Windows.All hosting plans are generally available (GA) on both Linux and Windows virtual machines.

O plano de hospedagem que você escolher ditará os seguintes comportamentos:The hosting plan you choose dictates the following behaviors:

  • Como seu aplicativo de funções é dimensionado.How your function app is scaled.
  • Os recursos disponíveis para cada instância do aplicativo de funções.The resources available to each function app instance.
  • Suporte para recursos avançados, como a conectividade de rede virtual do Azure.Support for advanced features, such as Azure Virtual Network connectivity.

Os planos de consumo e Premium adicionam capacidade de computação automaticamente quando seu código está em execução.Both Consumption and Premium plans automatically add compute power when your code is running. Seu aplicativo é escalado horizontalmente quando necessário para lidar com a carga e dimensionado quando o código para de ser executado.Your app is scaled out when needed to handle load, and scaled in when code stops running. Para o plano de consumo, você também não precisa pagar por VMs ociosas ou reservar a capacidade antecipadamente.For the Consumption plan, you also don't have to pay for idle VMs or reserve capacity in advance.

O plano Premium fornece recursos adicionais, como instâncias de computação Premium, a capacidade de manter instâncias quentes indefinidamente e conectividade VNet.Premium plan provides additional features, such as premium compute instances, the ability to keep instances warm indefinitely, and VNet connectivity.

O plano do serviço de aplicativo permite que você aproveite a infraestrutura dedicada, que você gerencia.App Service plan allows you to take advantage of dedicated infrastructure, which you manage. Seu aplicativo de funções não é dimensionado com base em eventos, o que significa que ele nunca é dimensionado para zero.Your function app doesn't scale based on events, which means it never scales in to zero. (Requer que o Always on esteja habilitado.)(Requires that Always on is enabled.)

Para obter uma comparação detalhada entre os vários planos de hospedagem (incluindo a hospedagem baseada em kubernetes), consulte a seção comparação de planos de hospedagem.For a detailed comparison between the various hosting plans (including Kubernetes-based hosting), see the Hosting plans comparison section.

Plano de consumoConsumption plan

Quando você estiver usando o plano de consumo, as instâncias do host Azure Functions serão adicionadas e removidas dinamicamente com base no número de eventos de entrada.When you're using the Consumption plan, instances of the Azure Functions host are dynamically added and removed based on the number of incoming events. Esse plano sem servidor é escalado automaticamente e você é cobrado pelos recursos de computação apenas durante a execução das funções.This serverless plan scales automatically, and you're charged for compute resources only when your functions are running. Em um plano de consumo, a execução de uma função expire após um período configurável.On a Consumption plan, a function execution times out after a configurable period of time.

A cobrança baseia-se no número de execuções, no tempo de execução e na memória usada.Billing is based on number of executions, execution time, and memory used. O uso é agregado em todas as funções em um aplicativo de funções.Usage is aggregated across all functions within a function app. Para saber mais, confira a página de preços do Azure Functions.For more information, see the Azure Functions pricing page.

O plano de Consumo é o plano de hospedagem padrão e oferece os seguintes benefícios:The Consumption plan is the default hosting plan and offers the following benefits:

  • Pague apenas quando suas funções forem executadasPay only when your functions are running
  • Escale horizontalmente de forma automática, mesmo durante períodos de carga altaScale out automatically, even during periods of high load

Os aplicativos de funções na mesma região podem ser atribuídos ao mesmo plano de consumo.Function apps in the same region can be assigned to the same Consumption plan. Não há nenhuma desvantagem ou impacto para ter vários aplicativos em execução no mesmo plano de consumo.There's no downside or impact to having multiple apps running in the same Consumption plan. A atribuição de vários aplicativos ao mesmo plano de consumo não afeta a resiliência, a escalabilidade ou a confiabilidade de cada aplicativo.Assigning multiple apps to the same Consumption plan has no impact on resilience, scalability, or reliability of each app.

Para saber mais sobre como estimar os custos durante a execução em um plano de consumo, consulte noções básicas sobre custos do plano de consumo.To learn more about how to estimate costs when running in a Consumption plan, see Understanding Consumption plan costs.

Plano PremiumPremium plan

Quando você estiver usando o plano Premium, as instâncias do host Azure Functions serão adicionadas e removidas com base no número de eventos de entrada, assim como o plano de consumo.When you're using the Premium plan, instances of the Azure Functions host are added and removed based on the number of incoming events just like the Consumption plan. O plano Premium dá suporte aos seguintes recursos:Premium plan supports the following features:

  • Instâncias passivas perpétuas para evitar qualquer início frioPerpetually warm instances to avoid any cold start
  • Conectividade de VNetVNet connectivity
  • Duração de execução ilimitada (60 minutos garantidos)Unlimited execution duration (60 minutes guaranteed)
  • Tamanhos de instância Premium (um núcleo, duas principais e quatro instâncias de núcleo)Premium instance sizes (one core, two core, and four core instances)
  • Preços mais previsíveisMore predictable pricing
  • Alocação de aplicativo de alta densidade para planos com vários aplicativos de funçõesHigh-density app allocation for plans with multiple function apps

Para saber como você pode criar um aplicativo de funções em um plano Premium, consulte Azure Functions plano Premium.To learn how you can create a function app in a Premium plan, see Azure Functions Premium plan.

Em vez de cobrança por execução e memória consumida, a cobrança para o plano Premium é baseada no número de segundos de núcleo e na memória alocada entre instâncias.Instead of billing per execution and memory consumed, billing for the Premium plan is based on the number of core seconds and memory allocated across instances. Não há nenhum encargo de execução com o plano Premium.There is no execution charge with the Premium plan. Pelo menos uma instância deve ser alocada em todos os momentos por plano.At least one instance must be allocated at all times per plan. Isso resulta em um custo mensal mínimo por plano ativo, independentemente se a função estiver ativa ou ociosa.This results in a minimum monthly cost per active plan, regardless if the function is active or idle. Tenha em mente que todos os aplicativos de funções em um plano Premium compartilham instâncias alocadas.Keep in mind that all function apps in a Premium plan share allocated instances.

Considere o plano Azure Functions Premium nas seguintes situações:Consider the Azure Functions Premium plan in the following situations:

  • Os aplicativos de funções executam continuamente ou quase continuamente.Your function apps run continuously, or nearly continuously.
  • Você tem um número alto de execuções pequenas e tem uma cobrança de alta execução, mas a cobrança de baixo GB por segundo no plano de consumo.You have a high number of small executions and have a high execution bill but low GB second bill in the Consumption plan.
  • Você precisa de mais opções de CPU ou memória do que o fornecido pelo plano de consumo.You need more CPU or memory options than what is provided by the Consumption plan.
  • Seu código precisa ser executado por mais tempo do que o máximo permitido no plano de consumo.Your code needs to run longer than the maximum execution time allowed on the Consumption plan.
  • Você precisa de recursos que estão disponíveis apenas em um plano Premium, como a conectividade de rede virtual.You require features that are only available on a Premium plan, such as virtual network connectivity.

Plano dedicado (serviço de aplicativo)Dedicated (App Service) plan

Seus aplicativos de funções também podem ser executados nas mesmas VMs dedicadas que outros aplicativos do serviço de aplicativo (SKUs Basic, Standard, Premium e Isolated).Your function apps can also run on the same dedicated VMs as other App Service apps (Basic, Standard, Premium, and Isolated SKUs).

Considere um plano do serviço de aplicativo nas seguintes situações:Consider an App Service plan in the following situations:

  • Você tem VMs subutilizadas que já estão executando outras instâncias do Serviço de Aplicativo.You have existing, underutilized VMs that are already running other App Service instances.
  • Você deseja fornecer uma imagem personalizada na qual executar suas funções.You want to provide a custom image on which to run your functions.

Você paga o mesmo para aplicativos de funções em um plano do serviço de aplicativo como faria para outros recursos do serviço de aplicativo, como aplicativos Web.You pay the same for function apps in an App Service Plan as you would for other App Service resources, like web apps. Para obter detalhes sobre como o plano do Serviço de Aplicativo funciona, consulte Visão geral detalhada de planos de Serviço de Aplicativo do Azure.For details about how the App Service plan works, see the Azure App Service plans in-depth overview.

Usando um plano do serviço de aplicativo, você pode escalar horizontalmente manualmente Adicionando mais instâncias de VM.Using an App Service plan, you can manually scale out by adding more VM instances. Você também pode habilitar o dimensionamento automático, embora o dimensionamento automático seja mais lento do que a escala elástica do plano Premium.You can also enable autoscale, though autoscale will be slower than the elastic scale of the Premium plan. Para saber mais, confira Dimensionar a contagem de instâncias manual ou automaticamente.For more information, see Scale instance count manually or automatically. Você também pode escalar verticalmente escolhendo um plano do Serviço de Aplicativo diferente.You can also scale up by choosing a different App Service plan. Para obter mais informações, consulte Escalar verticalmente um aplicativo no Azure.For more information, see Scale up an app in Azure.

Ao executar funções JavaScript em um plano do Serviço de Aplicativo, você deve escolher um plano que tenha menos vCPUs.When running JavaScript functions on an App Service plan, you should choose a plan that has fewer vCPUs. Para obter mais informações, consulte escolher planos de serviço de aplicativo de núcleo único.For more information, see Choose single-core App Service plans.

A execução em um ambiente do serviço de aplicativo (ase) permite isolar totalmente suas funções e aproveitar o maior número de instâncias do que um plano do serviço de aplicativo.Running in an App Service Environment (ASE) lets you fully isolate your functions and take advantage of higher number of instances than an App Service Plan.

Always OnAlways On

Se você executar em um plano do serviço de aplicativo, habilite a configuração Always on para que seu aplicativo de funções seja executado corretamente.If you run on an App Service plan, you should enable the Always on setting so that your function app runs correctly. Em um plano do Serviço de Aplicativo, o runtime das funções ficará ocioso após alguns minutos de inatividade, portanto, apenas gatilhos HTTP "despertarão" suas funções.On an App Service plan, the functions runtime goes idle after a few minutes of inactivity, so only HTTP triggers will "wake up" your functions. Always On está disponível apenas em um plano de Serviço de Aplicativo.Always on is available only on an App Service plan. Em um plano de Consumo, a plataforma ativa automaticamente os aplicativos de função.On a Consumption plan, the platform activates function apps automatically.

Duração do tempo limite do aplicativo de funçõesFunction app timeout duration

A duração do tempo limite de um aplicativo de funções é definida pela propriedade functionTimeout no arquivo de projeto host.json.The timeout duration of a function app is defined by the functionTimeout property in the host.json project file. A seguinte tabela mostra os valores padrão e máximo em minutos para os planos e as diferentes versões de runtime:The following table shows the default and maximum values in minutes for both plans and the different runtime versions:

PlanoPlan Versão de RuntimeRuntime Version PadrãoDefault MáximoMaximum
ConsumoConsumption 1.x1.x 55 1010
ConsumoConsumption 2. x2.x 55 1010
ConsumoConsumption 3.x3.x 55 1010
PremiumPremium 1.x1.x 3030 IlimitadoUnlimited
PremiumPremium 2. x2.x 3030 IlimitadoUnlimited
PremiumPremium 3.x3.x 3030 IlimitadoUnlimited
Serviço de AplicativoApp Service 1.x1.x IlimitadoUnlimited IlimitadoUnlimited
Serviço de AplicativoApp Service 2. x2.x 3030 IlimitadoUnlimited
Serviço de AplicativoApp Service 3.x3.x 3030 IlimitadoUnlimited

Observação

Independentemente da configuração de tempo limite do aplicativo de funções, 230 segundos é a quantidade de tempo máxima que uma função disparada por HTTP pode levar para responder a uma solicitação.Regardless of the function app timeout setting, 230 seconds is the maximum amount of time that an HTTP triggered function can take to respond to a request. Isso ocorre devido ao tempo limite de ociosidade padrão do Azure Load Balancer.This is because of the default idle timeout of Azure Load Balancer. Para tempos de processamento mais longos, considere usar o padrão assíncrono das Durable Functions ou adiar o trabalho real e retornar uma resposta imediata.For longer processing times, consider using the Durable Functions async pattern or defer the actual work and return an immediate response.

Mesmo com Always On habilitado, o tempo limite de execução para funções individuais é controlado pela configuração functionTimeout no arquivo de projeto host.json.Even with Always On enabled, the execution timeout for individual functions is controlled by the functionTimeout setting in the host.json project file.

Determinar o plano de Hospedagem de um aplicativo existenteDetermine the hosting plan of an existing application

Para determinar o plano de hospedagem usado pelo seu aplicativo de funções, consulte plano do serviço de aplicativo na guia visão geral do aplicativo de funções no portal do Azure.To determine the hosting plan used by your function app, see App Service plan in the Overview tab for the function app in the Azure portal. Para ver o tipo de preço, selecione o nome do plano do serviço de aplicativoe, em seguida, selecione Propriedades no painel esquerdo.To see the pricing tier, select the name of the App Service Plan, and then select Properties from the left pane.

Exibir o plano de dimensionamento no portal

Também é possível usar a CLI do Azure para determinar o plano, da seguinte maneira:You can also use the Azure CLI to determine the plan, as follows:

appServicePlanId=$(az functionapp show --name <my_function_app_name> --resource-group <my_resource_group> --query appServicePlanId --output tsv)
az appservice plan list --query "[?id=='$appServicePlanId'].sku.tier" --output tsv

Quando a saída desse comando for dynamic, o aplicativo de funções estará no plano de Consumo.When the output from this command is dynamic, your function app is in the Consumption plan. Quando a saída desse comando for ElasticPremium , seu aplicativo de funções estará no plano Premium.When the output from this command is ElasticPremium, your function app is in the Premium plan. Todos os outros valores indicam diferentes camadas de um plano do serviço de aplicativo.All other values indicate different tiers of an App Service plan.

Requisitos da conta de armazenamentoStorage account requirements

Em qualquer plano, um aplicativo de funções requer uma conta de armazenamento do Azure geral, que dá suporte ao blob do Azure, à fila, aos arquivos e ao armazenamento de tabelas.On any plan, a function app requires a general Azure Storage account, which supports Azure Blob, Queue, Files, and Table storage. Isso ocorre porque Azure Functions se baseia no armazenamento do Azure para operações como gerenciar gatilhos e registrar execuções de função, mas algumas contas de armazenamento não dão suporte a filas e tabelas.This is because Azure Functions relies on Azure Storage for operations such as managing triggers and logging function executions, but some storage accounts don't support queues and tables. Essas contas, que incluem contas de armazenamento somente blob (incluindo armazenamento Premium) e contas de armazenamento para uso geral com replicação de armazenamento com redundância de zona, são filtradas das seleções da Conta de Armazenamento existente quando você cria um aplicativo de funções.These accounts, which include blob-only storage accounts (including premium storage) and general-purpose storage accounts with zone-redundant storage replication, are filtered-out from your existing Storage Account selections when you create a function app.

A mesma conta de armazenamento usada por seu aplicativo de funções também pode ser usada por seus gatilhos e associações para armazenar os dados do aplicativo.The same storage account used by your function app can also be used by your triggers and bindings to store your application data. No entanto, para operações com uso intensivo de armazenamento, você deve usar uma conta de armazenamento separada.However, for storage-intensive operations, you should use a separate storage account.

É possível que vários aplicativos de funções compartilhem a mesma conta de armazenamento sem nenhum problema.It's possible for multiple function apps to share the same storage account without any issues. (Um bom exemplo disso é quando você desenvolve vários aplicativos em seu ambiente local usando o emulador de armazenamento do Azure, que atua como uma conta de armazenamento.)(A good example of this is when you develop multiple apps in your local environment using the Azure Storage Emulator, which acts like one storage account.)

Para saber mais sobre os tipos de conta de armazenamento, consulte apresentando os serviços de armazenamento do Azure.To learn more about storage account types, see Introducing the Azure Storage services.

Residência de dados na regiãoIn Region Data Residency

Quando necessário para que todos os dados do cliente permaneçam dentro de uma única região, a conta de armazenamento associada ao aplicativo de funções deve ser uma com redundância de região.When necessary for all customer data to remain within a single region, the storage account associated with the function app must be one with in region redundancy. Uma conta de armazenamento redundante na região também precisaria ser usada com o Azure Durable Functions para Durable functions.An in-region redundant storage account would also need to be used with Azure Durable Functions for Durable Functions.

Outros dados do cliente gerenciados pela plataforma serão armazenados apenas dentro da região ao hospedar em um Load Balancer interno Ambiente do Serviço de Aplicativo (ou ASE ILB).Other platform-managed customer data will only be stored within the region when hosting in an Internal Load Balancer App Service Environment (or ILB ASE). Os detalhes podem ser encontrados na redundância de zona do ase.Details can be found in ASE zone redundancy.

Como funcionam os planos de consumo e premiumHow the Consumption and Premium plans work

Nos planos de consumo e Premium, a infraestrutura de Azure Functions escala recursos de CPU e memória adicionando instâncias adicionais do host do functions, com base no número de eventos em que suas funções são disparadas.In the Consumption and Premium plans, the Azure Functions infrastructure scales CPU and memory resources by adding additional instances of the Functions host, based on the number of events that its functions are triggered on. Cada instância do host do Functions no plano de consumo é limitada a 1,5 GB de memória e uma CPU.Each instance of the Functions host in the Consumption plan is limited to 1.5 GB of memory and one CPU. Uma instância do host é o aplicativo de funções inteiro, o que significa que todas as funções em um aplicativo de funções compartilham recursos dentro de uma instância e são dimensionadas ao mesmo tempo.An instance of the host is the entire function app, meaning all functions within a function app share resource within an instance and scale at the same time. Aplicativos de função que compartilham o mesmo plano de consumo são dimensionados de forma independente.Function apps that share the same Consumption plan are scaled independently. No plano Premium, o tamanho do plano determinará a memória disponível e a CPU para todos os aplicativos nesse plano nessa instância.In the Premium plan, your plan size will determine the available memory and CPU for all apps in that plan on that instance.

Os arquivos de código de função são armazenados em compartilhamentos de arquivos do Azure na conta de armazenamento principal da função.Function code files are stored on Azure Files shares on the function's main storage account. Quando você exclui a conta de armazenamento principal do aplicativo de funções, os arquivos de código de função são excluídos e não podem ser recuperados.When you delete the main storage account of the function app, the function code files are deleted and cannot be recovered.

Escalonamento de runtimeRuntime scaling

O Azure Functions usa um componente chamado controlador de escala para monitorar a taxa de eventos e determinar se deve aumentar ou reduzir.Azure Functions uses a component called the scale controller to monitor the rate of events and determine whether to scale out or scale in. O controlador de escala usa heurística para cada tipo de gatilho.The scale controller uses heuristics for each trigger type. Por exemplo, ao usar um gatilho do armazenamento de Filas do Azure, ele escala com base no tamanho da fila e na idade da mensagem em fila mais antiga.For example, when you're using an Azure Queue storage trigger, it scales based on the queue length and the age of the oldest queue message.

A unidade de escala para Azure Functions é o aplicativo de funções.The unit of scale for Azure Functions is the function app. Quando o aplicativo de funções é dimensionado na horizontal, mais recursos são alocados para executar várias instâncias do host do Azure Functions.When the function app is scaled out, additional resources are allocated to run multiple instances of the Azure Functions host. Em contrapartida, quando a demanda por computação é reduzida, o controlador de escala remove as instâncias do host de função.Conversely, as compute demand is reduced, the scale controller removes function host instances. O número de instâncias é eventualmente reduzido para zero quando não há funções em execução em um aplicativo de funções.The number of instances is eventually scaled in to zero when no functions are running within a function app.

Controlador de escala monitorando eventos e criando instâncias

Inicialização a frioCold Start

Depois que seu aplicativo de funções ficar ocioso por alguns minutos, a plataforma poderá dimensionar o número de instâncias nas quais seu aplicativo é executado até zero.After your function app has been idle for a number of minutes, the platform may scale the number of instances on which your app runs down to zero. A próxima solicitação tem a latência adicional de dimensionamento de zero para um.The next request has the added latency of scaling from zero to one. Essa latência é conhecida como uma inicialização a frio.This latency is referred to as a cold start. O número de dependências que devem ser carregadas pelo seu aplicativo de funções pode afetar a hora de início frio.The number of dependencies that must be loaded by your function app can impact the cold start time. A inicialização a frio é mais um problema para operações síncronas, como gatilhos HTTP que devem retornar uma resposta.Cold start is more of an issue for synchronous operations, such as HTTP triggers that must return a response. Se a frio for iniciada, afetará suas funções, considere a execução em um plano Premium ou em um plano dedicado com o Always on habilitado.If cold starts are impacting your functions, consider running in a Premium plan or in a Dedicated plan with Always on enabled.

Noções básicas dos comportamentos de dimensionamentoUnderstanding scaling behaviors

O dimensionamento pode variar em uma série de fatores e ser diferente com base no gatilho e na linguagem selecionada.Scaling can vary on a number of factors, and scale differently based on the trigger and language selected. Há algumas complexidades de comportamentos de dimensionamento a serem considerados:There are a few intricacies of scaling behaviors to be aware of:

  • Um único aplicativo de funções só pode ser dimensionado para um máximo de 200 instâncias.A single function app only scales out to a maximum of 200 instances. Uma única instância pode processar mais de uma mensagem ou solicitação por vez, portanto, não há um limite definido de número de execuções simultâneas.A single instance may process more than one message or request at a time though, so there isn't a set limit on number of concurrent executions. Você pode especificar um máximo inferior para limitar a escala, conforme necessário.You can specify a lower maximum to throttle scale as required.
  • Para gatilhos HTTP, novas instâncias são alocadas, no máximo, uma vez por segundo.For HTTP triggers, new instances are allocated, at most, once per second.
  • Para gatilhos não HTTP, novas instâncias são alocadas, no máximo, uma vez a cada 30 segundos.For non-HTTP triggers, new instances are allocated, at most, once every 30 seconds. O dimensionamento é mais rápido quando executado em um plano Premium.Scaling is faster when running in a Premium plan.
  • Para gatilhos do barramento de serviço, use gerenciar direitos em recursos para o dimensionamento mais eficiente.For Service Bus triggers, use Manage rights on resources for the most efficient scaling. Com os direitos de escuta , o dimensionamento não é tão preciso porque o comprimento da fila não pode ser usado para informar decisões de dimensionamento.With Listen rights, scaling isn't as accurate because the queue length can't be used to inform scaling decisions. Para saber mais sobre como definir direitos nas políticas de acesso do barramento de serviço, consulte política de autorização de acesso compartilhado.To learn more about setting rights in Service Bus access policies, see Shared Access Authorization Policy.
  • Para gatilhos do hub de eventos, consulte as diretrizes de dimensionamento no artigo de referência.For Event Hub triggers, see the scaling guidance in the reference article.

Limitar escala horizontalLimit scale out

Talvez você queira restringir o número de instâncias para as quais um aplicativo é dimensionado.You may wish to restrict the number of instances an app scales out to. Isso é mais comum para casos em que um componente downstream como um banco de dados tem taxa de transferência limitada.This is most common for cases where a downstream component like a database has limited throughput. Por padrão, as funções de plano de consumo serão escaladas horizontalmente para até 200 instâncias, e as funções de plano Premium serão expandidas para tantas de 100 instâncias.By default, consumption plan functions will scale out to as many as 200 instances, and premium plan functions will scale out to as many as 100 instances. Você pode especificar um máximo inferior para um aplicativo específico modificando o functionAppScaleLimit valor.You can specify a lower maximum for a specific app by modifying the functionAppScaleLimit value. O functionAppScaleLimit pode ser definido como 0 ou nulo para irrestrito ou um valor válido entre 1 e o máximo do aplicativo.The functionAppScaleLimit can be set to 0 or null for unrestricted, or a valid value between 1 and the app maximum.

az resource update --resource-type Microsoft.Web/sites -g <resource_group> -n <function_app_name>/config/web --set properties.functionAppScaleLimit=<scale_limit>

Melhores práticas e padrões para aplicativos escalonáveisBest practices and patterns for scalable apps

Há muitos aspectos de um aplicativo de funções que afetarão a qualidade da escala, incluindo a configuração do host, o espaço de runtime e a eficiência dos recursos.There are many aspects of a function app that will impact how well it will scale, including host configuration, runtime footprint, and resource efficiency. Para obter mais informações, consulte a seção de escalabilidade do artigo sobre considerações de desempenho.For more information, see the scalability section of the performance considerations article. Adicionalmente, é necessário que você saiba como as conexões se comportam na medida em que o aplicativo de funções é dimensionado.You should also be aware of how connections behave as your function app scales. Para saber mais, confira Como gerenciar conexões no Azure Functions.For more information, see How to manage connections in Azure Functions.

Para obter mais informações sobre o dimensionamento em Python e Node.js, consulte Azure Functions guia do desenvolvedor do Python – dimensionamento e simultaneidade e Azure Functions Node.js guia do desenvolvedor – dimensionamento e simultaneidade.For more information on scaling in Python and Node.js, see Azure Functions Python developer guide - Scaling and concurrency and Azure Functions Node.js developer guide - Scaling and concurrency.

Modelo de cobrançaBilling model

A cobrança pelos diferentes planos é descrita em detalhes na página de preços de Azure Functions.Billing for the different plans is described in detail on the Azure Functions pricing page. O uso é agregado no nível do aplicativo de funções e conta apenas o tempo durante o qual o código de função é executado.Usage is aggregated at the function app level and counts only the time that function code is executed. Veja a seguir as unidades de cobrança:The following are units for billing:

  • Consumo de recursos em GB/s (gigabyte por segundo).Resource consumption in gigabyte-seconds (GB-s). Calculado como uma combinação do tamanho da memória e o tempo de execução para todas as funções dentro de um aplicativo de Funções.Computed as a combination of memory size and execution time for all functions within a function app.
  • Execuções.Executions. Contadas toda vez que uma função é executada em resposta a um gatilho de evento.Counted each time a function is executed in response to an event trigger.

Consultas e informações úteis sobre como entender sua fatura de consumo podem ser encontradas nas perguntas frequentes sobre cobrança.Useful queries and information on how to understand your consumption bill can be found on the billing FAQ.

Comparação dos planos de hospedagemHosting plans comparison

A tabela de comparação a seguir mostra todos os aspectos importantes para ajudar na decisão de Azure Functions opção de plano de Hospedagem de aplicativo:The following comparison table shows all important aspects to help the decision of Azure Functions App hosting plan choice:

Resumo do planoPlan summary

Plano de ConsumoConsumption plan Dimensione automaticamente e pague apenas pelos recursos de computação quando suas funções estiverem em execução.Scale automatically and only pay for compute resources when your functions are running. No plano de consumo, as instâncias do host do Functions são adicionadas e removidas dinamicamente com base no número de eventos de entrada.On the Consumption plan, instances of the Functions host are dynamically added and removed based on the number of incoming events.
✔ Plano de hospedagem padrão.✔ Default hosting plan.
✔ Pague somente quando suas funções estiverem em execução.✔ Pay only when your functions are running.
✔ escalar horizontalmente automaticamente, mesmo durante períodos de alta carga.✔ scale-out automatically, even during periods of high load.
Plano PremiumPremium plan Embora o dimensionamento automático seja baseado sob demanda, use trabalhos pré-configurados para executar aplicativos sem atraso depois de ficar ocioso, executar em instâncias mais poderosas e conectar-se ao VNETs.While automatically scaling based on demand, use pre-warmed workers to run applications with no delay after being idle, run on more powerful instances, and connect to VNETs. Considere o plano Azure Functions Premium nas seguintes situações, além de todos os recursos do plano do serviço de aplicativo:Consider the Azure Functions Premium plan in the following situations, in addition to all features of the App Service plan:
✔ Seus aplicativos de funções são executados continuamente ou quase continuamente.✔ Your function apps run continuously, or nearly continuously.
✔ Você tem um número alto de execuções pequenas e tem uma cobrança de alta execução, mas a cobrança de baixo GB por segundo no plano de consumo.✔ You have a high number of small executions and have a high execution bill but low GB second bill in the Consumption plan.
✔ Você precisa de mais opções de CPU ou memória do que o fornecido pelo plano de consumo.✔ You need more CPU or memory options than what is provided by the Consumption plan.
✔ Seu código precisa ser executado por mais tempo do que o máximo permitido no plano de consumo.✔ Your code needs to run longer than the maximum execution time allowed on the Consumption plan.
✔ Você precisa de recursos que estão disponíveis apenas em um plano Premium, como a conectividade de rede virtual.✔ You require features that are only available on a Premium plan, such as virtual network connectivity.
Plano dedicado1Dedicated plan1 Execute suas funções em um plano do serviço de aplicativo em taxas regulares do plano do serviço de aplicativo.Run your functions within an App Service plan at regular App Service plan rates. Boa opção para operações de longa execução, bem como quando mais custos e dimensionamento de previsão são necessários.Good fit for long running operations, as well as when more predictive scaling and costs are required. Considere um plano do serviço de aplicativo nas seguintes situações:Consider an App Service plan in the following situations:
✔ Você tem VMs subutilizadas existentes que já estão executando outras instâncias do serviço de aplicativo.✔ You have existing, underutilized VMs that are already running other App Service instances.
✔ Você deseja fornecer uma imagem personalizada na qual executar suas funções.✔ You want to provide a custom image on which to run your functions.
Ase1ASE1 O Ambiente do Serviço de Aplicativo (ASE) é um recurso do serviço de aplicativo que fornece um ambiente totalmente isolado e dedicado para executar com segurança aplicativos do serviço de aplicativo em alta escala.App Service Environment (ASE) is an App Service feature that provides a fully isolated and dedicated environment for securely running App Service apps at high scale. ASEs são apropriadas para cargas de trabalho de aplicativo que exigem:ASEs are appropriate for application workloads that require:
✔ Escala muito alta.✔ Very high scale.
✔ Isolamento de computação completo e acesso seguro à rede.✔ Full compute isolation and secure network access.
✔ Utilização de memória alta.✔ High memory utilization.
KubernetesKubernetes O kubernetes fornece um ambiente totalmente isolado e dedicado em execução no topo da plataforma kubernetes.Kubernetes provides a fully isolated and dedicated environment running on top of the Kubernetes platform. Kubernetes é apropriado para cargas de trabalho de aplicativo que exigem:Kubernetes is appropriate for application workloads that require:
✔ Os requisitos de hardware personalizados.✔ Custom hardware requirements.
✔ Isolamento e acesso seguro à rede.✔ Isolation and secure network access.
✔ A capacidade de executar em um ambiente híbrido ou de várias nuvens.✔ Ability to run in hybrid or multi-cloud environment.
✔ Executado junto com os aplicativos e serviços kubernetes existentes.✔ Run alongside existing Kubernetes applications and services.

1 para limites específicos para as várias opções do plano do serviço de aplicativo, consulte os limites do plano do serviço de aplicativo.1 For specific limits for the various App Service plan options, see the App Service plan limits.

Sistema operacional/tempo de execuçãoOperating system/runtime

Linux1Linux1
Somente códigoCode-only
Windows2Windows2
Somente códigoCode-only
Linux1, 3Linux1,3
Contêiner do DockerDocker container
Plano de ConsumoConsumption plan .NET Core.NET Core
Node.jsNode.js
JavaJava
PythonPython
.NET Core.NET Core
Node.jsNode.js
JavaJava
PowerShell CorePowerShell Core
Sem suporteNo support
Plano PremiumPremium plan .NET Core.NET Core
Node.jsNode.js
JavaJava
PythonPython
.NET Core.NET Core
Node.jsNode.js
JavaJava
PowerShell CorePowerShell Core
.NET Core.NET Core
Node.jsNode.js
JavaJava
PowerShell CorePowerShell Core
PythonPython
Plano dedicado4Dedicated plan4 .NET Core.NET Core
Node.jsNode.js
JavaJava
PythonPython
.NET Core.NET Core
Node.jsNode.js
JavaJava
PowerShell CorePowerShell Core
.NET Core.NET Core
Node.jsNode.js
JavaJava
PowerShell CorePowerShell Core
PythonPython
Ase4ASE4 .NET Core.NET Core
Node.jsNode.js
JavaJava
PythonPython
.NET Core.NET Core
Node.jsNode.js
JavaJava
PowerShell CorePowerShell Core
.NET Core.NET Core
Node.jsNode.js
JavaJava
PowerShell CorePowerShell Core
PythonPython
KubernetesKubernetes n/dn/a n/dn/a .NET Core.NET Core
Node.jsNode.js
JavaJava
PowerShell CorePowerShell Core
PythonPython

1 O Linux é o único sistema operacional com suporte para a pilha de tempo de execução do Python.1Linux is the only supported operating system for the Python runtime stack.
2 O Windows é o único sistema operacional com suporte para a pilha de tempo de execução do PowerShell.2Windows is the only supported operating system for the PowerShell runtime stack.
3 O Linux é o único sistema operacional com suporte para contêineres do Docker.3Linux is the only supported operating system for Docker containers. 4 para limites específicos para as várias opções do plano do serviço de aplicativo, consulte os limites do plano do serviço de aplicativo.4 For specific limits for the various App Service plan options, see the App Service plan limits.

EscalaScale

Escalar horizontalmenteScale out N º máximo de instânciasMax # instances
Plano de ConsumoConsumption plan Controlado por evento.Event driven. Escale horizontalmente de forma automática, mesmo durante períodos de carga alta.Scale out automatically, even during periods of high load. A infraestrutura de Azure Functions dimensiona os recursos de CPU e memória adicionando instâncias adicionais do host do functions, com base no número de eventos em que suas funções são disparadas.Azure Functions infrastructure scales CPU and memory resources by adding additional instances of the Functions host, based on the number of events that its functions are triggered on. 200200
Plano PremiumPremium plan Controlado por evento.Event driven. Escale horizontalmente de forma automática, mesmo durante períodos de carga alta.Scale out automatically, even during periods of high load. A infraestrutura de Azure Functions dimensiona os recursos de CPU e memória adicionando instâncias adicionais do host do functions, com base no número de eventos em que suas funções são disparadas.Azure Functions infrastructure scales CPU and memory resources by adding additional instances of the Functions host, based on the number of events that its functions are triggered on. 100100
Plano dedicado1Dedicated plan1 Manual/dimensionamento automáticoManual/autoscale 10-2010-20
Ase1ASE1 Manual/dimensionamento automáticoManual/autoscale 100100
KubernetesKubernetes Dimensionamento automático controlado por evento para clusters kubernetes usando Keda.Event-driven autoscale for Kubernetes clusters using KEDA. Varia   de acordo com o   cluster.  Varies by cluster.  

1 para limites específicos para as várias opções do plano do serviço de aplicativo, consulte os limites do plano do serviço de aplicativo.1 For specific limits for the various App Service plan options, see the App Service plan limits.

Comportamento de início frioCold start behavior

Plano de consumo  Consumption plan Os aplicativos podem ser dimensionados para zero se estiverem ociosos por um período de tempo, o que significa que algumas solicitações podem ter latência adicional na inicialização.Apps may scale to zero if idle for a period of time, meaning some requests may have additional latency at startup. O plano de consumo tem algumas otimizações para ajudar a diminuir a hora de início frio, incluindo a extração de funções de espaço reservado pré-configuradas que já têm o host de funções e os processos de linguagem em execução.The consumption plan does have some optimizations to help decrease cold start time, including pulling from pre-warmed placeholder functions that already have the function host and language processes running.
Plano PremiumPremium plan Instâncias passivas perpétuas para evitar qualquer inicialização a frio.Perpetually warm instances to avoid any cold start.
Plano dedicado1Dedicated plan1 Ao executar em um plano dedicado, o host do Functions pode ser executado continuamente, o que significa que a inicialização a frio não é realmente um problema.When running in a Dedicated plan, the Functions host can run continuously, which means that cold start isn’t really an issue.
Ase1ASE1 Ao executar em um plano dedicado, o host do Functions pode ser executado continuamente, o que significa que a inicialização a frio não é realmente um problema.When running in a Dedicated plan, the Functions host can run continuously, which means that cold start isn’t really an issue.
KubernetesKubernetes Depende da configuração do KEDA.Depends on KEDA configuration. Os aplicativos podem ser configurados para serem executados sempre e nunca têm inicialização a frio, ou configurados para serem dimensionados para zero, o que resulta em uma inicialização a frio em novos eventos.Apps can be configured to always run and never have cold start, or configured to scale to zero, which results in cold start on new events.

1 para limites específicos para as várias opções do plano do serviço de aplicativo, consulte os limites do plano do serviço de aplicativo.1 For specific limits for the various App Service plan options, see the App Service plan limits.

Limites de serviçoService limits

RecursoResource Plano de ConsumoConsumption plan Plano PremiumPremium plan Plano dedicadoDedicated plan ASEASE KubernetesKubernetes
Duração padrão do tempo limite (min)Default timeout duration (min) 55 3030 301301 3030 3030
Duração máxima do tempo limite (min)Max timeout duration (min) 1010 não associado7unbounded7 não associado2unbounded2 não associadounbounded não associadounbounded
Máximo de conexões de saída (por instância)Max outbound connections (per instance) 600 ativos (1.200 no total)600 active (1200 total) não associadounbounded não associadounbounded não associadounbounded não associadounbounded
Tamanho máximo da solicitação (MB)3Max request size (MB)3 100100 100100 100100 100100 Depende do clusterDepends on cluster
Comprimento máximo da cadeia de caracteres de consulta3Max query string length3 40964096 40964096 40964096 40964096 Depende do clusterDepends on cluster
Comprimento máximo da URL de solicitação3Max request URL length3 81928192 81928192 81928192 81928192 Depende do clusterDepends on cluster
ACU por instânciaACU per instance 100100 210-840210-840 100-840100-840 210-2508210-2508 Preços do AKSAKS pricing
Memória máxima (GB por instância)Max memory (GB per instance) 1.51.5 3,5-143.5-14 1,75-141.75-14 3,5-143.5 - 14 Todos os nós são compatíveisAny node is supported
Aplicativos de funções por planoFunction apps per plan 100100 100100 não associado4unbounded4 não associadounbounded não associadounbounded
Planos do Serviço de AplicativoApp Service plans 100 por região100 per region 100 por grupo de recursos100 per resource group 100 por grupo de recursos100 per resource group - -
Armazenamento5Storage5 5 TB5 TB 250 GB250 GB 50-1.000 GB50-1000 GB 1 TB1 TB n/an/a
Domínios personalizados por aplicativoCustom domains per app 50065006 500500 500500 500500 n/an/a
domínio personalizado Suporte a SSLCustom domain SSL support conexão SSL SNI não associada incluídaunbounded SNI SSL connection included conexões SSL SNI e 1 IP SSL não associadas incluídasunbounded SNI SSL and 1 IP SSL connections included conexões SSL SNI e 1 IP SSL não associadas incluídasunbounded SNI SSL and 1 IP SSL connections included conexões SSL SNI e 1 IP SSL não associadas incluídasunbounded SNI SSL and 1 IP SSL connections included n/an/a

1 Por padrão, o tempo limite do runtime do Functions 1.x em um plano do Serviço de Aplicativo não é associado.1 By default, the timeout for the Functions 1.x runtime in an App Service plan is unbounded.
2 Requer que o plano do Serviço de Aplicativo seja definido como Always On.2 Requires the App Service plan be set to Always On. Pagamento com taxas padrão.Pay at standard rates.
3 Esses limites são definidos no host.3 These limits are set in the host.
4 O número real de aplicativos de funções que você pode hospedar dependerá da atividade dos aplicativos, do tamanho das instâncias do computador e da utilização de recursos correspondente.4 The actual number of function apps that you can host depends on the activity of the apps, the size of the machine instances, and the corresponding resource utilization.
5 O limite de armazenamento é o tamanho total do conteúdo no armazenamento temporário em todos os aplicativos no mesmo plano do Serviço de Aplicativo.5 The storage limit is the total content size in temporary storage across all apps in the same App Service plan. O plano de consumo usa os Arquivos do Azure para obter um armazenamento temporário.Consumption plan uses Azure Files for temporary storage.
6 Quando seu aplicativo de funções estiver hospedado em um Plano de consumo, somente a opção CNAME será compatível.6 When your function app is hosted in a Consumption plan, only the CNAME option is supported. Para obter aplicativos de funções em um plano Premium ou plano do Serviço de Aplicativo, você poderá mapear um domínio personalizado usando um CNAME ou registro A.For function apps in a Premium plan or an App Service plan, you can map a custom domain using either a CNAME or an A record.
7 Garantido por até 60 minutos.7 Guaranteed for up to 60 minutes.
8 As funções de trabalho são funções que hospedam aplicativos de clientes.8 Workers are roles that host customer apps. As funções de trabalho estão disponíveis em três tamanhos fixos: Um vCPU/3,5 GB de RAM, dois vCPUs/7 GB de RAM e quatro vCPUs/14 GB de RAM.Workers are available in three fixed sizes: One vCPU/3.5 GB RAM; Two vCPU/7 GB RAM; Four vCPU/14 GB RAM.

Recursos de redeNetworking features

RecursoFeature Plano de ConsumoConsumption plan Plano PremiumPremium plan Plano dedicadoDedicated plan ASEASE KubernetesKubernetes
Restrições de IP de entrada e acesso ao site privadoInbound IP restrictions and private site access ✅Sim✅Yes ✅Sim✅Yes ✅Sim✅Yes ✅Sim✅Yes ✅Sim✅Yes
Integração de rede virtualVirtual network integration ❌Não❌No ✅Sim (Regional)✅Yes (Regional) ✅Sim (regional e gateway)✅Yes (Regional and Gateway) ✅Sim✅Yes ✅Sim✅Yes
Gatilhos de rede virtual (não HTTP)Virtual network triggers (non-HTTP) ❌Não❌No ✅Sim✅Yes ✅Sim✅Yes ✅Sim✅Yes ✅Sim✅Yes
Conexões híbridas (somente Windows)Hybrid connections (Windows only) ❌Não❌No ✅Sim✅Yes ✅Sim✅Yes ✅Sim✅Yes ✅Sim✅Yes
Restrições de IP de saídaOutbound IP restrictions ❌Não❌No ✅Sim✅Yes ✅Sim✅Yes ✅Sim✅Yes ✅Sim✅Yes

CobrançaBilling

Plano de ConsumoConsumption plan Pague apenas pelo tempo em que suas funções são executadas.Pay only for the time your functions run. A cobrança baseia-se no número de execuções, no tempo de execução e na memória usada.Billing is based on number of executions, execution time, and memory used.
Plano PremiumPremium plan O plano Premium é baseado no número de segundos de núcleo e na memória usada nas instâncias necessárias e pré-configuradas.Premium plan is based on the number of core seconds and memory used across needed and pre-warmed instances. Pelo menos uma instância por plano deve ser mantida quase sempre.At least one instance per plan must be kept warm at all times. Este plano fornece preços mais previsíveis.This plan provides more predictable pricing.
Plano dedicado1Dedicated plan1 Você paga o mesmo para aplicativos de funções em um plano do serviço de aplicativo como faria para outros recursos do serviço de aplicativo, como aplicativos Web.You pay the same for function apps in an App Service Plan as you would for other App Service resources, like web apps.
Ase1ASE1 Há uma taxa mensal simples para um ASE que paga pela infraestrutura e não muda com o tamanho do ASE.there's a flat monthly rate for an ASE that pays for the infrastructure and doesn't change with the size of the ASE. Além disso, há um custo por vCPU do plano do serviço de aplicativo.In addition, there's a cost per App Service plan vCPU. Todos os aplicativos hospedados no ASE estão em um SKU de preços Isolado.All apps hosted in an ASE are in the Isolated pricing SKU.
KubernetesKubernetes Você paga apenas os custos de seu cluster kubernetes; nenhuma cobrança adicional para funções.You pay only the costs of your Kubernetes cluster; no additional billing for Functions. Seu aplicativo de funções é executado como uma carga de trabalho de aplicativo sobre o cluster, assim como um aplicativo regular.Your function app runs as an application workload on top of your cluster, just like a regular app.

1 para limites específicos para as várias opções do plano do serviço de aplicativo, consulte os limites do plano do serviço de aplicativo.1 For specific limits for the various App Service plan options, see the App Service plan limits.

Próximas etapasNext steps