Implementa 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 utiliza la herramienta de línea de comandos, Google Cloud Functions empaqueta y sube los contenidos del directorio de tu función en un depósito de Cloud Storage para ti y excluye automáticamente los archivos innecesarios a través del archivo .gcloudignore.

De manera alternativa, puedes usar la interfaz de Cloud Functions en Cloud Console para subir un archivo ZIP creado por ti.

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 tu código de función con el comando gcloud functions deploy:

gcloud functions deploy NAME --runtime RUNTIME TRIGGER [FLAGS...]
.
Argumento Descripción
NAME El nombre de la función de Cloud Function que implementas. Este nombre solo puede contener letras, números, guiones bajos y guiones. A menos que especifiques el marcador --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. Ten en cuenta que debes incluir esta marca la primera vez que implementes una función, pero puedes omitirla en implementaciones posteriores.
TRIGGER El tipo de activador para esta función (consulta Eventos y activadores). Estas son las reglas para especificar los activadores cuando se implementa una función:
  • Si no especificas un activador cuando implementes una actualización en una función existente, esta conservará el activador actual.
  • Cuando implementas una nueva función, debes especificar uno de --trigger-http, --trigger-topic o --trigger-bucket, o bien especificar --trigger-event Y --trigger-resource. Usas el marcador --trigger-http para implementar funciones de HTTP. Usas los demás marcadores para implementar funciones en segundo plano.
FLAGS... Marcadores adicionales que puedes especificar durante la implementación, como --stage-bucket o --entry-point (opcional). Para obtener una referencia completa, consulta la documentación de gcloud functions deploy.

Cada entorno de ejecución tiene requisitos específicos de estructuración de archivos para que Cloud Functions pueda encontrar la definición de tu función.

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 con el marcador --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á implementando, en este caso helloworld. La función de Cloud Functions implementada se registrará con el nombre helloworld, y el archivo fuente debe 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 de 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á 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 de HTTP (webhook).

La opción --entry-point es útil cuando las funciones en tu código fuente no cumplen con los requisitos de nomenclatura para las funciones 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á implementando, en este caso helloGCSGeneric. La función de Cloud Functions implementada se registrará con el nombre helloGCSGeneric, y el archivo fuente 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 para 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 para 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 forma más explícita de especificar un activador para una función en segundo plano. Sin embargo, gcloud proporciona abreviaturas para Pub/Sub y Cloud Storage:

  • Cuando implementas funciones que tienen asignados activadores Pub/Sub, puedes usar la marca --trigger-topic MY_TOPIC. Este 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.

Pasos siguientes

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

Enviar comentarios sobre...

Documentación de Cloud Functions