Escalado y hospedaje de Azure FunctionsAzure Functions scale and hosting

Cuando crea una aplicación de funciones en Azure, debe elegir un plan de hospedaje para su aplicación.When you create a function app in Azure, you must choose a hosting plan for your app. Hay tres planes de hospedaje básico disponibles para Azure Functions: Plan de consumo, plan Premium y plan Dedicado (App Service).There are three basic hosting plans available for Azure Functions: Consumption plan, Premium plan, and Dedicated (App Service) plan. Todos los planes de hospedaje tienen disponibilidad general (GA) en máquinas virtuales Linux y Windows.All hosting plans are generally available (GA) on both Linux and Windows virtual machines.

El plan de hospedaje que elija determina los comportamientos siguientes:The hosting plan you choose dictates the following behaviors:

  • Cómo se escala la aplicación de funciones.How your function app is scaled.
  • Los recursos disponibles para cada instancia de aplicación de funciones.The resources available to each function app instance.
  • Compatibilidad con características avanzadas, como la conectividad con Azure Virtual Network.Support for advanced features, such as Azure Virtual Network connectivity.

Los planes de consumo y Prémium agregan automáticamente la capacidad de proceso cuando se ejecuta su código.Both Consumption and Premium plans automatically add compute power when your code is running. La aplicación se escala horizontalmente cuando es necesario para administrar la carga, y se reduce horizontalmente cuando el código se deja de ejecutar.Your app is scaled out when needed to handle load, and scaled in when code stops running. En el caso del plan de consumo, tampoco tiene que pagar para las VM inactivas ni la capacidad reservada de antemano.For the Consumption plan, you also don't have to pay for idle VMs or reserve capacity in advance.

El plan Prémium proporciona características adicionales, como instancias de proceso prémium, la capacidad de conservar las instancias semiactivas indefinidamente y la conectividad de red virtual.Premium plan provides additional features, such as premium compute instances, the ability to keep instances warm indefinitely, and VNet connectivity.

El plan de App Service le permite aprovechar la infraestructura dedicada que administra.App Service plan allows you to take advantage of dedicated infrastructure, which you manage. Su aplicación de funciones no se escala en función de los eventos, lo que significa que nunca se reduce horizontalmente a cero.Your function app doesn't scale based on events, which means is never scales in to zero. (Requiere que la configuración Always On está habilitada).(Requires that Always on is enabled.)

Para obtener una comparación detallada entre los distintos planes de hospedaje (incluido el hospedaje basado en Kubernetes), consulte la sección de la comparación entre planes de hospedaje.For a detailed comparison between the various hosting plans (including Kubernetes-based hosting), see the Hosting plans comparison section.

Plan de consumoConsumption plan

Cuando se usa el plan de consumo, las instancias del host de Azure Functions se agregan y quitan de forma dinámica según el número de eventos entrantes.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 plan sin servidor se escala automáticamente y solo se le cobra por los recursos de proceso cuando se ejecutan las funciones.This serverless plan scales automatically, and you're charged for compute resources only when your functions are running. En un plan de consumo, se agota el tiempo de espera de una ejecución de función tras un período de tiempo configurable.On a Consumption plan, a function execution times out after a configurable period of time.

La facturación se basa en el número de ejecuciones, el tiempo de ejecución y el uso de la memoria.Billing is based on number of executions, execution time, and memory used. La facturación es un agregado de todas las funciones dentro de la aplicación de función.Billing is aggregated across all functions within a function app. Para más información, consulte la página de precios de Azure Functions.For more information, see the Azure Functions pricing page.

El plan de consumo es el plan de hospedaje predeterminado y ofrece las siguientes ventajas:The Consumption plan is the default hosting plan and offers the following benefits:

  • Pague solo cuando se ejecutan las funcionesPay only when your functions are running
  • Escale horizontalmente de forma automática, incluso durante períodos de gran cargaScale out automatically, even during periods of high load

Las aplicaciones de funciones de la misma región se pueden asignar al mismo plan de consumo.Function apps in the same region can be assigned to the same Consumption plan. No hay ningún inconveniente ni problema en el hecho de tener varias aplicaciones ejecutándose en el mismo plan de consumo.There's no downside or impact to having multiple apps running in the same Consumption plan. La asignación de varias aplicaciones al mismo plan de consumo no tiene ningún impacto en la resistencia, la escalabilidad o la confiabilidad de cada aplicación.Assigning multiple apps to the same Consumption plan has no impact on resilience, scalability, or reliability of each app.

Para obtener más información sobre cómo calcular los costos cuando se ejecutan en un plan de consumo, vea Descripción de los costos en un plan de consumo.To learn more about how to estimate costs when running in a Consumption plan, see Understanding Consumption plan costs.

Plan PremiumPremium plan

