Dimensionamento e alojamento de Funções do AzureAzure Functions scale and hosting

Quando criar uma aplicação de função em Azure, tem de escolher um plano de hospedagem para a sua aplicação.When you create a function app in Azure, you must choose a hosting plan for your app. Existem três planos básicos de hospedagem disponíveis para as Funções Azure: Plano de Consumo, Plano Premiume Plano Dedicado (Serviço de Aplicações).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 escolhe dita os seguintes comportamentos:The hosting plan you choose dictates the following behaviors:

  • Como a sua aplicação de função é dimensionada.How your function app is scaled.
  • Os recursos disponíveis para cada instância de aplicação de função.The resources available to each function app instance.
  • Suporte para funcionalidades avançadas, como a conectividade da Rede Virtual Azure.Support for advanced features, such as Azure Virtual Network connectivity.

Tanto os planos Consumption como Premium adicionam automaticamente energia de computação quando o seu código está em funcionamento.Both Consumption and Premium plans automatically add compute power when your code is running. A sua aplicação é dimensionada quando necessário para manusear a carga, e escalada quando o código deixa de funcionar.Your app is scaled out when needed to handle load, and scaled in when code stops running. Para o plano de Consumo, também não tem de pagar vMs inativos ou capacidade de reserva com antecedência.For the Consumption plan, you also don't have to pay for idle VMs or reserve capacity in advance.

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

O plano de Serviço de Aplicações permite-lhe tirar partido de infraestruturas dedicadas, que gere.App Service plan allows you to take advantage of dedicated infrastructure, which you manage. A sua aplicação de função não escala com base em eventos, o que significa que nunca escala para zero.Your function app doesn't scale based on events, which means it never scales in to zero. (Requer que sempre ligado esteja ativado.)(Requires that Always on is enabled.)

Para uma comparação detalhada entre os vários planos de hospedagem (incluindo hospedagem baseada em Kubernetes), consulte a secção de comparação dos 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 se utiliza o plano de consumo, os casos do anfitrião das Funções Azure são adicionados e removidos de forma dinâmica com base no número de eventos que chegam.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. Este plano sem servidor dimensiona automaticamente, sendo-lhe cobrados os recursos de computação apenas quando as suas funções estão em execução.This serverless plan scales automatically, and you're charged for compute resources only when your functions are running. Num plano de consumo, a execução de uma função excede o tempo limite após um período de tempo configurável.On a Consumption plan, a function execution times out after a configurable period of time.

A faturação baseia-se no número de execuções, no tempo de execução e na memória utilizada.Billing is based on number of executions, execution time, and memory used. A utilização é agregada em todas as funções dentro de uma aplicação de função.Usage is aggregated across all functions within a function app. Para obter mais informações, consulte 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 predefinido e oferece os seguintes benefícios:The Consumption plan is the default hosting plan and offers the following benefits:

  • Pague apenas quando as suas funções estiverem em execuçãoPay only when your functions are running
  • Escale automaticamente, mesmo durante períodos de alta cargaScale out automatically, even during periods of high load

As aplicações de função na mesma região podem ser atribuídas 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 em ter várias aplicações a funcionar no mesmo plano de Consumo.There's no downside or impact to having multiple apps running in the same Consumption plan. Atribuir várias aplicações ao mesmo plano de Consumo não tem impacto na resiliência, escalabilidade ou fiabilidade de cada app.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 ao executar um plano de consumo, consulte os custos do plano de consumo de compreensão.To learn more about how to estimate costs when running in a Consumption plan, see Understanding Consumption plan costs.

Plano PremiumPremium plan

Quando você está usando o plano Premium, os casos do anfitrião Azure Functions são adicionados e removidos com base no número de eventos que chegam 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 suporta as seguintes características:Premium plan supports the following features:

  • Casos perpetuamente quentes para evitar qualquer arranque a frioPerpetually warm instances to avoid any cold start
  • Conectividade VNetVNet connectivity
  • Duração de execução ilimitada (60 minutos garantidos)Unlimited execution duration (60 minutes guaranteed)
  • Tamanhos de exemplo premium (um núcleo, dois núcleos e quatro instâncias fundamentais)Premium instance sizes (one core, two core, and four core instances)
  • Preços mais previsíveisMore predictable pricing
  • Alocação de aplicativos de alta densidade para planos com aplicações de múltiplas funçõesHigh-density app allocation for plans with multiple function apps

