IC/EC

Las canalizaciones de integración y de implementación continuas (IC/EC) ayudan a garantizar que tus funciones sirvan tanto localmente como en un entorno de prueba en GCP.

En esta guía, se explica cómo configurar una canalización de IC/EC con Cloud Build para ejecutar tus pruebas de Cloud Functions existentes de forma continua.

Una vez que termines de desarrollar funciones localmente, puedes configurar una plataforma de IC/EC, 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.

Marcos de trabajo de prueba

Los marcos de trabajo de prueba proporcionan un entorno de ejecución para 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 una dependencia en la que se basa tu función, que no forma parte del código de esta.

Node.js

Los ejemplos de esta guía usan Mocha como un marco de trabajo para pruebas a fin de ejecutar pruebas, y Sinon como un simulador de marcos de trabajo para simular dependencias externas.

Una dependencia externa es una dependencia en la que se basa tu función, que no forma parte del código de esta. Algunos ejemplos comunes de dependencias externas son otros servicios y bibliotecas de Google Cloud Platform instalados mediante administradores de paquetes, comonpm, PyPI o Maven.

Python

En los ejemplos de esta guía, se usa Pytest como marco de trabajo de prueba para ejecutar pruebas y unittest como marco de trabajo de simulación para simular dependencias externas.

Una dependencia externa es una dependencia en la que se basa tu función, que no forma parte del código de esta. Algunos ejemplos comunes de dependencias externas son otros servicios y bibliotecas de Google Cloud Platform instalados con administradores de paquetes, como pip.

Go

En los ejemplos de esta guía, se usa el paquete testing de la biblioteca estándar para ejecutar las pruebas. Sin embargo, las pruebas del sistema tienen dependencias externas.

Una dependencia externa es una dependencia en la que se basa tu función, que no forma parte del código de esta. Algunos ejemplos comunes de dependencias externas son otros servicios de Google Cloud Platform y otros paquetes que hayas descargado.

Configura Cloud Build

Sigue las instrucciones en la guía Automatiza compilaciones con activadores de compilación y usa el archivo de configuración de compilación cloudbuild.yaml que aparece a continuación para configurar Cloud Build con el objetivo de probar y, luego, implementar la función automáticamente.

Node.js

steps:
- name: 'gcr.io/cloud-builders/yarn'
  args: ['install']
  dir: 'functions/autodeploy'
- name: 'gcr.io/cloud-builders/npm'
  args: ['test']
  dir: 'functions/autodeploy'
- name: 'gcr.io/cloud-builders/gcloud'
  args: ['functions', 'deploy', '[YOUR_DEPLOYED_FUNCTION_NAME]', '[YOUR_FUNCTION_TRIGGER]', '--runtime', '[YOUR_RUNTIME]', '--entry-point', '[YOUR_FUNCTION_NAME_IN_CODE]']
  dir: 'functions/autodeploy'

Reemplaza lo siguiente:

  • [YOUR_FUNCTION_NAME] por el nombre de tus funciones de Cloud Functions que se utilizará en Google Cloud Platform Console, el SDK de Cloud 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, como nodejs10.
  • [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_FUNCTION_NAME].

Si Cloud Build no se ajusta a tus necesidades, consulta esta lista de plataformas de integración continua.

Otorga permisos para ejecutar implementaciones y compilaciones

Si usas Cloud Build, es necesario que otorgues permisos a la cuenta de servicio de Cloud Build.

Por ejemplo:

  • Para implementar funciones de Cloud Functions, te recomendamos que asignes la función de Desarrollador de Cloud Functions a la cuenta de servicio de Cloud Build (PROJECT_NUMBER@cloudbuild.gserviceaccount.com).
  • Si usas la función de Desarrollador de Cloud Functions, es necesario que también otorgues a la cuenta de servicio del entorno de ejecución de Cloud Functions (PROJECT_ID@appspot.gserviceaccount.com) la función de Usuario de cuenta de servicio de IAM.

Ahora, siempre que envíes cambios al repositorio con Cloud Build habilitado, se ejecutarán los pasos en cloudbuild.yaml.

¿Te ha resultado útil esta página? Enviar comentarios:

Enviar comentarios sobre...

Documentación de Cloud Functions