Cuando se usa el plan Prémium, las instancias del host de Azure Functions se agregan y quitan según el número de eventos entrantes al igual que con el plan 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. El plan Prémium admite las características siguientes:Premium plan supports the following features:

  • Instancias permanentemente semiactivas para evitar cualquier inicio en fríoPerpetually warm instances to avoid any cold start
  • Conectividad de red virtualVNet connectivity
  • Duración de la ejecución ilimitada (60 minutos garantizados)Unlimited execution duration (60 minutes guaranteed)
  • Tamaños de la instancia Prémium (un núcleo, dos núcleos y cuatro instancias de núcleo)Premium instance sizes (one core, two core, and four core instances)
  • Precios más previsiblesMore predictable pricing
  • Asignación de aplicaciones de alta densidad para planes con varias aplicaciones de funcionesHigh-density app allocation for plans with multiple function apps

Para obtener información sobre cómo crear una aplicación de funciones en un plan Premium, consulte Plan Premium de Azure Functions.To learn how you can create a function app in a Premium plan, see Azure Functions Premium plan.

En lugar de la facturación por ejecución y la memoria consumida, la facturación del plan Premium se basa en la cantidad de núcleos por segundo y en la memoria utilizada en las instancias necesarias y preparadas previamente.Instead of billing per execution and memory consumed, billing for the Premium plan is based on the number of core seconds and memory used across needed and pre-warmed instances. Al menos debe haber una instancia preparada en todo momento en cada plan.At least one instance must be warm at all times per plan. Esto significa que hay un costo mensual mínimo por plan activo, independientemente del número de ejecuciones.This means that there's a minimum monthly cost per active plan, regardless of the number of executions. Tenga en cuenta que todas las aplicaciones de función de un plan Premium comparten instancias activas y preparadas.Keep in mind that all function apps in a Premium plan share pre-warmed and active instances.

Considere la posibilidad de elegir el plan Premium de Azure Functions en las siguientes situaciones:Consider the Azure Functions Premium plan in the following situations:

  • La aplicación de función se ejecuta de forma continua, o casi continua.Your function apps run continuously, or nearly continuously.
  • Tiene un gran número de ejecuciones pequeñas y tiene una factura de ejecución alta, pero una factura de pocos GB por segundo en el plan 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.
  • Necesita más opciones de CPU o memoria de las que proporciona el plan de consumo.You need more CPU or memory options than what is provided by the Consumption plan.
  • Su código debe ejecutarse durante más tiempo del máximo permitido en el plan de consumo.Your code needs to run longer than the maximum execution time allowed on the Consumption plan.
  • Necesita características que solo están disponibles en un plan Premium, como la conectividad de red virtual.You require features that are only available on a Premium plan, such as virtual network connectivity.

Plan dedicado (App Service)Dedicated (App Service) plan

Sus aplicaciones de funciones también pueden ejecutarse en las mismas máquinas virtuales dedicadas que otras aplicaciones de App Service (SKU básica, estándar, prémium y aislada).Your function apps can also run on the same dedicated VMs as other App Service apps (Basic, Standard, Premium, and Isolated SKUs).

Considere el plan de App Service en las situaciones siguientes:Consider an App Service plan in the following situations:

  • Tiene máquinas virtuales infrautilizadas que ya ejecutan otras instancias de App Service.You have existing, underutilized VMs that are already running other App Service instances.
  • Quiere proporcionar una imagen personalizada en la que ejecutar sus funciones.You want to provide a custom image on which to run your functions.

Paga lo mismo por las aplicaciones de funciones en un plan de App Service que por otros recursos de App Service, como las aplicaciones 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 más información acerca del funcionamiento del plan de App Service, consulte Introducción detallada sobre los planes de Azure App Service.For details about how the App Service plan works, see the Azure App Service plans in-depth overview.

Con un plan de App Service, para escalar horizontalmente de forma manual, puede agregar más instancias de máquina virtual.With an App Service plan, you can manually scale out by adding more VM instances. También puede habilitar el escalado automático.You can also enable autoscale. Para obtener más información, consulte Escalación del recuento de instancias de forma manual o automática.For more information, see Scale instance count manually or automatically. También puede escalar verticalmente eligiendo un plan de App Service diferente.You can also scale up by choosing a different App Service plan. Vea Escalado vertical de aplicaciones en Azure para obtener más información.For more information, see Scale up an app in Azure.

Al ejecutar funciones de JavaScript en un plan de App Service, debe elegir un plan con menos vCPU.When running JavaScript functions on an App Service plan, you should choose a plan that has fewer vCPUs. Para obtener más información, consulte Elección de los planes de App Service de un solo núcleo.For more information, see Choose single-core App Service plans.

La ejecución en una instancia de App Service Environment (ASE) permite aislar completamente las funciones y aprovechar las ventajas de la gran escala.Running in an App Service Environment (ASE) lets you fully isolate your functions and take advantage of high scale.

Always OnAlways On

