Implementar desde tu máquina local

En esta página, se muestra cómo implementar una función de Cloud Functions desde tu máquina local con la herramienta de línea de comandos de gcloud. Cuando usas la herramienta de línea de comandos, Cloud Functions agrupa y sube los contenidos del directorio de tu función a un depósito de Cloud Storage por ti y excluye automáticamente los archivos que no son necesarios a través del archivo .gcloudignore.

De manera alternativa, puedes usar la interfaz de Cloud Functions en GCP Console para subir el archivo ZIP que crees.

Para ver un ejemplo completo ejecutable que incluya código de muestra descargable, consulta la guía de inicio rápido Usa la herramienta de línea de comandos de gcloud.

Implementa con la herramienta de gcloud

Con la herramienta de línea de comandos de gcloud, implementa tu función desde el directorio que contiene el código de la función con el comando gcloud functions deploy. El comando tiene el siguiente formato:

gcloud functions deploy NAME --runtime RUNTIME TRIGGER [FLAGS...]
Argumento Descripción
NAME El nombre de la función de Cloud Functions que estás implementando. Este nombre solo puede contener letras, números, guiones bajos y guiones. A menos que especifiques la marca --entry-point, tu código debe contener una función con el mismo nombre.
--runtime RUNTIME El nombre del entorno de ejecución que usas. Para obtener una lista completa, consulta la referencia de gcloud.
TRIGGER El tipo de activador para esta función (consulta Eventos y activadores). Las reglas para especificar los activadores cuando se implementa una función son las siguientes:
  • Si no especificas un activador cuando implementes una actualización en una función existente, esta conservará el activador actual.
  • Cuando implementes una función nueva, debes especificar uno de los siguientes --trigger-http, --trigger-topic o --trigger-bucket, o especificar ambos --trigger-event Y --trigger-resource. Usas la marca --trigger-http para implementar funciones de HTTP. Usas las demás marcas para implementar funciones en segundo plano.
FLAGS... (Opcional) Marcas adicionales que puedes especificar durante la implementación, como --stage-bucket o --entry-point. Para ver una referencia completa, consulta la documentación de gcloud functions deploy.

Ejemplo de función de HTTP

Hay dos tipos de funciones de Cloud Functions: funciones de HTTP y funciones en segundo plano. Para ver un ejemplo que muestre cómo implementar una función en segundo plano, consulta el ejemplo de función en segundo plano. En el siguiente ejemplo, se implementa una función de HTTP escrita en Python y se le asigna un activador mediante la marca --trigger-http:

gcloud functions deploy helloworld --runtime python37 --trigger-http

Ve los argumentos de este comando:

Argumento Descripción
helloworld El nombre de la función de Cloud Functions que estás implementando, en este caso helloworld. La función de Cloud Functions implementada se registrará con el nombre helloworld y el archivo fuente deberá contener una función llamada helloworld.
--runtime python37 El entorno de ejecución para esta función, en este caso python37.
--trigger-http El tipo de activador para esta función, en este caso una solicitud HTTP (webhook).

En el siguiente ejemplo, se implementa la misma función, pero con un nombre diferente:

gcloud functions deploy hello --entry-point helloworld --runtime python37 --trigger-http

Ve los argumentos de este comando:

Argumento Descripción
hello El nombre de la función de Cloud Functions que estás implementando, en este caso hello. La función de Cloud Functions implementada se registrará con el nombre hello.
--entry-point helloworld La función de Cloud Functions implementada usará una función llamada helloworld en el archivo fuente.
--runtime python37 El entorno de ejecución para esta función, en este caso python37.
--trigger-http El tipo de activador para esta función, en este caso una solicitud HTTP (webhook).

La opción --entry-point resulta útil cuando las funciones de tu código fuente no cumplen con los requisitos de nombre de Cloud Functions.

Ejemplo de función en segundo plano

En los siguientes ejemplos, se implementa una función en segundo plano escrita en Node.js 8 que Cloud Storage activará:

gcloud functions deploy helloGCSGeneric --runtime nodejs8 --trigger-resource TRIGGER_BUCKET_NAME --trigger-event google.storage.object.finalize

Ve los argumentos de este comando:

Argumento Descripción
helloGCSGeneric El nombre de la función de Cloud Functions que estás implementando, en este caso helloGCSGeneric. La función de Cloud Functions implementada se registrará con el nombre helloGCSGeneric, y el archivo de origen debe contener una función llamada helloGCSGeneric.
--runtime nodejs8 El entorno de ejecución para esta función, en este caso nodejs8.
--trigger-resource El recurso activador de esta función. El recurso activador especifica el recurso para el cual se observa el evento activador. En este caso, el recurso es el nombre (TRIGGER_BUCKET_NAME) del depósito de Cloud Storage que activa la función.
--trigger-event El evento activador de esta función, que especifica qué acción debería activar la función. En este caso, el evento es google.storage.object.finalize.

Usar las marcas --trigger-resource MY_RESOURCE y --trigger-event MY_EVENT es la manera más explícita de especificar un activador para una función en segundo plano. Sin embargo, gcloud proporciona abreviaturas para Cloud Pub/Sub y Cloud Storage:

  • Cuando implementes funciones a las que se les asignaron activadores de Cloud Pub/Sub, puedes usar la marca --trigger-topic MY_TOPIC. Esta marca es una abreviatura de --trigger-resource MY_TOPIC --trigger-event google.pubsub.topic.publish.

  • Cuando implementes funciones a las que se les asignaron activadores de Cloud Storage, puedes usar la marca --trigger-bucket MY_STORAGE_BUCKET para activar la ejecución de la función cuando cambien los archivos en el depósito especificado.

Próximos pasos

¿Te ha resultado útil esta página? Enviar comentarios:

Enviar comentarios sobre...

Documentación de Cloud Functions