Objetivos
Escribe, despliega y activa una función HTTP de Cloud Run que acceda a Spanner.
Costes
En este documento se usan funciones de Spanner y Cloud Run, que son componentes facturables de Google Cloud.
Para obtener información sobre el coste de usar Spanner, consulta la página Precios de Spanner.
Para obtener información sobre el coste de usar Cloud Run Functions, incluidas las invocaciones gratuitas, consulta los precios de Cloud Run Functions.
Antes de empezar
En este documento se da por hecho que tienes una instancia de Spanner llamada
test-instance
y una base de datos llamadaexample-db
que usa el esquema de la aplicación de música. Para obtener instrucciones sobre cómo crear una instancia y una base de datos con el esquema de la aplicación de música, consulta la guía de inicio rápido con la consola o los tutoriales para empezar en Go, Java, Node.js o Python.Habilita las APIs Cloud Run Functions y Cloud Build.
Instala e inicializa gcloud CLI.
Si ya tienes instalada la CLI de gcloud, actualízala ejecutando el siguiente comando:
gcloud components update
Prepara tu entorno de desarrollo:
Preparar la aplicación
Clona el repositorio de aplicaciones de muestra en la máquina local:
Node.js
git clone https://github.com/GoogleCloudPlatform/nodejs-docs-samples.git
También puedes descargar el ejemplo como un archivo ZIP y extraerlo.
Python
git clone https://github.com/GoogleCloudPlatform/python-docs-samples.git
También puedes descargar el ejemplo como un archivo ZIP y extraerlo.
Go
git clone https://github.com/GoogleCloudPlatform/golang-samples.git
También puedes descargar el ejemplo como un archivo ZIP y extraerlo.
Java
git clone https://github.com/GoogleCloudPlatform/java-docs-samples.git
También puedes descargar el ejemplo como un archivo ZIP y extraerlo.
Cambia al directorio que contiene el código de ejemplo de Cloud Run functions para acceder a Spanner:
Node.js
cd nodejs-docs-samples/functions/spanner/
Python
cd python-docs-samples/functions/spanner/
Go
cd golang-samples/functions/spanner/
Java
cd java-docs-samples/functions/spanner/
Echa un vistazo al código de ejemplo:
Node.js
Python
Go
Java
La función envía una consulta SQL para obtener todos los datos de
Albums
de tu base de datos. La función se ejecuta cuando haces una solicitud HTTP al endpoint de la función.
Desplegar la función
Para desplegar la función con un activador HTTP, ejecuta el siguiente comando en el directorio spanner
:
Node.js
gcloud functions deploy get \ --runtime nodejs20 --trigger-http
Usa la marca --runtime
para especificar el ID del entorno de ejecución de una
versión compatible de Node.js para ejecutar
tu función.
Python
gcloud functions deploy spanner_read_data \ --runtime python312 --trigger-http
Usa la marca --runtime
para especificar el ID de tiempo de ejecución de una
versión de Python compatible para ejecutar
tu función.
Go
gcloud functions deploy HelloSpanner \ --runtime go121 --trigger-http
Usa la marca --runtime
para especificar el ID de tiempo de ejecución de una versión de Go compatible para ejecutar tu función.
Java
gcloud functions deploy java-spanner-function \ --entry-point functions.HelloSpanner \ --runtime java17 \ --memory 512MB --trigger-http
Usa la marca --runtime
para especificar el ID de tiempo de ejecución de una
versión de Java compatible para ejecutar
tu función.
El despliegue de la función puede tardar hasta dos minutos.
Anota el valor de url
que se devuelve cuando finalice la implementación de la función. La usarás cuando actives la función.
Puedes ver las funciones desplegadas en la página Funciones de Cloud Run de laGoogle Cloud consola. También puedes crear y editar funciones en esa página, así como obtener detalles y diagnósticos de tus funciones.
Activar la función
Envía una solicitud HTTP a tu función:
Node.js
curl "https://REGION-PROJECT_ID.cloudfunctions.net/get"
Python
curl "https://REGION-PROJECT_ID.cloudfunctions.net/spanner_read_data"
Go
curl "https://REGION-PROJECT_ID.cloudfunctions.net/HelloSpanner"
Java
curl "https://REGION-PROJECT_ID.cloudfunctions.net/java-spanner-function"
donde REGION
y PROJECT_ID
coinciden con los valores que se ven en tu terminal cuando termina de implementarse tu función. Deberías ver un resultado que muestre los resultados de la consulta de SQL, siempre que hayas completado un tutorial de introducción y hayas rellenado la base de datos:
SingerId: 2, AlbumId: 2, AlbumTitle: Forever Hold Your Peace
SingerId: 1, AlbumId: 2, AlbumTitle: Go, Go, Go
SingerId: 2, AlbumId: 1, AlbumTitle: Green
SingerId: 2, AlbumId: 3, AlbumTitle: Terrified
SingerId: 1, AlbumId: 1, AlbumTitle: Total Junk
También puedes visitar la URL de la función en tu navegador para ver el resultado de tu consulta SQL.
Limpieza
Para evitar que se apliquen cargos adicionales en tu cuenta de Google Cloud por los recursos de las funciones de Spanner y Cloud Run que se han usado en este documento, haz lo siguiente:
Elimina la instancia:
gcloud spanner instances delete test-instance
Elimina la función que has implementado:
Node.js
gcloud functions delete get
Python
gcloud functions delete spanner_read_data
Go
gcloud functions delete HelloSpanner
Java
gcloud functions delete java-spanner-function