Si se ejecuta en un plan de App Service, debe habilitar la configuración Always On para que la aplicación de función se ejecute correctamente.If you run on an App Service plan, you should enable the Always on setting so that your function app runs correctly. En un plan de App Service, el tiempo de ejecución de las funciones queda inactivo después de unos minutos de inactividad, por lo que solo los desencadenadores HTTP podrán "reactivar" las funciones.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 solo está disponible en un plan de App Service.Always on is available only on an App Service plan. En un plan de consumo, la plataforma activa automáticamente las aplicaciones de función.On a Consumption plan, the platform activates function apps automatically.

Duración del tiempo de espera de una aplicación de funciónFunction app timeout duration

La duración del tiempo de espera de una aplicación de funciones se define mediante la propiedad functionTimeout en el archivo de proyecto host.json.The timeout duration of a function app is defined by the functionTimeout property in the host.json project file. En la tabla siguiente se muestran los valores predeterminados y máximos en minutos para ambos planes y en las distintas versiones en tiempo de ejecución:The following table shows the default and maximum values in minutes for both plans and the different runtime versions:

PlanPlan Versión en tiempo de ejecuciónRuntime Version Valor predeterminadoDefault MáximaMaximum
ConsumoConsumption 1.x1.x 55 1010
ConsumoConsumption 2.x2.x 55 1010
ConsumoConsumption 3.x3.x 55 1010
PremiumPremium 1.x1.x 3030 Sin límiteUnlimited
PremiumPremium 2.x2.x 3030 Sin límiteUnlimited
PremiumPremium 3.x3.x 3030 Sin límiteUnlimited
App ServiceApp Service 1.x1.x Sin límiteUnlimited Sin límiteUnlimited
App ServiceApp Service 2.x2.x 3030 Sin límiteUnlimited
App ServiceApp Service 3.x3.x 3030 Sin límiteUnlimited

Nota

Independientemente de la configuración del tiempo de espera de la aplicación de función, 230 segundos es la cantidad de tiempo máxima que una función desencadenada por HTTP puede tardar en responder a una solicitud.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. Esto se debe al tiempo de espera de inactividad predeterminado de Azure Load Balancer.This is because of the default idle timeout of Azure Load Balancer. Para tiempos de procesamiento más largos, considere la posibilidad de usar el patrón asincrónico de Durable Functions o aplazar el trabajo real y devolver una respuesta inmediata.For longer processing times, consider using the Durable Functions async pattern or defer the actual work and return an immediate response.

Incluso con Always On habilitado, el tiempo de espera de ejecución para las funciones individuales se controla mediante la opción functionTimeout en el archivo de proyecto 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.

Determinación del plan de hospedaje de una aplicación existenteDetermine the hosting plan of an existing application

Para determinar el plan de hospedaje que usa la aplicación de funciones, consulte Plan de App Service en la pestaña Introducción de la aplicación de funciones en Azure Portal.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 el plan de tarifa, seleccione el nombre del Plan de App Service y, a continuación, seleccione Propiedades en el panel izquierdo.To see the pricing tier, select the name of the App Service Plan, and then select Properties from the left pane.

Vista del plan de escalado en el portal

También puede usar la CLI de Azure para determinar el plan, como sigue: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

Cuando el resultado de este comando es dynamic, la aplicación de función está en el plan de consumo.When the output from this command is dynamic, your function app is in the Consumption plan. Cuando la salida de este comando es ElasticPremium, su aplicación de funciones está en el plan Prémium.When the output from this command is ElasticPremium, your function app is in the Premium plan. Todos los demás valores indican los distintos niveles de un plan de App Service.All other values indicate different tiers of an App Service plan.

Requisitos de la cuenta de almacenamientoStorage account requirements

En cualquier plan, una aplicación de funciones requiere una cuenta de Azure Storage general que admita almacenamiento de Azure en blobs, colas, archivos y tablas.On any plan, a function app requires a general Azure Storage account, which supports Azure Blob, Queue, Files, and Table storage. Esto es porque Azure Functions se basa en Azure Storage para realizar operaciones como la administración de desencadenadores y el registro de las ejecuciones de funciones, pero algunas cuentas de almacenamiento no admiten colas y tablas.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 cuentas, que incluyen las cuentas de almacenamiento solo para blobs (incluido almacenamiento Premium) y las cuentas de almacenamiento de uso general con replicación de almacenamiento con redundancia de zona, se filtran horizontalmente de las selecciones de Cuenta de almacenamiento existentes cuando se crea una aplicación de función.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.

Los desencadenadores y enlaces para almacenar los datos de la aplicación también pueden usar la misma cuenta de almacenamiento que usa la aplicación de función.The same storage account used by your function app can also be used by your triggers and bindings to store your application data. Sin embargo, para las operaciones que consumen muchos recursos de almacenamiento, debe usar una cuenta de almacenamiento independiente.However, for storage-intensive operations, you should use a separate storage account.