Para saber como pode criar uma aplicação de função num plano Premium, consulte o plano Azure Functions Premium.To learn how you can create a function app in a Premium plan, see Azure Functions Premium plan.

Em vez de faturar por execução e memória consumida, a faturação do plano Premium baseia-se no número de segundos e memórias essenciais atribuídos em todos os casos.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á nenhuma acusação de execução com o plano Premium.There is no execution charge with the Premium plan. Pelo menos uma instância deve ser atribuída a todo o momento por plano.At least one instance must be allocated at all times per plan. Isto resulta num custo mínimo mensal por plano ativo, independentemente de a função estar ativa ou inativa.This results in a minimum monthly cost per active plan, regardless if the function is active or idle. Tenha em mente que todas as aplicações de função de um plano Premium partilham instâncias atribuídas.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:

  • As aplicações de função funcionam continuamente, ou quase continuamente.Your function apps run continuously, or nearly continuously.
  • Tem um elevado número de pequenas execuções e tem uma nota de execução alta, mas baixa nota de segunda nota de GB 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.
  • Precisa de mais OPÇÕES de CPU ou memória do que as fornecidas pelo plano de Consumo.You need more CPU or memory options than what is provided by the Consumption plan.
  • O seu código tem de ser executado mais tempo do que o tempo máximo de execução permitido no plano de Consumo.Your code needs to run longer than the maximum execution time allowed on the Consumption plan.
  • Você precisa de funcionalidades que só estão disponíveis num 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 Aplicações)Dedicated (App Service) plan

As suas aplicações de função também podem funcionar nos mesmos VMs dedicados que outras aplicações do Serviço de Aplicações (SKUs básicos, standard, premium e isolados).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 de Serviço de Aplicações nas seguintes situações:Consider an App Service plan in the following situations:

  • Tem VMs existentes e subutilizados que já estão a executar outras instâncias do Serviço de Aplicações.You have existing, underutilized VMs that are already running other App Service instances.
  • Pretende fornecer uma imagem personalizada para executar as suas funções.You want to provide a custom image on which to run your functions.

Você paga o mesmo por aplicações de função em um Plano de Serviço de Aplicações como você faria para outros recursos do Serviço de Aplicações, como aplicações 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 mais detalhes sobre o funcionamento do plano do Serviço de Aplicações, consulte os planos do Azure App Service em visão geral aprofundada.For details about how the App Service plan works, see the Azure App Service plans in-depth overview.

Utilizando um plano de Serviço de Aplicações, pode escalar manualmente adicionando mais instâncias VM.Using an App Service plan, you can manually scale out by adding more VM instances. Também pode ativar a autoescala, embora a autoescala seja mais lenta 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 obter mais informações, consulte a contagem de instâncias de escala manual ou automática.For more information, see Scale instance count manually or automatically. Também pode aumentar a escala escolhendo um plano de Serviço de Aplicações diferente.You can also scale up by choosing a different App Service plan. Para obter mais informações, consulte Scale up uma aplicação em Azure.For more information, see Scale up an app in Azure.

Ao executar funções JavaScript num plano de Serviço de Aplicações, 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 Escolha os planos do Serviço de Aplicações de núcleo único.For more information, see Choose single-core App Service plans.

Executar num Ambiente de Serviço de Aplicações (ASE) permite-lhe isolar totalmente as suas funções e tirar partido de um maior número de casos do que um Plano de Serviço de Aplicações.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.

Sempre ligadoAlways On

Se executar um plano de Serviço de Aplicações, deve ativar o Always on Setting para que a sua aplicação de função funcione corretamente.If you run on an App Service plan, you should enable the Always on setting so that your function app runs correctly. Num plano de Serviço de Aplicações, o tempo de funcionamento das funções fica inativo após alguns minutos de inatividade, pelo que apenas os gatilhos HTTP "acordam" as 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. Sempre disponível apenas num plano de Serviço de Aplicações.Always on is available only on an App Service plan. Num plano de Consumo, a plataforma ativa as aplicações de função automaticamente.On a Consumption plan, the platform activates function apps automatically.

