Cuotas y límites

En esta página se describen los límites escalables y basados en el uso de Cloud Functions en función del plan de precios Blaze (pago por uso). Estos límites se aplican a los proyectos de Firebase que implementan funciones en el entorno de ejecución de Node.js 10.

El plan Blaze proporciona una gran cantidad de invocaciones, tiempo de procesamiento y tráfico de Internet de forma gratuita. Sin embargo, las implementaciones de funciones generan cargos menores debido al espacio de almacenamiento que se usa para el contenedor de la función. Consulta las Preguntas frecuentes de Firebase para obtener más información.

Las cuotas de Firebase abarcan 4 áreas:

  • Límites de recursos

    Afectan la cantidad total de recursos que pueden consumir tus funciones.

  • Límites de tiempo

    Afectan el tiempo de ejecución de los recursos.

  • Límites de frecuencia

    Afectan la frecuencia con la que puedes llamar a la API de Firebase para administrar tus funciones.

  • Límites de red

    Afectan los límites de instancias y conexiones salientes.

Los diferentes tipos de límites se describen con más detalles a continuación. Se aplican las diferencias entre los límites de Firebase (1ª gen.) y Firebase (2ª gen.) cuando corresponda.

Límites de recursos

Los límites afectan la cantidad total de recursos que pueden consumir tus funciones. El alcance regional es por proyecto, y cada proyecto tiene sus propios límites.

Cuota Descripción Límite (1st gen) Límite (2nd gen) Se puede aumentar Alcance
Cantidad de funciones La cantidad total de funciones que se pueden implementar por región 1,000 1,000 menos la cantidad de servicios de Cloud Run que se implementaron No por región
Tamaño máximo de implementación Tamaño máximo de la implementación de una sola función 100 MB (comprimida) para fuentes
500 MB (sin comprimir) para fuentes más módulos
N/A No Por función
Tamaño máximo de solicitudes HTTP sin comprimir Datos enviados a funciones de HTTP en una solicitud HTTP 10 MB 32 MB No Por invocación
Tamaño máximo de respuesta HTTP sin comprimir Datos enviados desde funciones de HTTP en una respuesta HTTP 10 MB 10 MB para respuestas de transmisión
32 MB para respuestas sin transmisión
No Por invocación
Tamaño máximo de evento para funciones controladas por eventos Datos enviados en eventos a funciones en segundo plano 10 MB 512 KB para eventos de Eventarc
10 MB para eventos heredados
No Por evento
Memoria máxima de la función Cantidad de memoria que puede usar cada instancia de la función 8 GiB 32 GiB No Por función
Memoria máxima del proyecto Es la cantidad de memoria, en bytes, que puede usar un proyecto. Se mide por la suma total de la memoria solicitada por el usuario en las instancias de la función durante un período de 1 minuto. Depende de la región seleccionada. Este límite puede ser mayor en regiones de alta capacidad o más bajo en regiones abiertas recientemente. N/A por proyecto y región
CPU máxima del proyecto Es la cantidad de CPU, en mili CPU virtual, que puede usar un proyecto. Se mide por la suma total de la CPU solicitada por el usuario en las instancias de la función durante un período de 1 minuto. Depende de la región seleccionada. Este límite puede ser mayor en regiones de alta capacidad o más bajo en regiones abiertas recientemente. N/A por proyecto y región

Límites de tiempo

Cuota Descripción Límite (1st gen) Límite (2nd gen) Se puede aumentar Alcance
Duración máx. de la función El tiempo máximo que una función se puede ejecutar antes de que se fuerce su cierre 540 segundos 60 minutos para las funciones de HTTP
9 minutos para funciones controladas por eventos.
No Por invocación

Límites de frecuencia

Cuota Descripción Límite (1st gen) Límite (2nd gen) Se puede aumentar Alcance
Llamadas a la API (LECTURA) Llamadas para describir o mostrar funciones a través de la API de Firebase 5,000 cada 100 segundos 1,200 cada 60 segundos Solo para 1st gen Por proyecto (1st gen)
Por región (2nd gen)
Llamadas a la API (ESCRITURA) Llamadas para implementar o borrar funciones a través de la API de Firebase 80 cada 100 segundos 60 cada 60 segundos No1 Por proyecto (1st gen)
Por región (2nd gen)
Llamadas a la API (CALL) Llamadas a la API “de llamada” 16 cada 100 segundos N/A No2 Por proyecto

