Implementa una Cloud Run Function
En esta guía, se muestra cómo implementar una Cloud Run Function a partir del código fuente.
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 funciones de Cloud Run deben tener el rol de IAM Desarrollador de Cloud Functions o un rol que incluya los mismos permisos. Consulta también Configuración adicional para la implementación.
-
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.
Usa el comando
gcloud functions deploy
para 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 un máximo de 62 letras, números, guiones o guiones bajos, y debe terminar con una letra o un número. El nombre del servicio de Cloud Run que se crea para tu función reemplazará los guiones bajos por guiones y las letras mayúsculas se convertirán en minúsculas. Por ejemplo, aFunction_1
se le asignará el nombrefunction-1
en Cloud Run.La marca
--gen2
(opcional) especifica que deseas implementar en Cloud Run Functions.La marca
--region
especifica 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
--runtime
especifica 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
--source
especifica la ubicación del código fuente de tu función. Consulta las siguientes secciones para obtener más detalles:La marca
--entry-point
especifica 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_FLAGS
en el ejemplo anterior), según el activador que deseas usar:Marcas del activador Descripción del activador --trigger-http
Activa la función con una solicitud HTTP(S). Para obtener más información, consulta Activadores HTTP. --trigger-topic=YOUR_PUBSUB_TOPIC
Activa 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_BUCKET
Activa 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-filters=EVENTARC_EVENT_FILTERS
Activa la función con Eventarc cuando se produce un evento que coincide con los filtros especificados. Consulta Activadores de Eventarc para obtener más información y opciones adicionales. 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.
Cuando la implementación finaliza correctamente, las funciones aparecen con una marca de verificación verde en la página de descripción general de Cloud Run en la consola de Google Cloud.
La implementación inicial de una función puede tardar varios minutos, mientras se aprovisiona la infraestructura subyacente. Volver a implementar una función existente es más rápido, y el tráfico entrante se migra automáticamente a la versión más reciente.
Implementa desde tu máquina local
En esta sección, se describe cómo 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-bucket
para 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
.
Implementa desde Cloud Storage
En esta sección, se describe cómo 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 las Cloud Run Functions lean desde un bucket de Cloud Storage, el
agente de servicio de Cloud Run Functions
debe tener el permiso storage.objects.get
. Si el bucket de origen está en
el mismo proyecto que tu función, el permiso se otorga automáticamente. Si el bucket está en un proyecto diferente, debes otorgar el permiso al agente de servicio de forma manual.
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:
-
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.
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:
- La función usa
nodejs22
. - El código fuente se encuentra en el directorio de trabajo actual (
.
). - El punto de entrada en el código se llama
myHttpFunction
.
Para implementar la función con el nombre my-http-function
en la región us-central1
, usa el siguiente comando:
gcloud functions deploy my-http-function \
--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:
- La función controla los eventos de publicación de mensajes de Pub/Sub.
- La función usa
python312
. - 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
.
Para implementar la función 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 \
--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:
- La función controla los eventos de eliminación de objetos de Cloud Storage.
- La función usa
java21
. - El código fuente se encuentra en la ruta
./functions/storage-function
de forma local. - El punto de entrada en el código se llama
myproject.StorageFunction
.
Para implementar la función 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 \
--gen2 \
--region=asia-northeast1 \
--runtime=java21 \
--source=./functions/storage-function \
--entry-point=myproject.StorageFunction \
--trigger-event-filters="type=google.cloud.storage.object.v1.deleted" \
--trigger-event-filters="bucket=my-bucket"
Próximos pasos
- 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.
- Consulta los instructivos a fin de ver ejemplos de casos de uso específicos para Cloud Run Functions.