Implementa Cloud Functions con control de versión

En esta página, se muestra cómo implementar Cloud Functions con código con control de versión en Cloud Source Repositories.

La integración de Cloud Functions en Cloud Source Repositories te permite usar el control de versiones con el código que contiene la función en Cloud Source Repositories. Incluso cuando la función se vaya modificando con el tiempo, tendrás acceso a las confirmaciones anteriores para ver cómo y cuándo cambió.

Antes de comenzar

  1. Completa los pasos de Crea un repositorio de código en Cloud Source Repositories.
  2. Habilita la API de Cloud Functions y la API de Cloud Build.
  3. Habilita la API de Cloud Functions y la API de Cloud Build

Agrega una función al repositorio

  1. En tu máquina local, ve al directorio raíz del repositorio hello-world:

    cd hello-world
    
  2. En tu sistema local, crea un directorio para el código de la función.

    Linux o macOS

    Crea el directorio:

    mkdir gcf_hello_world

    Mueve al directorio:

    cd gcf_hello_world

    Windows (CMD)

    Crea el directorio:

    mkdir %HOMEDRIVE%%HOMEPATH%\gcf_hello_world

    Ingresa al directorio:

    cd %HOMEDRIVE%%HOMEPATH%\gcf_hello_world
  3. En el directorio gcf_hello_world, crea un archivo index.js con el siguiente contenido:

    /* HTTP Cloud Function.
    *
    * @param {Object} req Cloud Function request context.
    * @param {Object} res Cloud Function response context.
    */
    exports.helloGET = (req, res) => {
      res.send('Hello from Cloud Functions and Cloud Source Repositories');
    };
    

    Esta es una función simple llamada helloGET que responde a solicitudes HTTP GET con el texto Hello from Cloud Functions and Cloud Source Repositories.

Envía a Cloud Source Repositories

Envía los archivos que acabas de crear a Cloud Source Repositories.

  1. Agrega los siguientes archivos:

    git add .
    
  2. Confirma los archivos con un comentario que describa el historial de esta acción:

    git commit -m "Add Cloud Functions test to Cloud Source Repositories"
    
  1. Usa el comando git push para agregar el contenido del repositorio de Git local a Cloud Source Repositories:

    git push origin master
    

Crea y, luego, implementa la función

Crea e implementa tu función con la consola de Google Cloud o Google Cloud CLI.

Consola

  1. Ve a la página de Cloud Functions.

    Ir a la página de Cloud Functions

    Asegúrate de que el proyecto de Google Cloud para el que habilitaste Cloud Functions esté seleccionado.

  2. Haz clic en Crear función.

  3. En la página Crear función, completa las siguientes opciones:

    • En el campo Entorno, selecciona 1a gen.
    • En el campo Nombre de la función, escribe cloud-source-repositories-test.
    • En el campo Región, selecciona us-central1.
    • En la lista Activador, selecciona HTTP.
    • En la lista Autenticación, selecciona Solicitar autenticación.
    • Asegúrate de que esté marcada la opción Requerir HTTPS.
  4. Haz clic en Guardar.

  5. Haz clic en Siguiente.

    • En el campo Entorno de ejecución, selecciona Node.js 16.
    • En el campo Punto de entrada, ingresa helloGET.
    • En la lista Código fuente, selecciona Cloud Source Repositories.
    • En el campo Repositorio, escribe hello-world.
    • En el campo Nombre de la rama, escribe master.
    • En el campo Directorio con código fuente, escribe /gcf_hello_world.
  6. Haz clic en Implementar.

Mientras se implementa la función, aparece un ícono giratorio pequeño a su lado. Cuando finalice la implementación, el ícono giratorio se convertirá en una marca de verificación verde.

gcloud CLI

  1. En una ventana de la terminal, establece una variable que contenga el ID de tu proyecto de Google Cloud. Asegúrate de que este sea el mismo proyecto de Google Cloud que contiene el repositorio.

    export PROJECT_ID=$(gcloud config list --format 'value(core.project)')
    
  2. Sigue estos pasos para implementar la función:

    gcloud functions deploy helloGET \
    --source https://source.developers.google.com/projects/$PROJECT_ID/repos/hello-world/moveable-aliases/master/paths/gcf_hello_world \
    --trigger-http \
    --runtime=nodejs8;
    

Para obtener más información sobre la implementación en Cloud Source Repositories, consulta Implementa desde el control de origen.

Prueba la función

Usa GCP Console o gcloud CLI para probar tu función nueva.

Consola

  1. Ve a la página Descripción general de Cloud Functions.

    Ir a la página Resumen

    Asegúrate de que el proyecto de Google Cloud para el que habilitaste Cloud Functions esté seleccionado.

  2. Haz clic en el menú Mostrar acciones en la fila de la función cloud-source-repositories-test.

  3. Haz clic en Probar función.

  4. Haz clic en el botón Probar la función.

    Después de un minuto o dos, el campo Resultado se actualiza para mostrar el mensaje Hello from Cloud Functions and Cloud Source Repositories.

gcloud CLI

Ingresa el siguiente comando en una ventana de la terminal:

gcloud functions call helloGET

Se muestra un resultado similar al siguiente:

executionId: owqd9fdh5od2
result: Hello from Cloud Functions and Cloud Source Repositories

Limpia

Sigue estos pasos para borrar la función y el repositorio que creaste.

Borra la función

  1. Ve a la página Descripción general de Cloud Functions.

    Ir a la página Resumen

    Asegúrate de que el proyecto de Google Cloud para el que habilitaste Cloud Functions esté seleccionado.

  2. Selecciona la función helloGET para esta guía de inicio rápido, cloud-source-repositories-test.

  3. En la misma fila, haz clic en Más , y luego haz clic en Eliminar.

Borra el repositorio

  1. En GCP Console, abre la página Todos los repositorios de Cloud Source Repositories.

    Abrir Cloud Source Repositories

  2. Mantén el puntero sobre el repositorio que deseas borrar y haz clic en Configuración.

    Se abrirá la página Configuración general.

  3. Haz clic en Borrar este repositorio.

    Se abrirá el cuadro de diálogo Quitar repositorio.

  4. Escribe el nombre del repositorio que deseas borrar.

  5. Haz clic en Borrar.

¿Qué sigue?