Con la tecnología de Cloud Run y Eventarc, Cloud Functions para Firebase (2ª gen.) tiene el potencial de ofrecerte una infraestructura más potente, un control avanzado sobre el rendimiento y la escalabilidad, y más control del tiempo de ejecución de las funciones. En esta documentación sobre la versión preliminar pública, se explican la información reciente y las opciones disponibles en este momento en la versión preliminar de la 2ª gen., y se proporciona orientación para usar la nueva API, ya sea de forma independiente o en conjunto con las APIs de Cloud Functions para Firebase (1ª gen.).
Novedades de Cloud Functions para Firebase (2ª gen.)
Entre los cambios y las mejoras disponibles actualmente en Cloud Functions para Firebase (2ª gen.), se incluye lo siguiente:
- Las instancias de funciones ahora pueden ejecutar más de una solicitud a la vez.
Está disponible para funciones con una o más CPU dedicadas.
Los niveles de simultaneidad se pueden configurar por función
o en todas las funciones con el método
setGlobalOptions
. Si no se especifica, el valor predeterminado de las funciones nuevas con 1 o más CPU dedicadas será de 80 solicitudes simultáneas. Consulta Cómo permitir solicitudes simultáneas. - Protege tus funciones de HTTP y las que admiten llamadas con un nuevo parámetro de configuración de
cors
. Ahora los activadores HTTP también tienen un parámetro de configuración decors
para facilitar la administración del CORS. - Ahora Cloud Functions se basa en Cloud Run. Si todavía no conoces Cloud Run, no te preocupes, ya que crear funciones es tan fácil como antes. Cloud Run es un producto sin servidores más moderno que proporciona mejor rendimiento, configuración, supervisión y mucho más.
- Google colaboró con líderes de la industria para crear la especificación de CloudEvents. Las funciones de control de eventos ahora usan este estándar abierto como firma de evento.
- Entre los tipos nuevos de activadores, se encuentran los activadores de Alertas de Firebase, los activadores de eventos personalizados para las Extensiones de Firebase y las funciones de lista de tareas en cola para ejecutar tareas con uso intensivo de recursos en Cloud Tasks (las funciones de lista de tareas en cola también están disponibles en la 1ª gen.).
- El SDK de
firebase-functions
se rediseñó con una estructura más nativa para las versiones modernas de JavaScript. Puedes configurar funciones de la 2ª gen. a nivel global, usar objetos de opciones y realizar importaciones modulares. - Las funciones de HTTP ahora pueden tener un tiempo de espera de 1 hora (frente a los 9 minutos anteriores) si es necesario para las cargas de trabajo de larga duración.
- Las instancias de funciones ahora utilizan la cuenta de servicio de procesamiento predeterminada en vez de la cuenta de servicio de App Engine.
Limitaciones durante la versión preliminar
Esta versión preliminar de Cloud Functions (2nd gen) aún no incluye el conjunto completo de funcionalidades planificadas ni proporciona paridad de funciones completa con Cloud Functions (1st gen). Es limitada en cuanto a los activadores disponibles y, actualmente, tiene otras limitaciones que se describen en esta sección.
Activadores de Cloud Functions disponibles actualmente
Cloud Functions (2nd gen) es compatible con los siguientes activadores en segundo plano de Firebase:
- Firebase Realtime Database
- Cloud Storage
- Alertas de Firebase
- Pub/Sub
- Funciones que admiten llamadas
- Cloud Tasks
- HTTP
- Funciones programadas
- Funciones de bloqueo de Firebase Authentication
- Firebase Remote Config
- Firebase Test Lab
- Cloud Firestore
Actualmente, Cloud Functions (2nd gen) no admite estos activadores:
- Firebase Authentication
onCreate
yonDelete
- Google Analytics
Otras limitaciones
Estas limitaciones también se aplican a Cloud Functions (2nd gen):
- Aún no se ha compilado la observabilidad completa en Firebase CLI ni en Firebase console. Para observar tus instancias de función, usa la consola de Google Cloud en el servicio de Cloud Run subyacente.
- Actualmente, Firebase Local Emulator Suite admite funciones de HTTP, Cloud Storage y Pub/Sub en la 2ª gen.
- Los inicios en frío aún no se optimizaron en 2ª gen., y es posible que sean temporalmente más lentos que en la 1ª gen. Sin embargo, los usuarios finales deberían experimentar menos inicios en frío debido a la simultaneidad.