Desarrollo local

Cloud Functions admite varios métodos para ejecutar las funciones fuera del entorno de implementación estándar. Esto es particularmente útil para el desarrollo iterativo y situaciones en las que quieres probar tu función antes de implementarla.

Casos de uso

La capacidad de ejecutar las funciones sin implementarlas puede simplificar las pruebas locales, el cumplimiento de las restricciones de localidad de datos y las implementaciones de múltiples nubes.

Pruebas locales

Para probar una función, vuelve a implementarla después de cada cambio requiere esperar la implementación cada vez. Por el contrario, probar la función directamente en el entorno de desarrollo puede acortar el ciclo de prueba iterativo.

Para obtener más información sobre las pruebas, consulta la página Prueba una Cloud Function antes de la implementación.

Restricciones de localidad de datos

En algunos casos, las normas o políticas pueden requerir que los datos se mantengan dentro de cierto límite geográfico, organizativo o de red en el que Cloud Functions puede no tener acceso.

Si una plataforma que cumple con las restricciones de localidad de datos es compatible con una de las capas de abstracción de Cloud Functions, puedes ejecutar las funciones directamente en esa plataforma sobre una de estas capas.

Implementaciones en múltiples nubes

Las implementaciones de funciones en múltiples nubes tienen un patrón establecido para mitigar el riesgo de tiempo de inactividad en entornos críticos para la confiabilidad. Implementar funciones en entornos que no sean de Cloud Functions reduce el riesgo de que tu aplicación experimente un tiempo de inactividad no planificado.

Opciones de implementación

Antes de que puedas configurar tu propio entorno de hosting de funciones, debes elegir dos opciones clave:

  • La capa de abstracción que deseas usar
  • El tipo de función que ejecutarás

Capas de abstracción

Cloud Functions usa una arquitectura de múltiples capas, muchas de las cuales están configuradas como código abierto. Estos componentes de código abierto te permiten ejecutar un código diseñado para Cloud Functions en otras plataformas.

Dos componentes de esta arquitectura que puedes ejecutar fuera de la infraestructura de Cloud Functions son Functions Framework y el emulador de funciones de Google Cloud CLI. En este documento, se explica el propósito de cada una de estas capas y la manera en la que se conectan entre sí.

En el siguiente diagrama, se muestra el diseño típico de las implementaciones de funciones en Cloud Functions, Cloud Run y otras plataformas basadas en contenedores:

Diseño de unión de funciones: función, Function Frameworks, Buildpack, plataforma host

Tipos de eventos

Cloud Functions tiene dos tipos principales de funciones:

Las funciones de HTTP pueden activarse a través de solicitudes HTTP arbitrarias, como webhooks, mientras que las funciones controladas por eventos reciben eventos que producen otros productos de Google Cloud.

Elige una capa de abstracción

Puedes ejecutar funciones de forma local con Functions Framework o Functions Emulator.

Functions Framework es un conjunto de bibliotecas de código abierto que se usan en Cloud Functions para deserializar las solicitudes HTTP entrantes en invocaciones de funciones específicas del lenguaje. Puedes usarlas para convertir la función en un servicio HTTP que se pueda ejecutar de forma local.

Functions Emulator usa Cloud Native Buildpacks y Docker para unir los servicios HTTP que creó Functions Framework y compilarlos en contenedores ejecutables, que luego se ejecutan en la arquitectura basada en contenedores de Cloud Functions.

Ambas opciones tienen ventajas y desventajas:

  • Los entornos basados en Functions Framework suelen tener necesidades de recursos más bajas.
  • Functions Framework no requiere software de creación de contenedores subyacente (como Docker).
  • Los entornos basados en Functions Framework requieren una infraestructura de lenguaje subyacente (como administradores de paquetes y entornos de ejecución de lenguajes).
  • El emulador de Functions duplica los comandos de producción, como las llamadas y las implementaciones.
  • Functions Emulator ofrece alta fidelidad a la forma en que se ejecutan las funciones cuando se implementan en producción.

Ejecuta funciones de manera local

Functions Framework y Functions Emulator funcionan mediante el reenvío de solicitudes HTTP a tu función.

Consulta Ejecuta Functions Framework para obtener más información sobre cómo ejecutar funciones de forma local con Functions Framework.

Consulta Ejecuta Functions con Functions Emulator para obtener más información sobre cómo ejecutar funciones de forma local con el emulador de Functions.