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 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.
Selecciona una pestaña para obtener instrucciones para implementar una gcloud CLI o la consola de Google Cloud.
gcloud
-
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
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. Requiere que se especifique la marca --gen2
. 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.
Console
Ve a la página Descripción general de Cloud Run Functions en la consola de Google Cloud.
Ve a las funciones de Cloud Run
Asegúrate de que el proyecto de Google Cloud en el que deseas implementar Cloud Run Functions esté seleccionado.
Haz clic en Crear función.
En el campo Entorno, selecciona Cloud Run Functions.
En el campo Nombre de la función, ingresa un nombre para tu función. 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, a
Function_1
se le asignará el nombrefunction-1
en Cloud Run.En el campo Región, selecciona una región para implementar tu función.
En la sección Activador, sigue los pasos según el entorno seleccionado:
- En el campo Tipo de activador, selecciona el activador que deseas usar:
- Para un activador HTTPS, selecciona la opción adecuada según si deseas permitir invocaciones no autenticadas de tu función. Cada función de Cloud Run Functions tiene un extremo para activadores HTTP(S). De forma predeterminada, se requiere autenticación. Consulta Autentica para la invocación a fin de obtener más información.
- Para una función controlada por eventos, elige una de las siguientes opciones: Cloud Pub/Sub, Cloud Storage, Cloud Firestore u Otro activador. Consulta Activadores de Eventarc para obtener más información.
- Una vez que hayas completado los campos obligatorios, haz clic en Guardar activador.
- En el campo Tipo de activador, selecciona el activador que deseas usar:
De forma opcional, expande la sección Entorno de ejecución, compilación… al final de la página para obtener opciones adicionales de configuración y seguridad.
Haz clic en Siguiente para avanzar al paso Código.
En el campo Entorno de ejecución, selecciona 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.
En el campo Punto de entrada, ingresa el punto de entrada a la 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.
En el campo Código fuente, selecciona la opción adecuada para el modo en que proporcionarás el código fuente de la función. Consulta las siguientes secciones para obtener más detalles.
Haz clic en Implementar.
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 Functions 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.
gcloud
-
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
.
Console
- Sigue las instrucciones de implementación anteriores con la consola de Google Cloud hasta llegar al campo Código fuente.
- En el campo Código fuente, selecciona Carga de ZIP.
- En el campo Bucket de destino en etapa intermedia, haz clic en Explorar para seleccionar un bucket de Cloud Storage para subir tu código fuente como parte de la implementación.
- En el campo Archivo ZIP, haz clic en Explorar para seleccionar un archivo ZIP para subirlo desde tu sistema de archivos local. 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.
- Haz clic en Implementar.
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:
gcloud
-
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.
Console
- Sigue las instrucciones de implementación anteriores con la consola de Google Cloud hasta llegar al campo Código fuente.
- En el campo Código fuente, selecciona ZIP de Cloud Storage.
- En el campo Ubicación de Cloud Storage, haz clic en Explorar para seleccionar un archivo ZIP de Cloud Storage. 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.
- Haz clic en Implementar.
Implementa desde el editor directo de la consola de Google Console
En esta sección, se describe cómo escribir e implementar una función directamente desde la consola de Google Cloud con el editor directo proporcionado.
- Sigue las instrucciones de implementación anteriores con la consola de Google Cloud hasta llegar al campo Código fuente.
- En el campo Código fuente, selecciona Editor directo.
- Usa el editor proporcionado para crear o editar archivos fuente según sea necesario. Consulta Estructura del directorio del código fuente.
- El panel izquierdo muestra los archivos fuente y te permite crear, borrar y cambiar el nombre de los archivos.
- El panel derecho es un editor de texto que te permite editar el contenido de los archivos.
- Haz clic en Implementar.
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.