Implementa una función de Cloud Run (1ª gen.)
En esta guía, se muestra cómo implementar una función heredada de Cloud Run de 1ª gen. a partir del código fuente. Si vas a crear una función nueva, consulta la Guía de inicio rápido de la consola en Cloud Run.
El proceso de implementación toma tu código fuente y tu configuración y compila una imagen ejecutable que Cloud Run Functions administra de forma automática para controlar las solicitudes a tu función.
Conceptos básicos de la implementación
Los usuarios que implementan Cloud Run Functions deben tener el rol de IAM Desarrollador de funciones de Cloud Run o un rol que incluya los mismos permisos. Consulta también Configuración adicional para la implementación.
Implementa una función con gcloud CLI de la siguiente manera:
Usa el comando
gcloud functions deploypara implementar una función:gcloud functions deploy YOUR_FUNCTION_NAME \ [--gen2] \ --region=YOUR_REGION \ --runtime=YOUR_RUNTIME \ --source=YOUR_SOURCE_LOCATION \ --entry-point=YOUR_CODE_ENTRYPOINT \ TRIGGER_FLAGS
El primer argumento,
YOUR_FUNCTION_NAME, es un nombre para tu función implementada. El nombre de la función debe comenzar con una letra, seguida de hasta 62 letras, números, guiones o guiones bajos, y debe terminar con una letra o un númeroLa marca
--gen2especifica que deseas implementar en Cloud Run Functions. A partir de septiembre de 2024, esto se convertirá en la opción predeterminada. Para implementar en la 1ª gen., usa--no-gen2.La marca
--regionespecifica la región en la que se implementará la función. Consulta Ubicaciones para obtener una lista de regiones compatibles con Cloud Run Functions.La marca
--runtimeespecifica el entorno de ejecución de lenguaje que usa tu función. Cloud Run Functions admite varios entornos de ejecución. Consulta Entornos de ejecución para obtener más información.La marca
--sourceespecifica la ubicación del código fuente de tu función. Consulta las siguientes secciones para obtener más detalles:La marca
--entry-pointespecifica el punto de entrada a tu función en tu código fuente. Este es el código que se ejecutará cuando se ejecute tu función. El valor de esta marca debe ser un nombre de función o un nombre de clase completamente calificado que exista en tu código fuente. Consulta Punto de entrada de la función para obtener más información.Para especificar el activador de tu función, se requieren marcas adicionales (representadas como
TRIGGER_FLAGSen el ejemplo anterior), según el activador que deseas usar:Marcas del activador Descripción del activador --trigger-httpActiva la función con una solicitud HTTP(S). Para obtener más información, consulta Activadores HTTP. --trigger-topic=YOUR_PUBSUB_TOPICActiva la función cuando se publica un mensaje en el tema de Pub/Sub especificado. Consulta Activadores de Pub/Sub para obtener más información. --trigger-bucket=YOUR_STORAGE_BUCKETActiva la función cuando se crea o reemplaza un objeto en el bucket de Cloud Storage especificado. Para obtener más información, consulta Activadores de Cloud Storage. --trigger-event=EVENT_TYPE
[--trigger-resource=RESOURCE]Activa la función cuando se produce el evento especificado. Especificar un recurso es obligatorio para algunos tipos de eventos. Para obtener más información, consulta Activadores admitidos en Cloud Run Functions (1ª gen.). De manera opcional, puedes especificar opciones adicionales de configuración, herramientas de redes y seguridad cuando implementes una función.
Para obtener una referencia completa del comando de implementación y sus marcas, consulta la documentación de
gcloud functions deploy.Para ver algunos ejemplos de comandos de implementación, consulta Ejemplos de línea de comandos.
Implementa desde tu máquina local
En esta sección, se describe cómo usar gcloud CLI para implementar una función desde el código fuente ubicado en tu máquina local.
-
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
Sigue las instrucciones de implementación anteriores con el comando
gcloud functions deploy.Para la marca
--source, especifica una ruta de sistema de archivos local al directorio raíz del código fuente de la función. Consulta Estructura del directorio fuente. Si se omite esta marca, se usa el directorio de trabajo actual.De forma opcional, también puedes usar la marca
--stage-bucketpara especificar un bucket de Cloud Storage a fin de subir el código fuente como parte de la implementación.Durante la carga de tu código fuente, Cloud Run Functions excluye archivos innecesarios mediante el archivo
.gcloudignore.-
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
Sigue las instrucciones de implementación anteriores con el comando
gcloud functions deploy.Para la marca
--source, especifica una ruta de Cloud Storage que comience congs://. El objeto en la ruta de acceso debe ser un archivo ZIP que contenga el código fuente de la función. Los archivos fuente de tu función deben estar ubicados en la raíz del archivo ZIP; consulta Estructura del directorio del código fuente.- La función usa Node.js 22.
- El código fuente se encuentra en el directorio de trabajo actual (
.). - El punto de entrada en el código se llama
myHttpFunction. - La función controla los eventos de publicación de mensajes de Pub/Sub.
- La función usa Python 3.12.
- El código fuente se encuentra en Cloud Storage, en la ruta
gs://my-bucket/my_function_source.zip. - El punto de entrada en el código se llama
pubsub_handler. - La función controla los eventos de eliminación de objetos de Cloud Storage.
- La función usa Java 17.
- El código fuente se encuentra en la ruta
./functions/storage-functionde forma local. - El punto de entrada en el código se llama
myproject.StorageFunction. - Consulta los detalles sobre los activadores de Cloud Run Functions.
- Obtén información sobre el proceso de compilación de Cloud Run Functions.
- Explora las opciones de configuración adicionales de Cloud Run Functions.
- Obtén información para proteger Cloud Run Functions.
Implementa desde Cloud Storage
En esta sección, se describe cómo usar gcloud CLI para implementar una función desde un código fuente ubicado en un bucket de Cloud Storage. El código fuente debe empaquetarse como un archivo ZIP.
Para que Cloud Run Functions lean desde un bucket de Cloud Storage, debes otorgar el
permiso storage.objects.get a la cuenta que realiza la implementación.
Consulta Usa permisos de IAM en la documentación de Cloud Storage para obtener información sobre cómo controlar el acceso a los buckets.
Con este permiso, puedes implementar una función desde Cloud Storage:
Ejemplos de la línea de comandos
En esta sección, se muestran los comandos de implementación para algunas situaciones de implementación de ejemplo.
Para obtener más detalles sobre los diferentes activadores compatibles con Cloud Run Functions, consulta Activadores de Cloud Run Functions.
Función HTTP del código fuente local
Supongamos que tienes una función HTTP como la siguiente:
Para implementar la función en Cloud Run Functions con el nombre my-http-function en la región us-central1, usa el siguiente comando:
gcloud functions deploy my-http-function \
--no-gen2 \
--region=us-central1 \
--runtime=nodejs22 \
--source=. \
--entry-point=myHttpFunction \
--trigger-http
Función de Pub/Sub del código fuente en Cloud Storage
Supongamos que tienes una función controlada por eventos como la siguiente:
Para implementar la función en Cloud Run Functions con el nombre my-pubsub-function en la región europe-west1 y hacer que la función se active con mensajes en el tema de Pub/Sub my-topic, usa el siguiente comando:
gcloud functions deploy my-pubsub-function \
--no-gen2 \
--region=europe-west1 \
--runtime=python312 \
--source=gs://my-bucket/my_function_source.zip \
--entry-point=pubsub_handler \
--trigger-topic=my-topic
Función de Cloud Storage desde el código fuente local
Supongamos que tienes una función controlada por eventos como la siguiente:
Para implementar la función en Cloud Run Functions con el nombre my-storage-function en la región asia-northeast1 y hacer que la función se active con eventos en el bucket de Cloud Storage my-bucket, usa el siguiente comando:
gcloud functions deploy my-storage-function \
--no-gen2 \
--region=asia-northeast1 \
--runtime=java17 \
--source=./functions/storage-function \
--entry-point=myproject.StorageFunction \
--trigger-resource=gs://my-bucket \
--trigger-event=google.storage.object.delete