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 Service Disponibilidad Compatibilidad con los contenedores
Plan de consumo Funciones de Azure Disponible con carácter general None
Plan de consumo flexible Funciones de Azure Vista previa None
Plan Premium Funciones de Azure GA Linux
Plan dedicado Funciones de Azure GA Linux
Aplicaciones de contenedor 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 por los recursos de proceso solo cuando las funciones se ejecutan (pago por uso) con escala automática. 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.

Plan de consumo flexible

Obtenga una alta escalabilidad con opciones de proceso, redes virtuales y facturación de pago 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 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:

  • La aplicación de función se ejecuta de forma continua, o casi continua.
  • Desea tener más control sobre las instancias y desea implementar varias aplicaciones de función en el mismo plan con escalado controlado por 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 la red virtual.
  • Quiere proporcionar una imagen de Linux personalizada en la que ejecutar las funciones.

Plan dedicado

Ejecute sus funciones en un plan de App Service con las tarifas de plan de App Service normal. 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 proceso más grandes.
  • Aislamiento de proceso completo y acceso seguro a la red proporcionado por una instancia de App Service Environment (ASE).
  • Uso elevado de memoria y gran escala (ASE).

Aplicaciones de contenedor

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 proceso dedicado.
  • Necesita la potencia de procesamiento de gama alta proporcionada por los recursos de proceso de CPU dedicados para las funciones.

Duración del tiempo de espera de una aplicación de función

La propiedad functionTimeout del archivo del proyecto host.json especifica la duración del tiempo de espera de las funciones de una aplicación de funciones. 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 de la duración del tiempo de espera.

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

Plan Valor predeterminado Máximo 1
Plan de consumo 5 10
Plan de consumo flexible 30 Ilimitados3
Plan Premium 302 Ilimitados3
Plan dedicado 302 Ilimitados3
Aplicaciones de contenedor 305 Ilimitados3
  1. 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.
  2. El tiempo de expiración predeterminado para la versión 1.x del runtime de Functions es ilimitado.
  3. Garantizado para un máximo de 60 minutos. El sistema operativo y los comportamientos de aplicación de revisiones en tiempo de ejecución, aplicación de revisiones a vulnerabilidades y escalado todavía pueden cancelar las ejecuciones de funciones.
  4. En un plan de consumo flexible, el host no aplica un límite de tiempo de ejecución. Sin embargo, actualmente no hay ninguna garantía porque es posible que la plataforma tenga que finalizar las instancias durante el escalado horizontal, las implementaciones o aplicar actualizaciones.
  5. Cuando el número mínimo de réplicas se establece en cero, el tiempo de expiración predeterminado depende de los desencadenadores específicos usados en la aplicación.