Una misma cuenta de almacenamiento puede estar compartida entre varias aplicaciones de funciones sin que se produzcan problemas.It's possible for multiple function apps to share the same storage account without any issues. (Un buen ejemplo es cuando se desarrollan varias aplicaciones en el entorno local mediante el Emulador de Azure Storage, que actúa como una cuenta de almacenamiento).(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 obtener más información sobre los tipos de cuenta de almacenamiento, vea Introducción de los servicios Azure Storage.To learn more about storage account types, see Introducing the Azure Storage services.

Cómo funcionan los planes de consumo y premiumHow the Consumption and Premium plans work

En los planes de consumo y Premium, la infraestructura de Azure Functions escala los recursos de CPU y memoria. Para ello, agrega instancias adicionales del host de Functions, según el número de eventos en los que se desencadenan sus funciones.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 instancia del host de Functions del plan de consumo tiene una limitación de 1.5 GB de memoria y una CPU.Each instance of the Functions host in the Consumption plan is limited to 1.5 GB of memory and one CPU. Una instancia del host es la aplicación de funciones completa, lo que significa que todas las funciones de una aplicación de funciones comparten recursos al mismo tiempo en una instancia y escala determinadas.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. Las aplicaciones de función que comparten el mismo plan de consumo se escalan de manera independiente.Function apps that share the same Consumption plan are scaled independently. En el plan Premium, el tamaño del plan determinará la memoria y la CPU disponibles para todas las aplicaciones de ese plan en esa instancia.In the Premium plan, your plan size will determine the available memory and CPU for all apps in that plan on that instance.

Los archivos de código de función se almacenan en recursos compartidos de Azure Files en la cuenta de almacenamiento principal de la función.Function code files are stored on Azure Files shares on the function's main storage account. Al eliminarse la cuenta de almacenamiento principal de la aplicación de función, los archivos de código de función también se eliminan y no se pueden recuperar.When you delete the main storage account of the function app, the function code files are deleted and cannot be recovered.

Escalado del entorno de tiempo de ejecuciónRuntime scaling

Azure Functions usa un componente denominado controlador de escala para supervisar la tasa de eventos y determinar si se debe escalar o reducir horizontalmente.Azure Functions uses a component called the scale controller to monitor the rate of events and determine whether to scale out or scale in. El controlador de escala usa la heurística para cada tipo de desencadenador.The scale controller uses heuristics for each trigger type. Por ejemplo, al usar un desencadenador de Azure Queue Storage, se escala en función de la longitud de la cola y la antigüedad del mensaje más antiguo de la cola.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.

La unidad de escala de Azure Functions es la aplicación de funciones.The unit of scale for Azure Functions is the function app. Al escalar horizontalmente la aplicación de función, se asignan recursos adicionales para ejecutar varias instancias del host de Azure Functions.When the function app is scaled out, additional resources are allocated to run multiple instances of the Azure Functions host. Por el contrario, si la demanda se reduce, el controlador de escala elimina instancias del host de la función.Conversely, as compute demand is reduced, the scale controller removes function host instances. El número de instancias se reduce horizontalmente hasta cero cuando no se ejecuta ninguna función en la aplicación de funciones.The number of instances is eventually scaled in to zero when no functions are running within a function app.

Controlador de escala que supervisa los eventos y la creación de instancias

Arranque en fríoCold Start

Una vez que la aplicación de funciones ha estado inactiva durante varios minutos, la plataforma puede escalar el número de instancias en las que la aplicación se ejecuta hasta cero.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. La siguiente solicitud tiene la latencia agregada al escalar de cero a uno.The next request has the added latency of scaling from zero to one. Esta latencia se conoce como arranque en frío.This latency is referred to as a cold start. El número de dependencias que la aplicación de funciones debe cargar puede afectar el momento del arranque en frío.The number of dependencies that must be loaded by your function app can impact the cold start time. El arranque en frío es más problemático para las operaciones sincrónicas, como los desencadenadores HTTP que deben devolver una respuesta.Cold start is more of an issue for synchronous operations, such as HTTP triggers that must return a response. Si los arranques en frío afectan a las funciones, considere la posibilidad de realizar las ejecuciones con un plan Premium o en un plan dedicado con la opción AlwaysOn habilitada.If cold starts are impacting your functions, consider running in a Premium plan or in a Dedicated plan with Always on enabled.

Descripción de los comportamientos de escaladoUnderstanding scaling behaviors