Duração do tempo limite da aplicação da funçãoFunction app timeout duration

A duração de tempo de uma aplicação de função é definida pela functionTimeout propriedade nohost.js no ficheiro do projeto.The timeout duration of a function app is defined by the functionTimeout property in the host.json project file. A tabela a seguir mostra os valores predefinidos e máximos em minutos tanto para os planos como para as diferentes versões de tempo de execução:The following table shows the default and maximum values in minutes for both plans and the different runtime versions:

PlanearPlan Versão runtimeRuntime Version Predefiniçã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 AplicaçõesApp Service 1.x1.x IlimitadoUnlimited IlimitadoUnlimited
Serviço de AplicaçõesApp Service 2.x2.x 3030 IlimitadoUnlimited
Serviço de AplicaçõesApp Service 3.x3.x 3030 IlimitadoUnlimited

Nota

Independentemente da definição de tempo limite de tempo da aplicação da função, 230 segundos é o tempo máximo que uma função detonada HTTP pode demorar a responder a um pedido.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. Isto deve-se ao tempo limite de marcha lenta 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 utilizar o padrão async async das Funções Duráveis ou adiar o trabalho real e devolver 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 ativado, o tempo de execução para funções individuais é controlado pela functionTimeout definição no host.jsno ficheiro do projeto.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 uma aplicação existenteDetermine the hosting plan of an existing application

Para determinar o plano de hospedagem utilizado pela sua aplicação de função, consulte o plano de Serviço de Aplicações no separador Visão Geral para a aplicação de função no portal 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 nível de preços, selecione o nome do Plano de Serviço de Aplicaçõese, em seguida, selecione Propriedades a partir do painel esquerdo.To see the pricing tier, select the name of the App Service Plan, and then select Properties from the left pane.

Ver plano de escala no portal

Também pode utilizar o CLI Azure para determinar o plano, da seguinte forma: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 deste comando dynamic é, a sua aplicação de função está no plano de Consumo.When the output from this command is dynamic, your function app is in the Consumption plan. Quando a saída deste comando ElasticPremium é, a sua aplicação de função está 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 níveis de um plano de Serviço de Aplicações.All other values indicate different tiers of an App Service plan.

Requisitos da conta de armazenamentoStorage account requirements

Em qualquer plano, uma aplicação de função requer uma conta geral de Armazenamento Azure, que suporta Azure Blob, Queue, Files e armazenamento de mesa.On any plan, a function app requires a general Azure Storage account, which supports Azure Blob, Queue, Files, and Table storage. Isto porque o Azure Functions depende do Azure Storage para operações como gerir gatilhos e executar funções de registo, mas algumas contas de armazenamento não suportam 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. Estas contas, que incluem contas de armazenamento apenas blob (incluindo armazenamento premium) e contas de armazenamento para fins gerais com replicação de armazenamento redundante de zona, são filtradas das seleções de Conta de Armazenamento existentes quando cria uma aplicação de função.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 utilizada pela sua aplicação de função também pode ser usada pelos seus gatilhos e encadernações para armazenar os dados da sua aplicação.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 intensivas de armazenamento, deve utilizar uma conta de armazenamento separada.However, for storage-intensive operations, you should use a separate storage account.

É possível que várias aplicações de funções partilhem a mesma conta de armazenamento sem qualquer problema.It's possible for multiple function apps to share the same storage account without any issues. (Um bom exemplo disso é quando desenvolve várias aplicações no seu ambiente local usando o Emulador de Armazenamento Azure, que funciona 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 tipos de conta de armazenamento, consulte a introdução dos serviços de armazenamento Azure.To learn more about storage account types, see Introducing the Azure Storage services.

Na Residência de Dados da RegiãoIn Region Data Residency

Quando necessário para que todos os dados do cliente permaneçam numa única região, a conta de armazenamento associada à aplicação de função deve ser uma com a redundância da 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 teria de ser utilizada com funções duradouras de Azure para funções duradouras.An in-region redundant storage account would also need to be used with Azure Durable Functions for Durable Functions.

