Comparación de las opciones de hospedaje de Azure Functions

Completado

Cuando crea una aplicación de funciones en Azure, debe elegir un plan de hospedaje para su aplicación. Azure proporciona estas opciones de hospedaje para el código de función:

Opción de hospedaje Servicio Disponibilidad Compatibilidad de contenedores
Plan de consumo Funciones de Azure Disponible con carácter general Ninguno
Plan de consumo flexible Funciones de Azure GA Ninguno
Plan Premium Funciones de Azure GA Linux
Plan dedicado Funciones de Azure GA Linux
Aplicaciones de contenedores Azure Container Apps GA Linux

La infraestructura de Azure App Service facilita el hospedaje de Azure Functions en máquinas virtuales Linux y Windows. La opción de hospedaje que elija dicta los comportamientos siguientes:

  • Cómo se escala la aplicación de funciones.
  • Los recursos disponibles para cada instancia de aplicación de funciones.
  • Compatibilidad con funcionalidad avanzada, como la conectividad con Azure Virtual Network.
  • Compatibilidad con contenedores de Linux.

El plan que elija también afecta a los costos de ejecutar el código de función.

Información general sobre los planes

A continuación se muestra un resumen de las ventajas de las distintas opciones de hospedaje:

Plan de consumo

El plan de consumo es el plan de hospedaje predeterminado. Pague solo por los recursos de computación cuando sus funciones se estén ejecutando (pago por uso) con escalado automático. En el plan de consumo, las instancias del host de funciones se agregan y eliminan dinámicamente en función del número de eventos de entrada.

Plan de consumo flexible

Obtenga una alta escalabilidad con opciones de computación, redes virtuales y facturación por uso. En el plan de consumo flexible, las instancias del host de Functions se agregan y quitan dinámicamente en función de la simultaneidad configurada por instancia y el número de eventos entrantes.

Puede reducir los inicios en frío especificando el número de instancias aprovisionadas previamente (siempre listas). Escala automáticamente en función de la demanda.

Plan de Premium

Escala automáticamente en función de la demanda mediante trabajos preparados previamente que ejecutan aplicaciones sin ningún retraso después de estar inactivas, ejecuta en instancias más eficaces y se conecta a redes virtuales.

Considere la posibilidad de elegir el plan Premium de Azure Functions en las siguientes situaciones:

  • Tus aplicaciones de función se ejecutan de forma continua o casi continua.
  • Desea tener más control sobre sus instancias y desea implementar varias aplicaciones de funciones en el mismo plan con escalado basado en eventos.
  • Tiene un gran número de ejecuciones pequeñas y una factura de ejecución alta, pero pocos GB por segundo en el plan de consumo.
  • Necesita más opciones de CPU o memoria de las que proporcionan los planes de consumo.
  • Su código debe ejecutarse durante más tiempo del máximo permitido en el plan de consumo.
  • Necesita conectividad de red virtual.
  • Quiere proporcionar una imagen de Linux personalizada en la que ejecutar tus funciones.

Plan dedicado

Ejecute sus funciones en un plan de App Service con las tarifas habituales del plan de App Service. Mejor para escenarios de ejecución prolongada en los que no se puede usar Durable Functions.

Considere el plan de App Service en las situaciones siguientes:

  • Debe tener una facturación totalmente predecible o debe escalar manualmente las instancias.
  • Quiere ejecutar varias aplicaciones web y aplicaciones de funciones en el mismo plan
  • Necesita acceso a opciones de tamaño de computación más grandes.
  • Aislamiento de proceso completo y acceso seguro a la red proporcionado por un App Service Environment (ASE).
  • Uso elevado de memoria y gran escala (ASE).

Container Apps

Cree e implemente aplicaciones de funciones en contenedor en un entorno totalmente administrado hospedado por Azure Container Apps.

Use el modelo de programación de Azure Functions para crear aplicaciones de funciones nativas en la nube controladas por eventos, sin servidor. Ejecute las funciones junto con otros microservicios, API, sitios web y flujos de trabajo como programas hospedados en contenedores.

Considere la posibilidad de hospedar las funciones en Container Apps en las situaciones siguientes:

  • Quiere empaquetar bibliotecas personalizadas con el código de función para admitir aplicaciones de línea de negocio.
  • Debe migrar la ejecución de código desde aplicaciones locales o heredadas a microservicios nativos en la nube que se ejecutan en contenedores.
  • Quiere evitar la sobrecarga y la complejidad de administrar clústeres de Kubernetes y cómputo dedicado.
  • Necesitas la potencia de procesamiento de gama alta proporcionada por los recursos de computación de CPU dedicados para tus funciones.

Duración del tiempo de espera de la aplicación de funciones

La propiedad functionTimeout en el archivo de proyecto host.json especifica la duración del tiempo de espera para las funciones en una aplicación de función. Esta propiedad se aplica específicamente a las ejecuciones de funciones. Una vez que el desencadenador inicia la ejecución de la función, la función debe devolver o responder dentro del tiempo de espera.

En la tabla siguiente se muestran los valores predeterminados y máximos (en minutos) para planes específicos:

Planificación Predeterminado Máximo 1
Plan de consumo flexible 30 Ilimitado2
Plan Premium 304 Ilimitado2
Plan dedicado 304 Sin enlazar3
Aplicaciones de contenedores 30 Ilimitado5
Plan de consumo 5 10
  1. Independientemente de la configuración de tiempo de espera de la aplicación de funciones, 230 segundos es la cantidad máxima de tiempo que una función desencadenada por HTTP puede tardar en responder a una solicitud. Esto se debe al tiempo de inactividad predeterminado de 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.
  2. No se aplica ningún tiempo de espera de ejecución máximo. Sin embargo, el periodo de gracia concedido a la ejecución de una función es de 60 minutos durante el escalado para los planes Consumo Flex y Premium, y se concede un periodo de gracia de 10 minutos durante las actualizaciones de la plataforma.
  3. Requiere que el plan de App Service se establezca en AlwaysOn. Se da un período de gracia de 10 minutos durante las actualizaciones de la plataforma.
  4. El tiempo de espera predeterminado para la versión 1.x del entorno de ejecución del host de Functions es ilimitado.
  5. Cuando el número mínimo de réplicas se establece en cero, el tiempo de espera predeterminado depende de los desencadenadores específicos usados en la aplicación.