Crea e implementa una función HTTP de Cloud Run Functions con Node.js (1ª gen.)
En esta guía, aprenderás a escribir una función de Cloud Run Functions mediante el entorno de ejecución de Node.js. Existen dos tipos de funciones de Cloud Run:
- Una función de HTTP que se invoca a partir de solicitudes HTTP estándar.
- La otra es una función controlada por eventos que se usa para manejar los eventos de la infraestructura de tu nube, como mensajes en un tema de Cloud Pub/Sub o cambios en un bucket de Cloud Storage.
En el ejemplo, se muestra cómo crear una función de HTTP simple.
Antes de comenzar
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Cloud Functions and Cloud Build APIs.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Cloud Functions and Cloud Build APIs.
- Instala e inicializa gcloud CLI
- Instala y actualiza componentes de
gcloud
:gcloud components update
- Prepara tu entorno de desarrollo.
Cree una función
Crea un directorio en tu sistema local para el código de función:
Linux o Mac OS X
mkdir ~/helloworld cd ~/helloworld
Windows
mkdir %HOMEPATH%\helloworld cd %HOMEPATH%\helloworld
Crea un archivo
index.js
en el directoriohelloworld
con el siguiente contenido:Esta función de ejemplo toma un nombre proporcionado en la solicitud HTTP y muestra un saludo o “Hello World!” cuando no se proporciona ningún nombre.
Especificar dependencias
Las dependencias en Node.js se almacenan en un archivo llamado package.json
.
Puedes crear este archivo de forma manual o con el comando de npm.
Para crear tu archivo de dependencia
package.json
connpm
, ejecuta estos comandos:npm init npm install c8 gaxios mocha sinon supertest wait-port --save-dev npm install @google-cloud/functions-framework escape-html
Si prefieres compilar el archivo
package.json
de forma manual, crea un archivopackage.json
en el directoriohelloworld
con el siguiente contenido:
Implementa la función
Ejecuta el siguiente comando en el directorio helloworld
para implementar la función con un activador HTTP:
gcloud functions deploy helloHttp --no-gen2 --runtime nodejs20 --trigger-http --allow-unauthenticated
La marca --allow-unauthenticated
te permite acceder a la función sin autenticación.
Para solicitar la autenticación, omite la marca.
Prueba la función
Cuando la función termine de implementarse, toma nota de la propiedad
httpsTrigger.url
o búscala con el siguiente comando:gcloud functions describe helloHttp
Se verá de la siguiente manera:
https://GCP_REGION-PROJECT_ID.cloudfunctions.net/helloHttp
Visita esta URL en tu navegador. Deberías ver el mensaje “Hello, World!”.
Intenta pasar un nombre en la solicitud HTTP, por ejemplo, mediante la siguiente URL:
https://GCP_REGION-PROJECT_ID.cloudfunctions.net/helloHttp?name=NAME
Deberías ver el mensaje “Hello,
NAME
!”
Ver registros
Los registros de Cloud Run Functions pueden verse con Google Cloud CLI y en la IU de Cloud Logging.
Usa la herramienta de línea de comandos
Para visualizar los registros de tu función con gcloud CLI, usa el comando logs read
seguido del nombre de la función:
gcloud functions logs read helloHttp
El resultado debe parecerse al siguiente:
LEVEL NAME EXECUTION_ID TIME_UTC LOG D helloHttp rvb9j0axfclb 2019-09-18 22:06:25.983 Function execution started D helloHttp rvb9j0axfclb 2019-09-18 22:06:26.001 Function execution took 19 ms, finished with status code: 200
Usa el panel de Logging
También puedes ver los registros de Cloud Run Functions desde la consola de Google Cloud.