CI/CD
Las canalizaciones de integración e implementación continuas (CI/CD) permiten garantizar que tus funciones operen de forma local y en entornos de pruebas de Google Cloud.
Una vez que termines de desarrollar funciones a nivel local, puedes configurar una plataforma de CI/CD como Cloud Build para ejecutar tus pruebas existentes de Cloud Functions de forma continua. Las pruebas continuas ayudan a garantizar que tu código siga funcionando como se prevé y que tus dependencias permanezcan actualizadas. Como las funciones de Cloud Functions no se actualizan automáticamente, también puedes configurar las canalizaciones de IC/EC (incluidas las creadas sobre Cloud Build) para probar y volver a implementar automáticamente tus funciones desde un repositorio de código fuente, como GitHub, Bitbucket o Cloud Source Repositories.
Antes de comenzar
Antes de comenzar con esta guía, configura tu entorno.
Node.js
Python
- Ir a la guía de configuración de Python
-
Instala
pytest
.pip install --upgrade pytest
Go
Java
Frameworks de pruebas
Los frameworks de pruebas proporcionan un entorno de ejecución para las pruebas automatizadas, que te permiten mantener implementaciones de producción completamente probadas con muy poco esfuerzo por implementación. Los marcos de trabajo de simulación te permiten simular dependencias externas. Una dependencia externa es aquella necesaria para la función, pero que no forma parte del código de esta.
Node.js
En los ejemplos de esta guía, se usa Mocha como un framework para pruebas a fin de ejecutar pruebas y Sinon como un framework de simulación de dependencias externas.Una dependencia externa es aquella necesaria para la función, pero que no forma parte del código de esta. Algunos ejemplos comunes de dependencias externas son otros servicios y bibliotecas de Google Cloud instalados con administradores de paquetes como npm, PyPI o Maven.
Python
En los ejemplos de esta guía, se usa Pytest como un framework de prueba para ejecutar pruebas y unittest como un framework de simulación de dependencias externas.
Una dependencia externa es aquella necesaria para la función, pero que no forma parte del código de esta. Algunos ejemplos comunes de dependencias externas son otros servicios y bibliotecas de Google Cloud instalados con administradores de paquetes como pip.
Go
En los ejemplos de esta guía, se usa el paquetetesting
de la biblioteca estándar para ejecutar las pruebas. Sin embargo, las pruebas del sistema tienen dependencias externas.
Una dependencia externa es aquella necesaria para la función, pero que no forma parte del código de esta. Algunos ejemplos comunes de dependencias externas son otros servicios de Google Cloud y otros paquetes descargados.
Java
En los ejemplos de esta guía, se usa la biblioteca JUnit para ejecutar pruebas y Mockito como framework de simulación de dependencias externas.Una dependencia externa es aquella necesaria para la función, pero que no forma parte del código de esta.
Configura Cloud Build
Sigue las instrucciones en la guía Automatiza compilaciones con activadores de compilación mediante el uso del archivo de configuración de compilación cloudbuild.yaml
que aparece a continuación para configurar Cloud Build a fin de probar y, luego, implementar tu función de forma automática.
Node.js
Python
Go
Java
Reemplaza lo siguiente:
[YOUR_DEPLOYED_FUNCTION_NAME]
por el nombre de las Cloud Functions que se usarán en Google Cloud Console, Google Cloud CLI y la URL[YOUR_FUNCTION_TRIGGER]
por el valor del activador apropiado, como--trigger-http
[YOUR_RUNTIME]
por el identificador del entorno de ejecución, comonodejs10
[YOUR_FUNCTION_NAME_IN_CODE]
por el nombre de la función tal como aparece en el código.--entry-point
solo es necesario si este valor es diferente de[YOUR_DEPLOYED_FUNCTION_NAME]
.function/dir/from/repo/root
por la ruta de acceso del directorio que contiene tu función y sus listas de dependencias.
Otorga permisos para ejecutar implementaciones y compilaciones
Si usas Cloud Build para implementar Cloud Functions, debes otorgarle permisos a la cuenta de servicio de Cloud Build (PROJECT_NUMBER@cloudbuild.gserviceaccount.com
). Esta cuenta se usa para ejecutar compilaciones en tu nombre.
Busca el número de tu proyecto:
gcloud projects describe PROJECT_ID
Consulta Crea y administra proyectos para aprender a identificar tu proyecto.
Permite que la cuenta de servicio de Cloud Build funcione como cuenta de servicio del entorno de ejecución de Cloud Functions:
gcloud iam service-accounts add-iam-policy-binding PROJECT_ID@appspot.gserviceaccount.com \ --member serviceAccount:PROJECT_NUMBER@cloudbuild.gserviceaccount.com \ --role roles/iam.serviceAccountUser
Asigna la función de desarrollador de Cloud Functions a la cuenta de servicio de Cloud Build para permitir que Cloud Build implemente Cloud Functions:
gcloud projects add-iam-policy-binding PROJECT_ID \ --member serviceAccount:PROJECT_NUMBER@cloudbuild.gserviceaccount.com \ --role roles/cloudfunctions.developer
Para obtener más información, consulta las funciones de IAM de Cloud Functions.
De ahora en adelante, cada vez que hagas envíos al repositorio con Cloud Build habilitado, se ejecutarán los pasos indicados en el archivo cloudbuild.yaml
.