Outros dados de clientes geridos pela plataforma só serão armazenados na região quando hospedados num Ambiente de Serviço de Aplicações do Balanceador de Carga Interna (ou ILB ASE).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 da zona 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 Consumo e Premium, a infraestrutura Azure Functions escala o CPU e os recursos de memória adicionando instâncias adicionais do anfitrião funções, com base no número de eventos em que as suas funções são desencadeadas.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 hospedeiro de Funções no plano de Consumo está limitada a 1,5 GB de memória e a um CPU.Each instance of the Functions host in the Consumption plan is limited to 1.5 GB of memory and one CPU. Um caso do anfitrião é toda a aplicação de função, o que significa que todas as funções dentro de uma aplicação de função partilham recurso dentro de um caso e escala 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. As aplicações de função que partilham o mesmo plano de Consumo são dimensionadas de forma independente.Function apps that share the same Consumption plan are scaled independently. No plano Premium, o tamanho do seu plano determinará a memória disponível e CPU para todas as aplicações nesse plano nesse caso.In the Premium plan, your plan size will determine the available memory and CPU for all apps in that plan on that instance.

Os ficheiros de código de função são armazenados nas ações do Azure Files na conta principal de armazenamento da função.Function code files are stored on Azure Files shares on the function's main storage account. Quando elimina a conta de armazenamento principal da aplicação de função, os ficheiros de código de função são eliminados 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.

Escalagem de tempo de execuçãoRuntime scaling

A Azure Functions utiliza um componente chamado controlador de escala para monitorizar a taxa de eventos e determinar se deve escalar ou escalar.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 utiliza heurística para cada tipo de gatilho.The scale controller uses heuristics for each trigger type. Por exemplo, quando se está a usar um gatilho de armazenamento da Fila Azure, ele escala com base no comprimento da fila e na idade da mensagem de 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 Funções Azure é a aplicação de função.The unit of scale for Azure Functions is the function app. Quando a aplicação de função é dimensionada, são atribuídos recursos adicionais para executar várias instâncias do anfitrião Azure Functions.When the function app is scaled out, additional resources are allocated to run multiple instances of the Azure Functions host. Inversamente, à medida que a procura de cálculo é reduzida, o controlador de escala remove os casos de hospedeiro da função.Conversely, as compute demand is reduced, the scale controller removes function host instances. O número de casos é eventualmente dimensionado para zero quando não há funções a funcionar dentro de uma aplicação de função.The number of instances is eventually scaled in to zero when no functions are running within a function app.

Eventos de monitorização do controlador de escala e criação de instâncias

Início a FrioCold Start

Depois de a sua aplicação de função ter estado inativa durante alguns minutos, a plataforma pode escalar o número de casos em que a sua aplicação se reduz a 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. O próximo pedido tem a latência adicional de escala de zero para um.The next request has the added latency of scaling from zero to one. Esta latência é referida como um começo a frio.This latency is referred to as a cold start. O número de dependências que devem ser carregadas pela sua aplicação de função pode afetar o tempo de arranque a frio.The number of dependencies that must be loaded by your function app can impact the cold start time. O arranque a frio é mais um problema para operações sincronizadas, como os gatilhos HTTP que devem devolver uma resposta.Cold start is more of an issue for synchronous operations, such as HTTP triggers that must return a response. Se os arranques frios estiverem a afetar as suas funções, considere executar num plano Premium ou num plano dedicado com Always on ativado.If cold starts are impacting your functions, consider running in a Premium plan or in a Dedicated plan with Always on enabled.

Compreender comportamentos de escalaUnderstanding scaling behaviors

