En este tutorial se muestra cómo escribir una función HTTP de Cloud Run que devuelva resultados de Spanner.
Objetivos
Escribe, despliega y activa una función HTTP que acceda a Spanner.
Costes
En este documento se usan 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, incluidas las invocaciones gratuitas, consulta los precios de Cloud Run.
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 para usar la consola o los tutoriales de introducción de Node.js o Python.Habilita las APIs Cloud Run 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:
Node.js
Consulta la guía de configuración de Node.js.
Python
Consulta la guía de configuración de Python.
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 la muestra como un archivo ZIP y extraerla.
Python
git clone https://github.com/GoogleCloudPlatform/python-docs-samples.git
También puedes descargar la muestra como un archivo ZIP y extraerla.
Cambia al directorio que contiene el código de ejemplo de las funciones de Cloud Run para acceder a Spanner:
Node.js
cd nodejs-docs-samples/functions/spanner
Python
cd python-docs-samples/functions/spanner
Echa un vistazo al código de ejemplo:
Node.js
Python
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 run deploy nodejs-spanner-function \
--source . \
--region REGION \
--function spannerQuickstart \
--base-image RUNTIME_ID \
--log-http
Python
gcloud run deploy python-spanner-function \
--source . \
--region REGION \
--function spanner_read_data \
--base-image RUNTIME_ID \
--log-http
Sustituye:
REGION por el nombre de la Google Cloud región en la que quieras desplegar la función (por ejemplo,
us-west1
).RUNTIME_ID con el ID de tiempo de ejecución adecuado (por ejemplo,
nodejs22
). Consulta Entornos de ejecución de lenguajes e imágenes base admitidos.
El despliegue de la función puede tardar hasta dos minutos.
Anota el valor de url
que se devuelve cuando finaliza la implementación de la función. La usarás cuando actives la función.
Puedes ver las funciones implementadas en la página 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:
curl URL
Sustituye URL por el valor de la URL que se devuelve cuando finaliza la implementación de la 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 a tu Google Cloud cuenta por los recursos de funciones de Spanner y Cloud Run utilizados en este documento, haz lo siguiente:
Elimina la instancia:
gcloud CLI instances delete test-instance
Elimina el servicio de Cloud Run que has desplegado en este tutorial:
Node.js
gcloud run services delete nodejs-spanner-function
Python
gcloud run services delete python-spanner-function
Siguientes pasos
- Más información sobre cómo escribir funciones de Cloud Run
- Consulta más información sobre cómo desplegar funciones de Cloud Run.
- Consulta más información sobre cómo activar funciones de Cloud Run.