Compartir a través de


Estimación de los costes basados en el consumo

En este artículo se muestra cómo calcular los costos del plan de consumo flexible y el plan de consumo heredado.

Elija la opción de hospedaje que mejor admita los requisitos de características, rendimiento y costos para las ejecuciones de funciones. Para obtener más información, consulte Azure Functions escalado y hospedaje.

Este artículo se centra en los dos planes de consumo, ya que la facturación de estos planes depende de períodos activos de ejecuciones dentro de cada instancia.

  • Plan de Consumo flexible
  • Plan de consumo

Proporciona escalado horizontal rápido, con opciones de proceso flexibles, integración de red virtual y compatibilidad completa con conexiones mediante la autenticación Microsoft Entra ID. En este plan, las instancias se escalan dinámicamente en función de la simultaneidad configurada por instancia, los eventos entrantes y las cargas de trabajo por función para obtener una eficiencia óptima. Flex Consumption es el plan recomendado para el hospedaje sin servidor. Para obtener más información, consulte Azure Functions Flex Consumption plan hosting.

Durable Functions también se puede ejecutar en ambos planes. Para obtener más información sobre las consideraciones sobre los costos al usar Durable Functions, consulte Durable Functions billing.

Costes basados en el consumo

La forma en que se calculan los costes basados en el consumo, incluidas las concesiones gratuitas, depende del plan específico. Para obtener la información sobre el costo y la concesión más actuales, consulte la página de precios Azure Functions.

  • Plan de Consumo flexible
  • Plan de consumo

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 Descripción
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 base siempre disponibles y las subvenciones gratuitas para las ejecuciones bajo demanda, consulte la página de precios Azure Functions.

En este diagrama se muestra cómo se determinan los costos a petición en este plan:

Gráfico de costes a petición del plan Consumo flexible en función de la carga (recuento de instancias) y el tiempo.

Además del tiempo de ejecución, cuando se usan una o varias instancias siempre listas, se paga una tarifa base más baja para el número de instancias siempre listas que se mantienen. El tiempo de ejecución de las instancias siempre preparadas puede ser más barato que el tiempo de ejecución en las instancias con ejecución a petición.

Importante

En este artículo se usan los precios a petición para ayudarle a comprender los cálculos de ejemplo. Compruebe siempre los costos actuales en la página de precios Azure Functions al calcular los costos que podría incurrir al ejecutar las funciones en el plan de consumo flexible.

Considere una aplicación de funciones que solo tiene desencadenadores HTTP con estos hechos básicos:

  • Los desencadenadores HTTP controlan 40 solicitudes constantes por segundo.
  • Los desencadenadores HTTP controlan 10 solicitudes simultáneas.
  • El tamaño de memoria de la instancia es de 2048 MB.
  • Configura instancias que no siempre están listas, lo que significa que la aplicación puede escalar hasta cero.

En una situación como esta, los precios dependen más del tipo de trabajo realizado durante la ejecución del código. Echemos un vistazo a dos escenarios de carga de trabajo:

  • Carga de trabajo enlazada a la CPU: en una carga de trabajo enlazada a la CPU, no existe ninguna ventaja en procesar varias solicitudes en paralelo en la misma instancia. Esta limitación significa que sería más adecuado distribuir cada solicitud a su propia instancia para que las solicitudes se completen lo más rápidamente posible y sin contención. En este escenario, establezca una simultaneidad de desencadenador HTTP baja de . Con 10 solicitudes simultáneas, la aplicación escala a un estado estable de aproximadamente 10 instancias, y cada instancia está continuamente activa procesando una solicitud a la vez.

    Dado que el tamaño de cada instancia es, aproximadamente, de 2 GB, el consumo de una sola instancia activa continuamente es de . Si el índice de ejecución a petición es de 0,000026 por GB y segundo (sin que se aplique ninguna subvención), el coste se convierte en por hora e instancia. Dado que la aplicación enlazada a la CPU se escala a 10 instancias, la velocidad total por hora del tiempo de ejecución es .

    Del mismo modo, el cargo por ejecución a petición (sin ninguna subvención) de 40 solicitudes por segundo equivale a o ejecuciones por hora. Si el índice de operaciones a petición es de ejecuciones, el costo total (sin subvenciones) por hora de las ejecuciones es , que es por hora.

    En este escenario, el coste total por hora de la ejecución a petición en 10 instancias es de .

  • Carga de trabajo enlazada a E/S: en una carga de trabajo enlazada a E/S, la mayoría del tiempo de la aplicación se dedica a esperar a la solicitud entrante, lo que podría tener limitaciones según el rendimiento de la red u otros factores ascendentes. Debido a las entradas limitadas, el código puede procesar varias operaciones simultáneamente sin efectos negativos. En este escenario, supongamos que puede procesar las 10 solicitudes simultáneas en la misma instancia.

    Dado que los cargos de consumo se basan solo en la memoria de cada instancia activa, el cálculo del cargo de consumo es simplemente , que a la velocidad de ejecución a petición asumida (sin ninguna concesión gratuita aplicada) es de por hora para la instancia única.

    Como en el escenario enlazado a la CPU, el cargo por ejecución a petición (sin ninguna concesión gratuita) de 40 solicitudes por segundo es igual a o 0,144 millones de ejecuciones por hora. En este caso, el coste total por hora (sin ninguna concesión) de las ejecuciones de , que es de por hora.

    En este escenario, el costo total por hora de la ejecución a petición de una sola instancia es .