A escala pode variar em vários fatores, e escalar de forma 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 escala para estar ciente de:There are a few intricacies of scaling behaviors to be aware of:

  • Uma única aplicação de função apenas escala 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 do que uma mensagem ou pedido de cada vez, por isso não há um limite definido para o 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. Pode especificar uma escala máxima mais baixa para o acelerador, conforme necessário.You can specify a lower maximum to throttle scale as required.
  • Para os gatilhos HTTP, são atribuídas novas instâncias, no máximo, uma vez por segundo.For HTTP triggers, new instances are allocated, at most, once per second.
  • Para os gatilhos não-HTTP, são atribuídas novas instâncias, no máximo, uma vez a cada 30 segundos.For non-HTTP triggers, new instances are allocated, at most, once every 30 seconds. A escala é mais rápida quando funciona num plano Premium.Scaling is faster when running in a Premium plan.
  • Para os gatilhos de Service Bus, utilize direitos de gestão de recursos para a escala mais eficiente.For Service Bus triggers, use Manage rights on resources for the most efficient scaling. Com os direitos de escuta, o escalonamento não é tão preciso porque o comprimento da fila não pode ser usado para informar decisões de escala.With Listen rights, scaling isn't as accurate because the queue length can't be used to inform scaling decisions. Para saber mais sobre a definição de direitos nas políticas de acesso a autocarros de serviço, consulte a Política de Autorização de Acesso Partilhado.To learn more about setting rights in Service Bus access policies, see Shared Access Authorization Policy.
  • Para os gatilhos do Event Hub, consulte a orientação de escala no artigo de referência.For Event Hub triggers, see the scaling guidance in the reference article.

Limite escala para foraLimit scale out

Pode desejar restringir o número de casos a que uma aplicação se estende.You may wish to restrict the number of instances an app scales out to. Isto é mais comum em casos em que um componente a jusante como uma base de dados tem uma produção limitada.This is most common for cases where a downstream component like a database has limited throughput. Por padrão, as funções do plano de consumo irão aumentar para até 200 instâncias, e as funções de plano premium irão aumentar para até 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. Pode especificar um máximo inferior para uma aplicação específica modificando o functionAppScaleLimit valor.You can specify a lower maximum for a specific app by modifying the functionAppScaleLimit value. O functionAppScaleLimit pode ser definido para 0 ou nulo para sem restrições, ou um valor válido entre 1 e o máximo da aplicação.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 apps escaláveisBest practices and patterns for scalable apps

Existem muitos aspetos de uma aplicação de função que impactará a sua escala, incluindo a configuração do anfitrião, a pegada de tempo de execução 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 mais informações, consulte a secção de escalabilidade do artigo de considerações de desempenho.For more information, see the scalability section of the performance considerations article. Também deve estar ciente de como as ligações se comportam à medida que as escalas de aplicações da sua função.You should also be aware of how connections behave as your function app scales. Para obter mais informações, consulte Como gerir as ligações em Funções Azure.For more information, see How to manage connections in Azure Functions.

Para obter mais informações sobre a escala em Python e Node.js, consulte o guia de desenvolvimento python do Azure Functions Python - Escala e concurrency e Azure Functions Node.js developer guide - Escala e conúnência.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 faturaçãoBilling model

A faturação dos diferentes planos é descrita em detalhe na página de preços do Azure Functions.Billing for the different plans is described in detail on the Azure Functions pricing page. A utilização é agregada ao nível da aplicação de função e conta apenas o tempo em que 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. Seguem-se as unidades de faturação:The following are units for billing:

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

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

Comparação de planos de alojamentoHosting plans comparison