El escalado puede variar en función de varios factores, y realizarse de forma diferente según el desencadenador y el idioma seleccionados.Scaling can vary on a number of factors, and scale differently based on the trigger and language selected. Hay algunas complejidades de los comportamientos del escalado que hay que tener en cuenta:There are a few intricacies of scaling behaviors to be aware of:

  • Una aplicación de funciones única solo se escala horizontalmente hasta un máximo de 200 instancias.A single function app only scales out to a maximum of 200 instances. Una única instancia puede procesar más de un mensaje o solicitud a la vez, por lo que no hay un límite establecido en el número de ejecuciones 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.
  • En el caso de los desencadenadores HTTP, solo se asignan nuevas instancias como máximo una vez cada segundo.For HTTP triggers, new instances are allocated, at most, once per second.
  • Para los desencadenadores que no son HTTP, solo se asignan nuevas instancias como máximo una vez cada 30 segundos.For non-HTTP triggers, new instances are allocated, at most, once every 30 seconds. El escalado es más rápido cuando se ejecuta en un plan Premium.Scaling is faster when running in a Premium plan.
  • En el caso de los desencadenadores de Service Bus, use los derechos de Administración en los recursos para obtener el escalado más eficaz.For Service Bus triggers, use Manage rights on resources for the most efficient scaling. Con los derechos de Escucha, el escalado no es tan preciso porque la longitud de la cola no se puede utilizar para informar sobre las decisiones de escalado.With Listen rights, scaling isn't as accurate because the queue length can't be used to inform scaling decisions. Para más información sobre cómo establecer derechos en las directivas de acceso de Service Bus, consulte Directivas de autorización de acceso compartido.To learn more about setting rights in Service Bus access policies, see Shared Access Authorization Policy.
  • Para los desencadenadores de Event Hubs, consulte la guía de escalado en el artículo de referencia.For Event Hub triggers, see the scaling guidance in the reference article.

Procedimientos recomendados y patrones para aplicaciones escalablesBest practices and patterns for scalable apps

Hay muchos aspectos de una aplicación de función que afectarán a cómo se escala esta, incluida la configuración del host, la superficie del sistema de tiempo de ejecución y la eficacia de los 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 obtener más información, consulte la sección de escalabilidad del artículo sobre consideraciones de rendimiento.For more information, see the scalability section of the performance considerations article. También debe tener en cuenta cómo se comportan las conexiones a medida que la aplicación de función se escala.You should also be aware of how connections behave as your function app scales. Para más información, consulte How to manage connections in Azure Functions (Administración de conexiones en Azure Functions).For more information, see How to manage connections in Azure Functions.

Para obtener más información sobre el escalado en Python y Node.js, consulte la Guía de Azure Functions para desarrolladores de Python: escalado y simultaneidad y la Guía para desarrolladores de Node.js para Azure Functions: escalado y simultaneidad.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 facturaciónBilling model

La facturación de los diferentes planes se describe en detalle en la página de precios de Azure Functions.Billing for the different plans is described in detail on the Azure Functions pricing page. El uso se agrega en el nivel de la aplicación de función, y solo se cuenta el tiempo que el código de la función está en ejecución.Usage is aggregated at the function app level and counts only the time that function code is executed. Estas son las unidades de facturación:The following are units for billing:

  • Consumo de recursos en gigabytes-segundo (GB-s) .Resource consumption in gigabyte-seconds (GB-s). Se calcula como una combinación del tamaño de la memoria y el tiempo de ejecución de todas las funciones de una aplicación de función.Computed as a combination of memory size and execution time for all functions within a function app.
  • Ejecuciones.Executions. Se cuenta cada vez que se ejecuta una función en respuesta a un desencadenador de eventos.Counted each time a function is executed in response to an event trigger.

Puede encontrar consultas útiles y obtener información sobre cómo comprender la factura de consumo en las P+F sobre facturación.Useful queries and information on how to understand your consumption bill can be found on the billing FAQ.

Comparación de planes de hospedajeHosting plans comparison

En la siguiente tabla de comparación se muestran todos los aspectos importantes que ayudan a elegir un plan de hospedaje para la aplicación de Azure Functions:The following comparison table shows all important aspects to help the decision of Azure Functions App hosting plan choice:

Resumen del planPlan summary

