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 | Sí | 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 | Sí | 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
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 | Sí | 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.