A tabela de comparação a seguir mostra todos os aspetos importantes para ajudar a decisão da app de hospedagem Azure Functions App: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 só pague por recursos de cálculo quando as suas funções estiverem em funcionamento.Scale automatically and only pay for compute resources when your functions are running. No plano de Consumo, os casos do anfitrião funções são adicionados e removidos dinamicamente com base no número de eventos que chegam.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 apenas quando as suas funções estiverem em funcionamento.✔ Pay only when your functions are running.
✔ de escalonamento automaticamente, mesmo durante períodos de alta carga.✔ scale-out automatically, even during periods of high load.
Plano PremiumPremium plan Enquanto escala automaticamente com base na procura, use trabalhadores pré-aquecidos para executar aplicações sem atrasos após estar inativo, executar em casos mais poderosos e ligar-se a 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 todas as funcionalidades do plano de Serviço de Aplicações:Consider the Azure Functions Premium plan in the following situations, in addition to all features of the App Service plan:
✔ As aplicações de função funcionam continuamente, ou quase continuamente.✔ Your function apps run continuously, or nearly continuously.
✔ Tem um elevado número de pequenas execuções e tem uma nota de execução alta, mas baixa nota de GB 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.
✔ Precisa de mais OPÇÕES de CPU ou de memória do que as fornecidas pelo plano de Consumo.✔ You need more CPU or memory options than what is provided by the Consumption plan.
✔ O seu código tem de ser executado mais tempo do que o tempo máximo de execução permitido no plano de Consumo.✔ Your code needs to run longer than the maximum execution time allowed on the Consumption plan.
✔ Necessita de funcionalidades que só estão disponíveis num plano Premium, como a conectividade da rede virtual.✔ You require features that are only available on a Premium plan, such as virtual network connectivity.
Plano dedicado1Dedicated plan1 Executar as suas funções dentro de um plano de Serviço de Aplicações com taxas regulares de plano de serviço de aplicações.Run your functions within an App Service plan at regular App Service plan rates. Bom ajuste para operações de longo prazo, bem como quando são necessários mais escalões preditivos e custos.Good fit for long running operations, as well as when more predictive scaling and costs are required. Considere um plano de Serviço de Aplicações nas seguintes situações:Consider an App Service plan in the following situations:
✔ Tem VMs existentes e subutilizados que já estão a executar outras instâncias do Serviço de Aplicações.✔ You have existing, underutilized VMs that are already running other App Service instances.
✔ Pretende fornecer uma imagem personalizada para executar as suas funções.✔ You want to provide a custom image on which to run your functions.
ASE1ASE1 App Service Environment (ASE) é uma funcionalidade de Serviço de Aplicações que fornece um ambiente totalmente isolado e dedicado para executar aplicações de Serviço de Aplicações de forma segura 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. AsE são adequadas para cargas de trabalho de aplicação que requerem:ASEs are appropriate for application workloads that require:
✔ muito alta escala.✔ Very high scale.
✔ isolamento total do computação e acesso seguro à rede.✔ Full compute isolation and secure network access.
✔ alta utilização da memória.✔ High memory utilization.
Utilizar o KubernetesKubernetes Kubernetes fornece um ambiente totalmente isolado e dedicado que corre em cima 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 aplicação que requerem:Kubernetes is appropriate for application workloads that require:
✔ requisitos de hardware personalizados.✔ Custom hardware requirements.
✔ isolamento e acesso seguro à rede.✔ Isolation and secure network access.
✔ Capacidade de funcionar em ambiente híbrido ou multi-nuvem.✔ Ability to run in hybrid or multi-cloud environment.
✔ Run ao lado das aplicações e serviços existentes da Kubernetes.✔ Run alongside existing Kubernetes applications and services.

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

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

Linux1Linux1
Apenas códigoCode-only
Windows2Windows2
Apenas códigoCode-only
Linux1,3Linux1,3
Recipiente de estivadorDocker 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 apoioNo 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
Utilizar o KubernetesKubernetes n/an/a n/an/a .NET Core.NET Core
Node.jsNode.js
JavaJava
PowerShell CorePowerShell Core
PythonPython

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

EscalaScale

Aumentar horizontalmenteScale out Max # instânciasMax # instances
Plano de consumoConsumption plan Evento impulsionado.Event driven. Escale automaticamente, mesmo durante períodos de alta carga.Scale out automatically, even during periods of high load. A Azure Functions escala os recursos de CPU e memória adicionando instâncias adicionais do anfitrião funções, com base no número de eventos em que as suas funções são ativadas.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 Evento impulsionado.Event driven. Escale automaticamente, mesmo durante períodos de alta carga.Scale out automatically, even during periods of high load. A Azure Functions escala os recursos de CPU e memória adicionando instâncias adicionais do anfitrião funções, com base no número de eventos em que as suas funções são ativadas.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/autoescalaManual/autoscale 10-2010-20
ASE1ASE1 Manual/autoescalaManual/autoscale 100100
Utilizar o KubernetesKubernetes Autoescala orientada para eventos para clusters Kubernetes usando KEDA.Event-driven autoscale for Kubernetes clusters using KEDA. Varia   por   aglomerado.  Varies by cluster.  

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

