Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Flex Consumption es un plan de hospedaje de Azure Functions basado en Linux que se basa en el modelo de consumo de facturación sin servidor paga por lo que usa. Ofrece más flexibilidad y personalización mediante la introducción de redes privadas, selección de tamaño de memoria de instancia y características de escalado horizontal rápido y grande, basadas en un modelo sin servidor.
Puede revisar los ejemplos de un extremo a otro que incluyen el plan Flex Consumption en el repositorio de ejemplos del plan Flex Consumption.
Benefits
El plan flex Consumption se basa en los puntos fuertes del plan de consumo sin servidor, que incluye el escalado dinámico y la facturación basada en la ejecución. Con Flex Consumption, también obtendrá estas características adicionales:
- Tiempos de inicio en frío reducidos: habilite instancias listas para siempre para lograr tiempos de inicio en frío más rápidos en comparación con el plan de consumo.
- Compatibilidad con redes virtuales: la integración de red virtual permite que la aplicación sin servidor se ejecute en una red virtual.
- Escalado por función: cada función de la aplicación se escala de forma independiente en función de su carga de trabajo, lo que podría provocar una asignación de recursos más eficaz.
- Control mejorado de simultaneidad: mejor control de las ejecuciones simultáneas con la configuración de simultaneidad configurable por función.
- Configuración de memoria flexible: Flex Consumption ofrece varias opciones de tamaño de instancia , lo que le permite optimizar los requisitos específicos de la carga de trabajo.
Esta tabla le ayuda a comparar directamente las características de Flex Consumption con el plan de hospedaje de consumo:
| Feature | Consumption | Flex Consumption |
|---|---|---|
| Escala a cero | ✅ Sí | ✅ Sí |
| Comportamiento de escala | Controlado por eventos | Controlado por eventos (rápido) |
| Redes virtuales | ❌ No compatible | ✅ Compatible |
| Proceso dedicado (mitiga los arranques en frío) | ❌ Ninguno | ✅ Instancias siempre preparadas (opcional) |
| Billing | Solo tiempo de ejecución | Tiempo de ejecución + instancias siempre preparadas |
| Instancias de escalabilidad horizontal (máx.) | 200 | 1000 |
Para obtener una comparación completa del plan de consumo flexible con respecto al plan de consumo y todos los demás tipos de plan y hospedaje, consulte opciones de escalado y hospedaje de funciones.
Integración de la red virtual
Flex Consumption amplía las ventajas tradicionales del plan de consumo agregando compatibilidad con integración de red virtual. Cuando las aplicaciones se ejecutan en un plan de consumo flexible, pueden conectarse a otros servicios de Azure protegidos dentro de una red virtual. Al mismo tiempo que le permite aprovechar las ventajas de la facturación y la escala sin servidor, junto con las ventajas de escala y rendimiento del plan de consumo flexible. Para obtener más información, consulte Habilitación de la integración de red virtual.
Tamaños de instancia
Al crear la aplicación de funciones en un plan de consumo flexible, puede seleccionar el tamaño de memoria de las instancias en las que se ejecuta la aplicación. Consulte Facturación para obtener información sobre cómo los tamaños de memoria de instancia afectan a los costos de la aplicación de funciones.
Actualmente, Flex Consumption ofrece estas opciones de tamaño de instancia:
| Memoria de instancia (MB) | Núcleos de CPU |
|---|---|
| 512 | 0.25 |
| 2048 | 1 |
| 4096 | 2 |
Nota:
Los valores principales de CPU que se muestran son asignaciones típicas para instancias con el tamaño de memoria especificado. Sin embargo, las instancias iniciales pueden concederse asignaciones de núcleos ligeramente diferentes para mejorar el rendimiento. Cada instancia de Flex Consumption también incluye 272 MB adicionales de memoria asignadas por la plataforma como búfer para los procesos de sistema y host. Esta memoria adicional no afecta a la facturación y las instancias se facturan en función del tamaño de memoria de instancia configurado que se muestra en la tabla anterior.
Al decidir qué tamaño de memoria de instancia se va a usar con las aplicaciones, estas son algunas cosas que se deben tener en cuenta:
- El tamaño de memoria de la instancia de 2048 MB es el valor predeterminado y debe usarse para la mayoría de los escenarios. Los tamaños de memoria de instancia de 512 MB y 4096 MB están disponibles para escenarios que se adapten mejor a los requisitos de simultaneidad o procesamiento de la aplicación. Para obtener más información, consulte Configuración de la memoria de instancia.
- Puede cambiar el tamaño de memoria de la instancia en cualquier momento. Para obtener más información, consulte Configuración de la memoria de instancia.
- Los recursos de instancia se comparten entre el código de función y el host de Functions.
- Cuanto mayor sea el tamaño de la memoria de instancia, más podrá controlar cada instancia en cuanto a ejecuciones simultáneas o cargas de trabajo más intensivas de CPU o memoria. Las decisiones de escalado específicas son específicas de la carga de trabajo.
- La simultaneidad predeterminada de los desencadenadores HTTP depende del tamaño de memoria de la instancia. Para obtener más información, consulte Simultaneidad del desencadenador HTTP.
- Las CPU disponibles y el ancho de banda de red se proporcionan proporcionales a un tamaño de instancia específico.
Escalado por función
La simultaneidad es un factor clave que determina cómo se escalan las aplicaciones de función de Consumo flexible. Para mejorar el rendimiento de escala de las aplicaciones con varios tipos de desencadenadores, el plan de consumo flexible proporciona una forma más determinista de escalar la aplicación por función.
Este comportamiento de escalado por función forma parte de la plataforma de hospedaje, por lo que no es necesario configurar la aplicación ni cambiar el código. Para obtener más información, consulte Escalado por función en el artículo Escalado controlado por eventos.
En el escalado por función, se toman decisiones para determinados desencadenadores de función basándose en agregaciones de grupo. En esta tabla se muestra el conjunto definido de grupos de escalado de funciones:
| Grupos de escala | Desencadenadores en el grupo | Valor de configuración |
|---|---|---|
| Desencadenadores HTTP |
desencadenador HTTP Desencadenador de SignalR |
http |
| Desencadenadores de Blob Storage (Basado en Event Grid) |
Desencadenador de Blob Storage | blob |
| Durable Functions |
Desencadenador de orquestación Desencadenador de actividad Desencadenador de entidad |
durable |
Todas las demás funciones de la aplicación se escalan individualmente en su propio conjunto de instancias, a las que se hace referencia mediante la convención function:<NAMED_FUNCTION>.
Instancias siempre preparadas
Consumo flexible incluye una característica de siempre preparado que permite elegir instancias que están siempre en ejecución y se asignan a cada uno de los grupos o funciones de escala por función. Siempre preparado es una excelente opción para los escenarios en los que debe tener un número mínimo de instancias siempre preparadas para controlar solicitudes. Por ejemplo, para reducir la latencia de inicio en frío de la aplicación. El valor predeterminado es 0 (cero).
Por ejemplo, si establece siempre listo para 2 para el grupo http de funciones, la plataforma mantiene dos instancias siempre en ejecución y asignadas a la aplicación para las funciones HTTP de la aplicación. Esas instancias procesan las ejecuciones de función, pero, en función de la configuración de simultaneidad, la plataforma se escala más allá de esas dos instancias con instancias a petición.
No se pueden configurar menos de dos instancias listas para siempre por función o grupo de funciones mientras está habilitada la redundancia de zona.
Para obtener información sobre cómo configurar instancias siempre listas, consulte Establecimiento de recuentos de instancias siempre listos.
Concurrency
La simultaneidad hace referencia al número de ejecuciones paralelas de una función en una instancia de la aplicación. Puede establecer un número máximo de ejecuciones simultáneas que cada instancia debe controlar en cualquier momento dado. La simultaneidad tiene un efecto directo en la forma en que se escala la aplicación porque, a niveles de simultaneidad inferiores, necesita más instancias para controlar la demanda controlada por eventos de una función. Aunque puede controlar y ajustar la simultaneidad, proporcionamos valores predeterminados que funcionan en la mayoría de los casos.
Para obtener información sobre cómo establecer límites de simultaneidad para las funciones de desencadenador HTTP, consulte Establecimiento de límites de simultaneidad HTTP. Para obtener información sobre cómo establecer límites de simultaneidad para funciones de desencadenador que no son HTTP, consulte Escalado base de destino.
Deployment
Las implementaciones en el plan de Consumo flexible siguen una única ruta y ya no es necesario que la configuración de las aplicaciones influya en el comportamiento de la implementación. Una vez compilado y comprimido el código del proyecto en un paquete de aplicación, se implementa en un contenedor de almacenamiento de blobs. Al iniciarse, la aplicación obtiene el paquete y ejecuta el código de función desde este paquete. De forma predeterminada, la misma cuenta de almacenamiento que se usa para almacenar metadatos de host internos (AzureWebJobsStorage) también se usa como contenedor de implementación. Sin embargo, puede usar una cuenta de almacenamiento alternativa o elegir el método de autenticación preferido configurando la configuración de implementación de la aplicación.
Implementaciones sin tiempo de inactividad
Nota:
Las implementaciones sin tiempo de inactividad con actualizaciones graduales se encuentran actualmente en versión preliminar pública.
Flex Consumption proporciona implementaciones de tiempo de inactividad cero a través de actualizaciones graduales como estrategia de actualización del sitio, lo que permite que las implementaciones de código y los cambios de configuración se apliquen gradualmente entre instancias sin interrumpir la ejecución de la función. Otros planes de hospedaje usan ranuras de implementación para minimizar el tiempo de inactividad durante las implementaciones. Para ver las opciones de implementación en todos los planes de hospedaje, consulte Optimización de las implementaciones.
Billing
Hay dos modos por los que los costos se determinan al ejecutar las aplicaciones en el plan de consumo flexible. Cada modo se determina por instancia.
| Modo de facturación | Description |
|---|---|
| A petición | Cuando se ejecuta en modo a petición, solo se le factura la cantidad de tiempo que se ejecuta el código de función en las instancias disponibles. En el modo a petición, no se requiere ningún recuento mínimo de instancias. Se le factura por: • La cantidad total de memoria aprovisionada mientras cada instancia a petición ejecuta activamente funciones (en GB-segundos), menos una concesión gratuita de GB al mes. • Número total de ejecuciones, menos una concesión gratuita (número) de ejecuciones al mes. |
| Siempre preparada | Puede configurar una o varias instancias, asignadas a tipos de desencadenadores específicos (HTTP/Durable/Blob) y funciones individuales, que siempre están disponibles para poder controlar las solicitudes. Cuando tenga habilitadas instancias siempre preparadas, se le factura lo siguiente: • La cantidad total de memoria aprovisionada en todas las instancias siempre preparadas, conocidas como línea base (en GB-segundos). • La cantidad total de memoria aprovisionada durante el tiempo cada instancia siempre preparada está ejecutando activamente funciones (en GB-segundos). • Número total de ejecuciones. En la facturación siempre lista, no hay concesiones gratuitas. |
Para obtener la información más actualizada sobre los precios de ejecución, los costos de línea base siempre listos y las concesiones gratuitas para las ejecuciones a petición, consulte la página de precios de Azure Functions.
El período mínimo de ejecución facturable para ambos modos de ejecución es de 1000 ms. Después de eso, el período de actividad facturable se redondea hasta los 100 ms más cercanos. Puede encontrar detalles sobre los medidores de facturación del plan de consumo flexible en la referencia de supervisión.
Para obtener más información sobre cómo se calculan los costos cuando se ejecuta en un plan de consumo flexible, incluidos ejemplos, consulte Costos basados en el consumo y Visualización de datos relacionados con los costos.
Versiones admitidas de la pila de lenguajes
En esta tabla se muestran las versiones de la pila de lenguajes que se admiten actualmente para las aplicaciones Flex Consumption:
| Pila de lenguajes | Versión requerida |
|---|---|
| C# (modelo de trabajo aislado)1 | .NET 8, .NET 9, .NET 10 |
| Java | Java 11, Java 17, Java 21 |
| Node.js | Node.js 20, Node.js 22 |
| PowerShell | PowerShell 7.4: |
| Python | Python 3.10, Python 3.11, Python 3.12 |
- No se admite el modelo en proceso de C# . En su lugar, debe migrar el proyecto de .NET al modelo de trabajo aislado.
Cuotas de memoria de suscripción regionales
El plan flex Consumption tiene una cuota basada en memoria que limita la cantidad de proceso que pueden usar todas las aplicaciones de Flex Consumption al mismo tiempo en una región y una suscripción específicas. Imagine que dispone de un depósito de memoria medido en GB o núcleos de CPU para toda su suscripción en una región. Todas las aplicaciones de Flex Consumption de esa región comparten este cubo. Si las aplicaciones Flex Consumption intentan usar más de lo que permite la cuota, algunas ejecuciones podrían retrasarse o limitarse en el escalado, pero no se bloqueará la creación o implementación de aplicaciones.
Actualmente, cada región de una suscripción determinada tiene una cuota predeterminada de 512,000 MB o 250 núcleos para todas las instancias de aplicaciones que se ejecutan en planes de Consumo flexible. Estas cuotas significan que, en una determinada suscripción y región, podría tener cualquier combinación de tamaños y recuentos de memoria de instancia, siempre y cuando permanezcan bajo los límites de cuota. Por ejemplo, en cada uno de estos escenarios se alcanza la cuota, y las aplicaciones de la región detienen el escalado:
- Tiene una aplicación de 512 MB escalada a 250 instancias y una segunda aplicación de 512 MB escalada a 750 instancias.
- Tiene una aplicación de 512 MB escalada a 1000 instancias.
- Tiene una aplicación de 2048 MB escalada a 100 y una segunda aplicación de 2048 MB escalada a 150 instancias
- Tiene una aplicación de 2048 MB que se escala horizontalmente a 250 instancias
- Tiene una aplicación de 4096 MB que se escala horizontalmente a 125 instancias
- Tiene una aplicación de 4096 MB escalada a 100 y una aplicación de 2048 MB escalada a 50 instancias
Las aplicaciones de Consumo flexible se escalan a cero o las instancias marcadas para reducirse horizontalmente y eliminarse, no cuentan en la cuota. Esta cuota se puede aumentar para permitir que las aplicaciones de consumo flexible se escalen más, en función de sus requisitos. Si las aplicaciones requieren una cuota mayor, cree una incidencia de soporte técnico.
Propiedades y configuraciones en desuso
En el plan Consumo flexible, muchas de las propiedades estándar de configuración de aplicación y configuración de sitio están en desuso o se han movido y no se deben usar al automatizar la creación de recursos de la aplicación de funciones. Para más información, consulte Desuso de planes de Consumo flexible.
Considerations
Tenga en cuenta estas otras consideraciones al usar el plan de consumo flexible:
- Aplicaciones por plan: solo se permite una aplicación por plan de consumo flexible.
-
Host: hay un tiempo de espera de 30 segundos para la inicialización de la aplicación. Si la aplicación de funciones tarda más de 30 segundos en iniciarse, es posible que vea entradas
System.TimeoutExceptionrelacionadas con gRPC registradas. En la actualidad no se puede configurar este tiempo de espera. Para obtener más información, consulte este elemento de trabajo host. - Durable Functions: Azure Storage es actualmente el único proveedor de almacenamiento admitido para Durable Functions cuando se hospeda en el plan de Consumo flexible. Consulte las recomendaciones al hospedar Durable Functions en el plan de Consumo flexible.
-
Integración de redes virtuales Asegúrese de que el
Microsoft.AppEl proveedor de recursos Azure está habilitado para su suscripción siguiendo estas instrucciones. La delegación de subred requerida por las aplicaciones de Consumo flexible esMicrosoft.App/environments. -
Desencadenadores: aunque todos los desencadenadores son totalmente compatibles con un plan de Consumo flexible, el desencadenador de Blob Storage solo admite el origen de Event Grid. Las aplicaciones de funciones que no son de C# deben usar la versión
[4.0.0, 5.0.0)de la agrupación de extensiones o una versión posterior. - Regiones: actualmente no se admiten todas las regiones. Para más información, consulte Visualización de regiones admitidas actualmente.
- Implementaciones: actualmente no se admiten ranuras de implementación. Para ver implementaciones sin tiempo de inactividad con Flex Consumption, consulte Estrategias de actualización del sitio en Flex Consumption.
- Azure Storage como recurso compartido local: los recursos compartidos de archivos NFS no están disponibles para Consumo flexible. Solo se admiten SMB y Azure Blobs (solo lectura).
-
Escalado: la escala máxima más baja se encuentra actualmente
40. El valor más alto admitido actualmente es1000. - Dependencias administradas: las dependencias administradas en PowerShell no son compatibles con el plan de consumo flexible. En su lugar, debe cargar módulos con contenido de la aplicación.
- Certificados: actualmente, no se admite la carga de certificados con la configuración de la aplicación de WEBSITE_LOAD_CERTIFICATES, los certificados administrados, los certificados de App Service y otras características basadas en certificados de plataforma, como endToEndEncryptionEnabled.
-
Zonas horarias: las configuraciones de las aplicaciones
WEBSITE_TIME_ZONEyTZno se admiten actualmente cuando se ejecutan en un plan de consumo flexible.
Artículos relacionados
Opciones de hospedaje de Azure FunctionsCreación y administración de aplicaciones de funciones en el plan de consumo flexible