Objetivos
Escribe, implementa y activa una Cloud Function de HTTP que acceda a Bigtable.
Costos
En este tema, se usan Bigtable y Cloud Functions, que son componentes facturables de Google Cloud.
Para obtener información sobre el costo del uso de Bigtable, consulta Precios de Bigtable.
Para obtener información sobre el costo del uso de Cloud Functions, incluidas las invocaciones gratuitas, consulta Precios de Cloud Functions.
Antes de comenzar
En este tema, se supone que tienes una instancia de Bigtable llamada
test-instance
y una tabla llamadatest-table
. Puedes crear estos recursos si sigues los pasos en Crea una tabla de prueba. Asegúrate de borrar los recursos cuando termines para evitar incurrir en costos innecesarios.Habilita la API de Cloud Functions.
Instala e inicializa la CLI de gcloud.
Si ya tienes instalada la CLI de gcloud, ejecuta el siguiente comando para actualizarla:
gcloud components update
Prepara 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.
Cambia al directorio que contiene el código de muestra de Cloud Functions para acceder a Bigtable:
Node.js
cd nodejs-docs-samples/functions/bigtable/
Python
cd python-docs-samples/functions/bigtable/
Go
cd golang-samples/functions/bigtable/
Observa el código de muestra:
Node.js
Python
Go
La función envía una solicitud de lectura a la tabla para recuperar todos los datos de
stats_summary
de las filas con un prefijo de clave de fila dephone
. 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 bigtable
para implementar la función con un activador HTTP:
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 la función.
Python
gcloud functions deploy bigtable_read_data \ --runtime python312 --trigger-http
Usa la marca --runtime
para especificar el ID de entorno de ejecución de una versión de Python compatible para ejecutar la función.
Go
gcloud functions deploy BigtableRead \ --runtime go121 --trigger-http
Usa la marca --runtime
para especificar el ID de entorno de ejecución de una versión de Go compatible con el fin de ejecutar tu función.
La implementación de la función puede tomar hasta dos minutos.
Cuando la función termina de implementarse, se muestra el valor url
. Usarás ese valor cuando actives la función.
Puedes ver las funciones implementadas en la página de Cloud Functions en la consola de Google 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" -H "instance_id: test-instance" -H "table_id: test-table"
Python
curl "https://REGION-PROJECT_ID.cloudfunctions.net/bigtable_read_data" -H "instance_id: test-instance" -H "table_id: test-table"
Go
curl "https://REGION-PROJECT_ID.cloudfunctions.net/BigtableRead" -H "instance_id: test-instance" -H "table_id: test-table"
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 los resultados de la solicitud de lectura.
También puedes visitar la URL de la función en tu navegador para ver los resultados de la solicitud de lectura.
Limpia
Para evitar que se apliquen cargos adicionales a la cuenta de Google Cloud por los recursos de Bigtable y Cloud Functions usados en este tema, sigue estos pasos:
Borra la instancia:
gcloud bigtable instances delete test-instance
Borra la función que implementaste:
Node.js
gcloud functions delete get
Python
gcloud functions delete bigtable_read_data
Go
gcloud functions delete BigtableRead
Próximos pasos
- Obtén más información sobre cómo escribir funciones de Cloud Functions.
- Obtén más información acerca de cómo implementar funciones de Cloud Functions.
- Obtén más información acerca de cómo llamar a funciones de Cloud Functions.
- Obtén más información sobre cómo supervisar funciones de Cloud Functions.