Crea e implementa Cloud Run Function HTTP con Node.js
En este documento, se explica el proceso para crear una función de HTTP de Cloud Run Function simple. Este es uno de los dos tipos de Cloud Run Functions:
- 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 activa mediante eventos en la infraestructura de tu nube, como mensajes en un tema de Cloud Pub/Sub o cambios en un bucket de Cloud Storage.
Para obtener más detalles, consulta Escribir funciones HTTP y Escribir funciones controladas por eventos.
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, Cloud Build, Artifact Registry, Cloud Run, and Cloud Logging 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, Cloud Build, Artifact Registry, Cloud Run, and Cloud Logging APIs.
- Instala e inicializa gcloud CLI
- Instala y actualiza componentes de
gcloud
.gcloud components update
- Prepara tu entorno de desarrollo.
Crea tu 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 muestra una respuesta "Hello World!" a todas las solicitudes.
Especificar dependencias
Las dependencias en Node.js se administran con npm y se expresan en un archivo de metadatos llamado package.json
. Puedes crear este archivo de forma manual o con el comando de npm
.
Para crear tu archivo
package.json
con el comandonpm
, sigue estos pasos:Ejecuta el comando
npm init
desde el directorio helloworld. PresionaEnter
para aceptar la respuesta predeterminada a sus preguntas.npm init
Edita el archivo
package.json
para agregar una dependencia de funciones y framework:"dependencies": { "@google-cloud/functions-framework": "^3.1.0" }
Si prefieres crear el archivo
package.json
de forma manual, copia el siguiente contenido en él:
Muchas bibliotecas cliente de Node.js están disponibles para su uso con productos de Google Cloud y se pueden instalar como dependencias.
Compila y prueba la función de forma local
Para probar tu función de forma local antes de implementarla, debes instalar Functions Framework de forma local y, luego, ejecutar la función.
Ejecuta el siguiente comando desde el directorio
helloworld
para instalar Functions Framework en tu máquina local:npm install @google-cloud/functions-framework
Ejecuta este comando desde el directorio
helloworld
para ejecutar la función de forma local:npx @google-cloud/functions-framework --target=helloGET
Para probar tu función, visita
http://localhost:8080
en un navegador o ejecutacurl localhost:8080
desde otra ventana.Consulta Envía solicitudes a funciones locales para obtener más detalles.
La función muestra el mensaje “Hello, World!”.
Implemente su función
Para implementar tu función, ejecuta el comando gcloud functions deploy
en el directorio helloworld
:
gcloud functions deploy hello-node-function \
--gen2 \
--runtime=nodejs20 \
--region=REGION \
--source=. \
--entry-point=helloGET \
--trigger-http \
--allow-unauthenticated
Reemplaza REGION por el nombre de la región de Google Cloud en la que deseas implementar tu función (por ejemplo, us-west1
).
Esto implementa tu función de muestra con el entorno de ejecución de nodejs20 en la región que elegiste.
La marca opcional --allow-unauthenticated
te permite acceder a tu función sin autenticación.
Prueba la función implementada
Después de que se implementa la función, toma nota de la propiedad
uri
del resultado del comandogcloud functions deploy
o recupérala con el siguiente comando:gcloud functions describe hello-node-function \ --region=REGION
Reemplaza REGION por el nombre de la región de Google Cloud en la que implementaste tu función (por ejemplo,
us-west1
).Visita esta URL en tu navegador o con el siguiente comando de
curl
:curl FUNCTION_URL
Reemplaza FUNCTION_URL por la propiedad
uri
que acabas de recuperar.La función muestra un mensaje "Hello World!".
Visualiza los registros de tu función
Visualiza registros con la herramienta de línea de comandos
Puedes revisar los registros de tu función con la IU de Cloud Logging o a través de Google Cloud CLI.
Para ver los registros de tu función con la CLI de gcloud, usa el comando gcloud functions logs read
:
gcloud functions logs read \
--gen2 \
--region=REGION \
--limit=10 \
hello-node-function
Reemplaza REGION por el nombre de la región de Google Cloud en la que implementaste tu función (por ejemplo, us-west1
).
El resultado se ve de la manera siguiente:
LEVEL: I
NAME: hello-node-function
TIME_UTC: 2023-06-16 18:42:24.956
LOG:
LEVEL: I
NAME: hello-node-function
TIME_UTC: 2023-06-16 18:42:01.692
LOG:
LEVEL: I
NAME: hello-node-function
TIME_UTC: 2023-06-16 18:31:47.711
LOG: Default STARTUP TCP probe succeeded after 1 attempt for container "hello--node--function-1" on port 8080.
LEVEL: I
NAME: hello-node-function
TIME_UTC: 2023-06-16 18:31:46.542
LOG:
LEVEL: I
NAME: hello-node-function
TIME_UTC: 2023-06-16 18:31:27.390
LOG: Default STARTUP TCP probe succeeded after 1 attempt for container "hello--node--function-1" on port 8080.
Visualiza registros con el panel de registros
Para ver los registros de tu función con el panel de registro, abre el Página de descripción general de Cloud Run Functions, haz clic en el nombre de tu función en la lista y, luego, en la pestaña Registros.