Plan de consumoConsumption plan Escale de forma automática y pague los recursos de proceso solo cuando se ejecuten las funciones.Scale automatically and only pay for compute resources when your functions are running. En el plan de consumo, las instancias del host de Functions se agregan y quitan de forma dinámica según el 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.
✔ Plan de hospedaje predeterminado.✔ Default hosting plan.
✔ Pague solo cuando se ejecutan las funciones.✔ Pay only when your functions are running.
✔ Escale horizontalmente de forma automática, incluso durante períodos de una carga elevada.✔ scale-out automatically, even during periods of high load.
Plan PremiumPremium plan Cuando use el escalado automático en función de la demanda, use trabajos preparados previamente para ejecutar aplicaciones sin ningún retraso después de que estén inactivas, ejecutarlas en instancias más eficaces y conectarse a redes virtuales.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. Plantéese el uso del plan Premium de Azure Functions en las siguientes situaciones, además de todas las características del plan de App Service:Consider the Azure Functions Premium plan in the following situations, in addition to all features of the App Service plan:
✔ La aplicación de funciones se ejecuta de forma continua, o casi continua.✔ Your function apps run continuously, or nearly continuously.
✔ Tiene un gran número de ejecuciones pequeñas y tiene una factura de ejecuciones elevada, además de una factura de pocos GB por segundo en el plan 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.
✔ Necesita más opciones de CPU o memoria de las que proporciona el plan de consumo.✔ You need more CPU or memory options than what is provided by the Consumption plan.
✔ Su código debe ejecutarse durante más tiempo del máximo permitido en el plan de consumo.✔ Your code needs to run longer than the maximum execution time allowed on the Consumption plan.
✔ Necesita características que solo están disponibles en un plan Premium, como la conectividad de red virtual.✔ You require features that are only available on a Premium plan, such as virtual network connectivity.
Plan dedicado 1Dedicated plan1 Ejecute sus funciones en un plan de App Service con las tarifas de plan de App Service normal.Run your functions within an App Service plan at regular App Service plan rates. Buena opción para las operaciones de larga duración, así como para las situaciones en las que se requiere un escalado y costos más predictivos.Good fit for long running operations, as well as when more predictive scaling and costs are required. Considere el plan de App Service en las situaciones siguientes:Consider an App Service plan in the following situations:
✔ Tiene máquinas virtuales infrautilizadas que ya ejecutan otras instancias de App Service.✔ You have existing, underutilized VMs that are already running other App Service instances.
✔ Quiere proporcionar una imagen personalizada en la que ejecutar sus funciones.✔ You want to provide a custom image on which to run your functions.
ASE 1ASE1 App Service Environment (ASE) es una característica de App Service que proporciona un entorno completamente aislado y dedicado para ejecutar de forma segura las aplicaciones de App Service a gran 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. Las instancias de ASE son adecuadas para cargas de trabajo de aplicaciones que necesitan:ASEs are appropriate for application workloads that require:
✔ Una gran escala.✔ Very high scale.
✔ Aislamiento y acceso a redes seguro.✔ Isolation and secure network access.
✔ Alta utilización de memoria.✔ High memory utilization.
KubernetesKubernetes Kubernetes proporciona un entorno completamente aislado y dedicado que se ejecuta sobre la plataforma de Kubernetes.Kubernetes provides a fully isolated and dedicated environment running on top of the Kubernetes platform. Kubernetes resulta adecuado para cargas de trabajo de aplicaciones que necesitan:Kubernetes is appropriate for application workloads that require:
✔ Requisitos de hardware personalizados.✔ Custom hardware requirements.
✔ Aislamiento y acceso a redes seguro.✔ Isolation and secure network access.
✔ Capacidad de ejecutarse en entornos híbridos o de varias nubes.✔ Ability to run in hybrid or multi-cloud environment.
✔ Ejecutarse junto con aplicaciones y servicios de Kubernetes existentes.✔ Run alongside existing Kubernetes applications and services.

1 Para conocer los límites específicos de las distintas opciones de plan de App Service, consulte Límites del plan de App Service.1 For specific limits for the various App Service plan options, see the App Service plan limits.

Sistema operativo o entorno de ejecuciónOperating system/runtime

Linux1Linux1
Solo códigoCode-only
Windows2Windows2
Solo códigoCode-only
Linux1, 3Linux1,3
Contenedor de DockerDocker container
Plan de consumoConsumption plan .NET Core.NET Core
Node.jsNode.js
JavaJava
PythonPython
.NET Core.NET Core
Node.jsNode.js
JavaJava
PowerShell CorePowerShell Core
No se admiteNo support
Plan 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
Plan dedicado 4Dedicated 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
ASE 4ASE4 .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

1Linux es el único sistema operativo admitido para la pila en tiempo de ejecución de Python.1Linux is the only supported operating system for the Python runtime stack.
2Windows es el único sistema operativo admitido para la pila en tiempo de ejecución de PowerShell.2Windows is the only supported operating system for the PowerShell runtime stack.
3Linux es el único sistema operativo admitido para los contenedores de Docker.3Linux is the only supported operating system for Docker containers. 4 Para conocer los límites específicos de las distintas opciones de plan de App Service, consulte Límites del plan de App Service.4 For specific limits for the various App Service plan options, see the App Service plan limits.

EscalaScale

Escalado horizontalScale out N.º máximo de instanciasMax # instances
Plan de consumoConsumption plan Basado en eventos.Event driven. Escale horizontalmente de forma automática, incluso durante períodos de gran carga.Scale out automatically, even during periods of high load. La infraestructura de Azure Functions escala automáticamente los recursos de CPU y la memoria mediante la incorporación de instancias del host de Functions, según el número de eventos desencadenados por las funciones.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
Plan PremiumPremium plan Basado en eventos.Event driven. Escale horizontalmente de forma automática, incluso durante períodos de gran carga.Scale out automatically, even during periods of high load. La infraestructura de Azure Functions escala automáticamente los recursos de CPU y la memoria mediante la incorporación de instancias del host de Functions, según el número de eventos desencadenados por las funciones.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
Plan dedicado 1Dedicated plan1 Escalabilidad automática o manualManual/autoscale 10-2010-20
ASE 1ASE1 Escalabilidad automática o manualManual/autoscale 100100
KubernetesKubernetes Escalado automático basado en eventos para los clústeres de Kubernetes mediante KEDA.Event-driven autoscale for Kubernetes clusters using KEDA. Varía por clúster.  Varies by cluster.  

