Objetivos
Escribe, implementa y activa una función de Cloud Run de HTTP que tenga acceso a Spanner.
Costos
En este documento, se usan Spanner y Cloud Run Functions, que son componentes facturables de Google Cloud.
Para obtener información sobre el costo de usar Spanner, consulta Precios de Spanner.
Para obtener información sobre el costo del uso de Cloud Run Functions, incluidas las invocaciones gratuitas, consulta Precios de Cloud Run Functions.
Antes de comenzar
En este documento, se supone que tienes una instancia de Spanner llamada
test-instancey una base de datos llamadaexample-dbque 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 sobre el uso de la consola o los instructivos para comenzar a usar Go, Java, Node.js o Python.Habilita las APIs de Cloud Run Functions y Cloud Build.
Instala e inicializa gcloud CLI.
Si ya tienes instalada gcloud CLI, ejecuta el siguiente comando para actualizarla:
gcloud components updatePrepara tu entorno de desarrollo:
Prepara la aplicación
Clona el repositorio de la app de muestra en tu máquina local:
Node.js
git clone https://github.com/GoogleCloudPlatform/nodejs-docs-samples.git
De manera opcional, puedes descargar la muestra como un archivo ZIP y extraerla.
Python
git clone https://github.com/GoogleCloudPlatform/python-docs-samples.git
De manera opcional, puedes descargar la muestra como un archivo ZIP y extraerla.
Go
git clone https://github.com/GoogleCloudPlatform/golang-samples.git
De manera opcional, puedes descargar la muestra como un archivo ZIP y extraerla.
Java
git clone https://github.com/GoogleCloudPlatform/java-docs-samples.git
De manera opcional, puedes descargar la muestra como un archivo ZIP y extraerla.
Cambia al directorio que contiene el código de muestra 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/
Ve el código de muestra:
Node.js
Python
Go
Java
La función envía una consulta en SQL para recuperar todos los datos de
Albumsde tu base de datos. La función se ejecuta cuando haces una solicitud HTTP al extremo de la función.
Implementa la función
Ejecuta el siguiente comando en el directorio spanner para implementar la función con un activador HTTP:
Node.js
gcloud functions deploy get \ --runtime nodejs22 --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
la función.
Python
gcloud functions deploy spanner_read_data \ --runtime python312 --trigger-http
Usa la marca --runtime
para especificar el ID del entorno de ejecución de una
versión compatible de Python para ejecutar
la función.
Go
gcloud functions deploy HelloSpanner \ --runtime go121 --trigger-http
Usa la marca --runtime
para especificar el ID del entorno de ejecución de una
versión compatible de Go para ejecutar
la 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 del entorno de ejecución de una
versión compatible de Java para ejecutar
la función.
La implementación de la función puede tardar hasta dos minutos.
Ten en cuenta el valor de url que se muestra cuando tu función termina de implementarse. Lo usarás
cuando actives la función.
Puedes ver las funciones implementadas en la página de Cloud Run Functions en la consola deGoogle Cloud . También puedes crear y editar funciones en esa página, en la que, además, puedes obtener detalles y diagnósticos de tus funciones.
Activa la función
Haz 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"
En el ejemplo anterior, REGION y PROJECT_ID coinciden con los valores que son visibles en la terminal cuando la función se termina de implementar. Deberías ver un resultado que muestre el producto de la
consulta en SQL, si es que trabajaste con un instructivo de
introducción y completaste 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 los resultados de tu consulta en SQL.
Realiza una limpieza
Para evitar incurrir en cargos adicionales en tu cuenta de Google Cloud por los recursos de Spanner y Cloud Run Functions utilizados en este documento, haz lo siguiente:
Borra la instancia:
gcloud spanner instances delete test-instanceBorra la función que implementaste:
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