Comportamento de início a frioCold start behavior

Plano de consumo  Consumption plan As aplicações podem escalar para zero se estiverem inativas por um período de tempo, o que significa que alguns pedidos podem ter latência adicional no arranque.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 o tempo de início a frio, incluindo puxar de funções de espaço reservado pré-aquecido que já têm o hospedeiro de função e os processos linguísticos em funcionamento.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 Casos perpetuamente quentes para evitar qualquer arranque a frio.Perpetually warm instances to avoid any cold start.
Plano dedicado1Dedicated plan1 Ao executar um plano dedicado, o anfitrião funções pode funcionar continuamente, o que significa que o arranque 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 um plano dedicado, o anfitrião funções pode funcionar continuamente, o que significa que o arranque 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.
Utilizar o KubernetesKubernetes Depende da configuração KEDA.Depends on KEDA configuration. As aplicações podem ser configuradas para correr sempre e nunca ter arranque a frio, ou configuradas para escala a zero, o que resulta em arranque 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 de Serviço de Aplicações, consulte os limites do plano do Serviço de Aplicações.1 For specific limits for the various App Service plan options, see the App Service plan limits.

Limites do serviçoService limits

RecursoResource Plano de consumoConsumption plan Plano PremiumPremium plan Plano dedicadoDedicated plan ASEASE KubernetesKubernetes
Duração do tempo limite padrão (min)Default timeout duration (min) 55 3030 301301 3030 3030
Duração máxima do tempo limite (min)Max timeout duration (min) 1010 ilimitado7unbounded7 ilimitado2unbounded2 desvinculadounbounded desvinculadounbounded
Ligações de saída máxima (por exemplo)Max outbound connections (per instance) 600 ativos (1200 no total)600 active (1200 total) desvinculadounbounded desvinculadounbounded desvinculadounbounded desvinculadounbounded
Tamanho do pedido máximo (MB)3Max request size (MB)3 100100 100100 100100 100100 Depende do clusterDepends on cluster
Comprimento da corda de consulta máxima3Max query string length3 40964096 40964096 40964096 40964096 Depende do clusterDepends on cluster
Pedido máximo comprimento URL3Max request URL length3 81928192 81928192 81928192 81928192 Depende do clusterDepends on cluster
ACU por exemploACU per instance 100100 210-840210-840 100-840100-840 210-2508210-2508 Preços AKSAKS pricing
Memória máxima (GB por exemplo)Max memory (GB per instance) 1.51.5 3.5-143.5-14 1.75-141.75-14 3.5 - 143.5 - 14 Qualquer nó é suportadoAny node is supported
Aplicativos de função por planoFunction apps per plan 100100 100100 ilimitado4unbounded4 desvinculadounbounded desvinculadounbounded
Planos do Serviço de AplicaçõesApp 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-1000 GB50-1000 GB 1 TB1 TB n/an/a
Domínios personalizados por appCustom domains per app 50065006 500500 500500 500500 n/an/a
Suporte SSL de domínio personalizadoCustom domain SSL support ligação SNI SSL ilimitada incluídaunbounded SNI SSL connection included Conexões SNI SSL e 1 IP SSL não limitadas incluídasunbounded SNI SSL and 1 IP SSL connections included Conexões SNI SSL e 1 IP SSL não limitadas incluídasunbounded SNI SSL and 1 IP SSL connections included Conexões SNI SSL e 1 IP SSL não limitadas incluídasunbounded SNI SSL and 1 IP SSL connections included n/an/a