Límites de red

Para obtener información sobre las solicitudes de red y los límites de ancho de banda de Firebase (2ª gen.), consulta Límites de red.

Los siguientes límites de red se aplican a Firebase (1ª gen.):

  • Conexiones salientes por segundo por instancia: 500 (no se puede aumentar)
  • Resoluciones de DNS salientes por segundo por instancia: 100 (no se puede aumentar)

Escalabilidad

Las funciones de Firebase que invoca HTTP escalan rápidamente para procesar el tráfico entrante, mientras que las funciones en segundo plano escalan de manera más gradual. Varios factores determinan la capacidad de escalamiento de las funciones, incluidos los siguientes:

  • El tiempo que tarda la ejecución completa de una función (aquellas más breves suelen escalar verticalmente para procesar más solicitudes simultáneas)
  • El tiempo que tarda el inicio en frío de una función
  • La tasa de errores de la función
  • Factores transitorios, como la carga regional y la capacidad del centro de datos

Las funciones en segundo plano tienen límites adicionales, como se explica a continuación. Estos límites no se aplican a las funciones de HTTP de 1ª gen.

Cuotas adicionales para las funciones en segundo plano

Cuota Descripción Límite Se puede aumentar Alcance Versión del producto
Cantidad máxima de invocaciones simultáneas La cantidad máxima de invocaciones simultáneas de una sola función
Ejemplo: Si controlar cada evento tarda 100 segundos, la frecuencia de invocación se limitará a 30 por segundo en promedio.
3,000 Por función Solo para la 1ª gen.
Frecuencia de invocación máxima La frecuencia máxima de los eventos que controla una sola función
Ejemplo: Si se tardan 100 ms en manejar un evento, la frecuencia de invocación se limitará a 1,000 por segundo, incluso si solo se manejan 100 solicitudes simultáneas en promedio.
1,000 por segundo No Por función Solo para la 1ª gen.
Tamaño máximo de datos de eventos simultáneos El tamaño total máximo de los eventos entrantes a las invocaciones simultáneas de una sola función
Ejemplo: Si los eventos tienen 1 MB de tamaño y tardan 10 segundos en procesarse, la frecuencia promedio será 1 evento por segundo, dado que no se procesará el 11º evento hasta que se termine de procesar uno de los 10 primeros.
10 MB No Por función 1ª gen y 2ª gen.
Capacidad de procesamiento máxima de los eventos entrantes La capacidad de procesamiento máxima de los eventos entrantes a una sola función
Ejemplo: Si los eventos tienen 1 MB de tamaño, la frecuencia de invocación máxima puede ser de 10 por segundo, incluso si las funciones finalizan en un plazo de 100 ms.
10 MB por segundo No Por función 1ª gen y 2ª gen.

Qué ocurre cuando alcanzas el límite de una cuota

Cuando una función consume por completo un recurso asignado, este deja de estar disponible hasta que aumente o se renueve la cuota. Así, es posible que no se ejecute tu función ni ninguna otra en el mismo proyecto hasta entonces. Una función muestra un código de error HTTP 500 cuando se supera la cuota de uno de los recursos y no se puede ejecutar la función.

Para aumentar las cuotas por sobre los valores predeterminados que se indican aquí, ve a la página Cuotas de Firebase y selecciona las cuotas que deseas modificar. Luego, haz clic en Editar cuotas, proporciona tu información de usuario si se te solicita y, por último, ingresa el límite nuevo para cada cuota que hayas seleccionado.

Límites de cuotas para la implementación de Firebase CLI

Estos tipos de clasificaciones y límites de tiempo se ven afectados en cada función que implementa Firebase CLI:

  • Llamadas a la API (LECTURA): 1 llamada por implementación, independientemente de la cantidad de funciones
    • Límite: 5,000 por 100 segundos
  • Llamadas a la API (ESCRITURA): 1 llamada por función
    • Límite: 80 por 100 segundos

Consulta también la referencia de Firebase CLI.