1 Para conocer los límites específicos de las distintas opciones de plan de App Service, consulte Límites del plan de App Service.1 For specific limits for the various App Service plan options, see the App Service plan limits.

Comportamiento del arranque en fríoCold start behavior

Plan de consumoConsumption plan Las aplicaciones pueden escalarse a cero si están inactivas durante un período de tiempo, por lo que algunas solicitudes pueden tener una latencia adicional en el arranque.Apps may scale to zero if idle for a period of time, meaning some requests may have additional latency at startup. El plan de consumo incluye algunas optimizaciones para reducir el tiempo de arranque en frío, incluida la extracción desde funciones de marcador de posición previamente preparadas que ya tienen en ejecución un host de función y procesos de lenguaje.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.
Plan PremiumPremium plan Instancias permanentemente preparadas para evitar cualquier arranque en frío.Perpetually warm instances to avoid any cold start.
Plan dedicado 1Dedicated plan1 Cuando se ejecuta en un plan dedicado, el host de Functions se puede ejecutar de forma continua, lo que significa que el arranque en frío no es realmente un problema.When running in a Dedicated plan, the Functions host can run continuously, which means that cold start isn’t really an issue.
ASE 1ASE1 Cuando se ejecuta en un plan dedicado, el host de Functions se puede ejecutar de forma continua, lo que significa que el arranque en frío no es realmente un 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 de la configuración de KEDA.Depends on KEDA configuration. Las aplicaciones se pueden configurar para ejecutarse de forma continua y arrancar en frío, o para escalarse a cero, lo que provoca un arranque en frío con los nuevos 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 conocer los límites específicos de las distintas opciones de plan de App Service, consulte Límites del plan de App Service.1 For specific limits for the various App Service plan options, see the App Service plan limits.

Límites de servicioService limits

RecursoResource Plan de consumoConsumption plan Plan PremiumPremium plan Plan dedicadoDedicated plan Azure App Service EnvironmentASE KubernetesKubernetes
Duración de tiempo de espera predeterminada (min)Default timeout duration (min) 55 3030 301301 3030 3030
Duración máxima de tiempo de espera (min)Max timeout duration (min) 1010 sin enlazar7unbounded7 sin enlazar2unbounded2 sin enlazarunbounded sin enlazarunbounded
Número máximo de conexiones salientes (por instancia)Max outbound connections (per instance) 600 activas (1200 en total)600 active (1200 total) sin enlazarunbounded sin enlazarunbounded sin enlazarunbounded sin enlazarunbounded
Tamaño máximo de la solicitud (MB)3Max request size (MB)3 100100 100100 100100 100100 Depende del clústerDepends on cluster
Longitud máxima de la cadena de consulta3Max query string length3 40964096 40964096 40964096 40964096 Depende del clústerDepends on cluster
Longitud máxima de URL de solicitud3Max request URL length3 81928192 81928192 81928192 81928192 Depende del clústerDepends on cluster
ACU por instanciaACU per instance 100100 210-840210-840 100-840100-840 210-2508210-2508 Precios de AKSAKS pricing
Memoria máxima (GB por instancia)Max memory (GB per instance) 1.51.5 3,5-143.5-14 1,75-141.75-14 3,5-143.5 - 14 Se admite cualquier nodoAny node is supported
Aplicaciones de funciones por planFunction apps per plan 100100 100100 sin enlazar4unbounded4 sin enlazarunbounded sin enlazarunbounded
Planes de App ServiceApp Service plans 100 por región100 per region 100 por grupo de recursos100 per resource group 100 por grupo de recursos100 per resource group - -
Almacenamiento5Storage5 5 TB5 TB 250 GB250 GB 50-1000 GB50-1000 GB 1 TB1 TB N/Dn/a
Dominios personalizados por aplicaciónCustom domains per app 50065006 500500 500500 500500 N/Dn/a
Compatibilidad con dominio Compatibilidad con SSLCustom domain SSL support conexión SNI SSL sin enlazar incluidaunbounded SNI SSL connection included conexiones SNI SSL ilimitadas y 1 conexión SSL de IP incluidasunbounded SNI SSL and 1 IP SSL connections included conexiones SNI SSL ilimitadas y 1 conexión SSL de IP incluidasunbounded SNI SSL and 1 IP SSL connections included conexiones SNI SSL ilimitadas y 1 conexión SSL de IP incluidasunbounded SNI SSL and 1 IP SSL connections included N/Dn/a