1 Por defeito, o tempo limite para as funções 1.x tempo de funcionamento num plano de Serviço de Aplicações não é limitado.1 By default, the timeout for the Functions 1.x runtime in an App Service plan is unbounded.
2 Requer que o plano de Serviço de Aplicações seja definido para Always On.2 Requires the App Service plan be set to Always On. Pague a preçospadrão.Pay at standard rates.
3 Estes limites são definidos no hospedeiro.3 These limits are set in the host.
4 O número real de aplicações de função que pode hospedar depende da atividade das aplicações, do tamanho das instâncias da máquina e da utilização correspondente do recurso.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 em armazenamento temporário em todas as aplicações no mesmo plano de Serviço de Aplicações.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 utiliza ficheiros Azure para armazenamento temporário.Consumption plan uses Azure Files for temporary storage.
6 Quando a sua aplicação de função está hospedada num plano de Consumo,apenas a opção CNAME é suportada.6 When your function app is hosted in a Consumption plan, only the CNAME option is supported. Para aplicações de função num plano Premium ou num plano de Serviço de Aplicações,pode mapear um domínio personalizado utilizando um CNAME ou um registo 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 Trabalhadores são funções que acolhem aplicações de clientes.8 Workers are roles that host customer apps. Os trabalhadores estão disponíveis em três tamanhos fixos: Um vCPU/3,5 GB de RAM; Dois vCPU/7 GB de RAM; Quatro vCPU/14 GB RAM.Workers are available in three fixed sizes: One vCPU/3.5 GB RAM; Two vCPU/7 GB RAM; Four vCPU/14 GB RAM.

Funcionalidades de redeNetworking features

FuncionalidadeFeature Plano de consumoConsumption plan Plano PremiumPremium plan Plano dedicadoDedicated plan ASEASE KubernetesKubernetes
Restrições ip de entrada e acesso ao site privadoInbound IP restrictions and private site access ✅Sim, é o seu✅Yes ✅Sim, é o seu✅Yes ✅Sim, é o seu✅Yes ✅Sim, é o seu✅Yes ✅Sim, é o seu✅Yes
Integração da rede virtualVirtual network integration ❌Não❌No ✅Sim (Regional)✅Yes (Regional) ✅Sim (Regional e Gateway)✅Yes (Regional and Gateway) ✅Sim, é o seu✅Yes ✅Sim, é o seu✅Yes
Gatilhos de rede virtuais (não HTTP)Virtual network triggers (non-HTTP) ❌Não❌No ✅Sim, é o seu✅Yes ✅Sim, é o seu✅Yes ✅Sim, é o seu✅Yes ✅Sim, é o seu✅Yes
Ligações híbridas (apenas para Windows)Hybrid connections (Windows only) ❌Não❌No ✅Sim, é o seu✅Yes ✅Sim, é o seu✅Yes ✅Sim, é o seu✅Yes ✅Sim, é o seu✅Yes
Restrições ip de saídaOutbound IP restrictions ❌Não❌No ✅Sim, é o seu✅Yes ✅Sim, é o seu✅Yes ✅Sim, é o seu✅Yes ✅Sim, é o seu✅Yes

FaturaçãoBilling

Plano de consumoConsumption plan Pague apenas o tempo que as suas funções executarem.Pay only for the time your functions run. A faturação baseia-se no número de execuções, no tempo de execução e na memória utilizada.Billing is based on number of executions, execution time, and memory used.
Plano PremiumPremium plan O plano premium baseia-se no número de segundos e memórias do núcleo utilizados em instâncias necessárias e pré-aquecidas.Premium plan is based on the number of core seconds and memory used across needed and pre-warmed instances. Pelo menos um caso por plano deve ser sempre aquecido.At least one instance per plan must be kept warm at all times. Este plano proporciona preços mais previsíveis.This plan provides more predictable pricing.
Plano dedicado1Dedicated plan1 Você paga o mesmo por aplicações de função em um Plano de Serviço de Aplicações como você faria para outros recursos do Serviço de Aplicações, como aplicações 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 fixa para um ASE que paga a 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 app service plano vCPU.In addition, there's a cost per App Service plan vCPU. Todas as aplicações alojadas num ASE estão na SKU de preços Isolada.All apps hosted in an ASE are in the Isolated pricing SKU.
Utilizar o KubernetesKubernetes Paga apenas os custos do seu cluster Kubernetes; nenhuma faturação adicional para funções.You pay only the costs of your Kubernetes cluster; no additional billing for Functions. A sua aplicação de função funciona como uma carga de trabalho de aplicação em cima do seu cluster, tal como uma aplicação 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 de Serviço de Aplicações, consulte os limites do plano do Serviço de Aplicações.1 For specific limits for the various App Service plan options, see the App Service plan limits.

Passos seguintesNext steps