Comportamientos que afectan al tiempo de ejecución

Los siguientes comportamientos de las funciones pueden afectar al tiempo de ejecución:

  • Desencadenadores y enlaces: el tiempo necesario para leer la entrada y escribir la salida en los enlaces de función cuenta como tiempo de ejecución. Por ejemplo, cuando la función usa un enlace de salida para escribir un mensaje en una cola de almacenamiento de Azure, el tiempo de ejecución incluye el tiempo necesario para escribir el mensaje en la cola, que se incluye en el cálculo del costo de la función.

  • Ejecución asincrónica: el tiempo que espera la función para los resultados de una solicitud asincrónica ( en C#) cuenta como tiempo de ejecución. El cálculo de GB por segundo se basa en la hora de inicio y finalización de la función y el uso de memoria durante ese período. Lo que sucede a lo largo de ese tiempo en términos de actividad de CPU no se tiene en cuenta en el cálculo. Es posible que pueda reducir los costos durante las operaciones asincrónicas mediante Durable Functions. No se le facturará por el tiempo de espera en las funciones del orquestador.

Visualización y estimación de los costos de las métricas

En la factura, puede ver los datos relacionados con los costos junto con los costos facturados reales. Sin embargo, estos datos de factura son un agregado mensual para un período de facturación anterior.

En esta sección se muestra cómo usar métricas, tanto en el nivel de aplicación como en las ejecuciones de funciones, para calcular los costos de ejecución de las aplicaciones de funciones.

Métricas del nivel de la aplicación de funciones

Las métricas de nivel de aplicación disponibles para la aplicación dependen del tipo de plan de consumo que use.

  • Plan de Consumo flexible
  • Plan de consumo

Estas Azure Monitor métricas están relacionadas con la facturación del plan de consumo flexible:

Métrica Descripción Cálculo del medidor
Recuento de ejecuciones de funciones a petición Número total de ejecuciones de funciones en instancias a petición. está relacionado con el medidor Ejecuciones Totales a Petición.
Recuento de ejecuciones de funciones Always Ready Número total de ejecuciones de funciones en instancias siempre listas. está relacionado con el medidor Always Ready Total Executions.
Unidades de ejecución de funciones a petición Total de MB-milisegundos de instancias a petición mientras se ejecutan funciones activamente. es el medidor de tiempo de ejecución a petición, en GB-segundos.
Unidades de ejecución de función Always Ready Total de MB-milisegundos de instancias siempre disponibles durante la ejecución activa de funciones. es el medidor de tiempo de ejecución siempre listo en GB-segundos.
Unidades siempre preparadas El total de MB-milisegundos de instancias siempre listas asignadas a la aplicación, independientemente de si las funciones están ejecutándose activamente o no. es el medidor de línea base siempre listo en GB-segundos.

Para obtener más información, consulte la referencia de datos de supervisión de Azure Functions.

Para comprender mejor los costos de las funciones, use Azure Monitor para ver las métricas relacionadas con los costos que generan las aplicaciones de funciones. Puede ver Las métricas de supervisión mediante una de estas herramientas:

Use el explorador de métricas de Azure Monitor para ver los datos relacionados con los costos de las aplicaciones de funciones del Plan de Consumo Flexible en un formato gráfico.

  1. En el portal de Azure, vaya a tu aplicación de funciones.

  2. En el panel izquierdo, desplácese hacia abajo hasta Supervisión y seleccione Métricas.

  3. En Métrica, seleccione Recuento de ejecución de funciones a petición y Suma para agregación. Esta selección agrega la suma de los recuentos de ejecución durante el período elegido al gráfico.

  4. Seleccione Agregar métrica y agregue Unidades de Ejecución de Funciones a Petición, Recuento de Ejecución de Funciones Always Ready, Unidades de Ejecución de Función Always Ready y Unidades Always Ready al gráfico.

El gráfico resultante contiene los totales de todas las métricas de ejecución del consumo flexible en el intervalo de tiempo elegido, que en este ejemplo es un intervalo de tiempo personalizado.

Gráfico de recuentos de ejecución de funciones a petición y unidades de ejecución de funciones a petición.

Dado que el número de unidades de ejecución de función a petición es mayor que el recuento de ejecución de funciones a petición y no había instancias siempre listas en la aplicación, el gráfico solo muestra las unidades de ejecución de funciones a petición.

En este gráfico se muestra un total de 3,54 mil millones consumidos en un período de 16 minutos, medido en MB-milisegundos. Para convertir a GB-segundos, divida en 1024 000. En este ejemplo, la aplicación de funciones ha consumido GB por segundo. Puede tomar este valor y multiplicarlo por el precio actual del tiempo de ejecución a petición en la página de precios de Functions, lo que le proporciona el costo de estos 16 minutos, suponiendo que ya usó cualquier concesión gratuita de tiempo de ejecución. Puede usar este mismo cálculo con la métrica Unidades de ejecución de la función Always Ready y el costo del medidor de facturación Tiempo de ejecución de Always Ready, así como con la métrica Unidades de Always Ready y el costo del medidor de facturación Línea base de Always Ready, para averiguar los costos en GB-segundos de las instancias Always Ready.

Para calcular el costo total de ejecuciones On Demand, tome la suma del recuento de ejecuciones de funciones On Demand durante el mismo período de tiempo, conviértalo a millones y, a continuación, multiplíquelo por el precio total de ejecuciones en la página de precios de Functions. Por ejemplo, las 2 100 ejecuciones del ejemplo anterior se convierten en  millones de ejecuciones. Puede usar este mismo cálculo con la métrica Recuento de ejecuciones de la función Always Ready y el medidor de facturación Ejecuciones totales de Always Ready para averiguar el coste de las ejecuciones gestionadas por la instancia Always Ready.

Métricas de nivel de función

El uso de memoria es importante al calcular los costos de las ejecuciones de función. Sin embargo, la forma en que el uso de memoria afecta a los costos depende del tipo de plan específico:

  • Plan de Consumo flexible
  • Plan de consumo

En el plan de consumo flexible, paga por el tiempo que se ejecuta la instancia en función del tamaño de instancia elegido, que tiene un límite de memoria establecido. Para obtener más información, vea Facturación.

Si aún no lo ha hecho, habilite Application Insights en la aplicación de funciones. Con esta integración habilitada, puede consultar estos datos de telemetría en el portal.

Puede usar Azure Monitor explorador de métricas en el portal de Azure o api REST para obtener datos de métricas de supervisión.

Determinación del uso de memoria

En Supervisión, seleccione Registros (Analytics), copie la siguiente consulta de telemetría y péguela en la ventana de consulta y seleccione Ejecutar. Esta consulta devuelve el uso de memoria total en cada tiempo muestreado.

performanceCounters
| where name == "Private Bytes"
| project timestamp, name, value

Los resultados deben tener un aspecto similar al ejemplo siguiente:

marca de tiempo [UTC] nombre value
12/9/2019, 1:05:14.947 AM Bytes privados 209,932,288
12/9/2019, 1:06:14.994 AM Bytes privados 212 189 184
12/9/2019, 1:06:30.010 AM Bytes privados 231,714,816
12/9/2019, 1:07:15.040 AM Bytes privados 210,591,744
12/9/2019, 1:12:16.285 AM Bytes privados 216,285,184
12/9/2019, 1:12:31.376 AM Bytes privados 235,806,720

Determinación de la duración

Azure Monitor realiza un seguimiento de las métricas en el nivel de recurso, que para Functions es la aplicación de funciones. La integración de Application Insights emite métricas por función. Esta es una consulta de análisis de ejemplo para obtener la duración media de una función:

customMetrics
| where name contains "Duration"
| extend averageDuration = valueSum / valueCount
| summarize averageDurationMilliseconds=avg(averageDuration) by name
nombre DuraciónMediaMilisegundos
QueueTrigger AvgDurationMs 16 087
QueueTrigger MaxDurationMs 90 249
QueueTrigger Duración Mínima en Milisegundos 8522

Al calcular el costo total de ejecutar las funciones en cualquier plan, recuerde que el tiempo de ejecución de Functions usa otros servicios de Azure, que se facturan por separado. Al calcular los precios de las aplicaciones de funciones, los desencadenadores y enlaces que tenga que integrar con otros servicios de Azure requieren que cree y pague por esos otros servicios.

En el caso de las funciones que se ejecutan en un plan de consumo, el coste total es el coste de ejecución de las funciones, más el coste del ancho de banda y servicios adicionales.

Al calcular los costos generales de la aplicación de funciones y los servicios relacionados, use la calculadora de precios Azure.

Costo relacionado Descripción
Cuenta de almacenamiento Cada aplicación de función requiere que tengas una cuenta de Azure Storage de propósito general asociada, que se factura por separado. El tiempo de ejecución de Functions usa esta cuenta internamente, pero también se puede usar para los desencadenadores y enlaces de almacenamiento. Si no tiene una cuenta de almacenamiento, se crea una automáticamente cuando se crea la aplicación de funciones. Para más información, consulte Requisitos de la cuenta de almacenamiento.
Application Insights Functions se basa en Application Insights para proporcionar una experiencia de supervisión de alto rendimiento para las aplicaciones de funciones. Aunque no es necesario, debe habilitar la integración de Application Insights. Cada mes se incluye una concesión gratuita de datos de telemetría. Para obtener más información, consulte la página de precios Azure Monitor.
Ancho de banda de la red Puede incurrir en costos de transferencia de datos en función de la dirección y del escenario del movimiento de datos. Para más información, consulte Detalles de precios de ancho de banda.

Pasos siguientes

Más información sobre la supervisión de las aplicaciones de funciones