1 De manera predeterminada, el tiempo de expiración del runtime de Functions 1.x en un plan de App Service no está enlazado.1 By default, the timeout for the Functions 1.x runtime in an App Service plan is unbounded.
2 Requiere que el plan de App Service se establezca en Always On.2 Requires the App Service plan be set to Always On. Abonar según las tarifas estándar.Pay at standard rates.
3 Estos límites se establecen en el host.3 These limits are set in the host.
4 El número real de aplicaciones de funciones que puede hospedar depende de la actividad de las aplicaciones, el tamaño de las instancias de máquina y la utilización de recursos correspondiente.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 El límite de almacenamiento es el tamaño total del almacenamiento temporal entre todas las aplicaciones en el mismo plan de App Service.5 The storage limit is the total content size in temporary storage across all apps in the same App Service plan. El plan de consumo usa Azure Files para el almacenamiento temporal.Consumption plan uses Azure Files for temporary storage.
6 Cuando la aplicación de funciones se hospeda en un plan de consumo, solo se admite solo la opción CNAME.6 When your function app is hosted in a Consumption plan, only the CNAME option is supported. Para aplicaciones de funciones se hospedan en un plan Premium o en un plan de App Service, puede asignar un dominio personalizado mediante un CNAME o un 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 Garantizado para un máximo de 60 minutos.7 Guaranteed for up to 60 minutes.
8 Los trabajos son roles que hospedan las aplicaciones del cliente.8 Workers are roles that host customer apps. Los trabajos están disponibles en tres tamaños fijos: Una CPU virtual/3,5 GB RAM; dos CPU virtuales/7 GB RAM; cuatro CPU virtuales/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.

Características de redNetworking features

CaracterísticaFeature Plan de consumoConsumption plan Plan PremiumPremium plan Plan dedicadoDedicated plan Azure App Service EnvironmentASE KubernetesKubernetes
Restricciones de IP de entrada y acceso al sitio privadoInbound IP restrictions and private site access ✅Sí✅Yes ✅Sí✅Yes ✅Sí✅Yes ✅Sí✅Yes ✅Sí✅Yes
Integración de redes virtualesVirtual network integration ❌No❌No ✅Sí (regional)✅Yes (Regional) ✅Sí (regional y puerta de enlace)✅Yes (Regional and Gateway) ✅Sí✅Yes ✅Sí✅Yes
Desencadenadores de red virtual (no HTTP)Virtual network triggers (non-HTTP) ❌No❌No ✅Sí✅Yes ✅Sí✅Yes ✅Sí✅Yes ✅Sí✅Yes
Conexiones híbridas (solo Windows)Hybrid connections (Windows only) ❌No❌No ✅Sí✅Yes ✅Sí✅Yes ✅Sí✅Yes ✅Sí✅Yes
Restricciones de IP de salidaOutbound IP restrictions ❌No❌No ✅Sí✅Yes ✅Sí✅Yes ✅Sí✅Yes ✅Sí✅Yes

FacturaciónBilling

Plan de consumoConsumption plan Solo paga por el tiempo durante el que se ejecutan las funciones.Pay only for the time your functions run. La facturación se basa en el número de ejecuciones, el tiempo de ejecución y el uso de la memoria.Billing is based on number of executions, execution time, and memory used.
Plan PremiumPremium plan El plan Premium se basa en la cantidad de núcleos por segundo y en la memoria usada en las instancias necesarias y preparadas previamente.Premium plan is based on the number of core seconds and memory used across needed and pre-warmed instances. Al menos una instancia por plan se debe mantener preparada en todo momento.At least one instance per plan must be kept warm at all times. Este plan ofrece precios más predecibles.This plan provides more predictable pricing.
Plan dedicado 1Dedicated plan1 Paga lo mismo por las aplicaciones de funciones en un plan de App Service que por otros recursos de App Service, como las aplicaciones web.You pay the same for function apps in an App Service Plan as you would for other App Service resources, like web apps.
ASE 1ASE1 Hay una tarifa plana mensual para una instancia de ASE que paga por la infraestructura y no cambia con el tamaño de la instancia de 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. Además, existe un costo por cada vCPU del plan de App Service.In addition, there's a cost per App Service plan vCPU. Todas las aplicaciones hospedadas en una instancia de ASE están en el SKU de precios Aislado.All apps hosted in an ASE are in the Isolated pricing SKU.
KubernetesKubernetes Solo paga los costos del clúster de Kubernetes; no existe facturación adicional para Functions.You pay only the costs of your Kubernetes cluster; no additional billing for Functions. La aplicación de funciones se ejecuta como una carga de trabajo de aplicación en el clúster, al igual que una aplicación normal.Your function app runs as an application workload on top of your cluster, just like a regular app.

1 Para conocer los límites específicos de las distintas opciones de plan de App Service, consulte Límites del plan de App Service.1 For specific limits for the various App Service plan options, see the App Service plan limits.

Pasos siguientesNext steps