Desarrollo local
Cloud Run Functions admite varios métodos para ejecutar tus funciones fuera del entorno de implementación estándar. Esto resulta especialmente útil para el desarrollo iterativo y para las situaciones en las que quieres probar tu función antes de implementarla.
Casos prácticos
La posibilidad de ejecutar tus funciones sin implementarlas puede simplificar las pruebas locales, el cumplimiento de las restricciones de ubicación de los datos y las implementaciones multicloud.
Pruebas locales
Para probar una función, hay que volver a implementarla después de cada cambio, lo que implica esperar a que se complete la implementación cada vez. Por el contrario, si pruebas la función directamente en tu entorno de desarrollo, puedes acortar el ciclo de pruebas iterativo.
Para obtener más información sobre las pruebas, consulta Probar una función de Cloud Run antes de implementarla.
Restricciones de localidad de los datos
En algunos casos, las normativas o las políticas pueden requerir que los datos se conserven dentro de un límite geográfico, organizativo o de red determinado al que no puedan acceder las funciones de Cloud Run.
Si una plataforma que cumple tus restricciones de localización de datos es compatible con una de las capas de abstracción de las funciones de Cloud Run, puedes ejecutar tus funciones directamente en esa plataforma sobre una de estas capas.
Despliegues multinube
Los despliegues de funciones multinube son un patrón establecido para mitigar el riesgo de tiempo de inactividad en entornos críticos para la fiabilidad. Si despliegas funciones en entornos distintos de Cloud Run Functions, se reduce el riesgo de que tu aplicación sufra tiempos de inactividad no planificados.
Opciones de implementación
Antes de configurar tu propio entorno de alojamiento de funciones, debes tomar dos decisiones clave:
- Qué capa de abstracción quieres usar.
- El tipo de función que vas a ejecutar.
Capas de abstracción
Cloud Run Functions usa una arquitectura de varias capas, gran parte de la cual es de código abierto. Estos componentes de código abierto te permiten ejecutar código diseñado para funciones de Cloud Run en otras plataformas.
Dos componentes de esta arquitectura que puedes ejecutar fuera de la infraestructura de Cloud Run Functions son Functions Framework y Functions Emulator. En este documento se explica el objetivo de cada una de estas capas y cómo se combinan.
En este diagrama se muestra el diseño habitual de los despliegues de funciones en Cloud Run functions, Cloud Run y otras plataformas basadas en contenedores:
Tipos de eventos
Cloud Run Functions tiene dos tipos principales de funciones:
Las funciones HTTP se pueden activar mediante solicitudes HTTP arbitrarias, como webhooks, mientras que las funciones basadas en eventos reciben eventos producidos por otros productos de Google Cloud .
Elegir una capa de abstracción
Puedes ejecutar funciones de forma local con Functions Framework o con el emulador de funciones.
Functions Framework es un conjunto de bibliotecas de código abierto que se usan en las funciones de Cloud Run para deserializar las solicitudes HTTP entrantes en invocaciones de funciones específicas de cada lenguaje. Puedes usarlas para convertir tu función en un servicio HTTP que se pueda ejecutar localmente.
Functions Emulator usa Cloud Native Buildpacks y Docker para envolver los servicios HTTP creados por Functions Framework y convertirlos en contenedores ejecutables, que se ejecutan en la arquitectura basada en contenedores de las funciones de Cloud Run.
Ambas opciones tienen ventajas e inconvenientes:
- Los entornos basados en Functions Framework suelen tener menos necesidades de recursos
- Functions Framework no requiere software de contenedorización subyacente (como Docker).
- Los entornos basados en Functions Framework requieren una infraestructura de lenguaje subyacente (como gestores de paquetes y entornos de ejecución de lenguajes).
- Functions Emulator refleja los comandos de producción, como las llamadas y las implementaciones.
- Functions Emulator ofrece una alta fidelidad a la forma en que se ejecutan las funciones cuando se implementan en producción.
Ejecutar funciones de forma local
Tanto Functions Framework como Functions Emulator funcionan reenviando solicitudes HTTP a tu función.
Consulta Ejecutar Functions Framework para obtener más información sobre cómo ejecutar funciones de forma local con Functions Framework.
Consulta Ejecutar funciones con el emulador de funciones para obtener más información sobre cómo ejecutar funciones de forma local con el emulador de funciones.