Desplegar una función de Cloud Run (1.ª gen.)
En esta guía se explica cómo desplegar una función de Cloud Run de 1.ª gen. antigua a partir del código fuente. Si vas a crear una función, consulta la guía de inicio rápido de la consola de Cloud Run.
El proceso de despliegue toma el código fuente y los ajustes de configuración, y crea una imagen ejecutable que Cloud Run gestiona automáticamente para gestionar las solicitudes a tu función.
Conceptos básicos sobre las implementaciones
Los usuarios que implementen funciones de Cloud Run deben tener el rol de gestión de identidades y accesos Desarrollador de funciones de Cloud Run o un rol que incluya los mismos permisos. Consulta también la sección Configuración adicional para la implementación.
Para desplegar una función con la CLI de gcloud, sigue estos pasos:
Usa el comando
gcloud functions deploy
para desplegar 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 el nombre de la función desplegada. El nombre de la función debe empezar por 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.La marca
--gen2
especifica que quieres desplegar en Cloud Run Functions. A partir de septiembre del 2024, esta opción será la predeterminada. Para implementarlo en la 1.ª gen., usa--no-gen2
.La marca
--region
especifica la región en la que se desplegará la función. Consulta la sección Ubicaciones para ver la lista de regiones admitidas por las funciones de Cloud Run.La marca
--runtime
especifica qué tiempo de ejecución de lenguaje usa tu función. Cloud Run Functions admite varios tiempos de ejecución. Consulta Tiempos 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 información:La marca
--entry-point
especifica el punto de entrada de la función en el código fuente. Este es el código que se ejecutará cuando se ejecute la función. El valor de esta marca debe ser un nombre de función o un nombre de clase completo que exista en el 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 necesitan marcas adicionales (representadas como
TRIGGER_FLAGS
arriba), en función del activador que quieras usar:Marcas de activadores Descripción del activador --trigger-http
Activa la función con una solicitud HTTP(S). Consulta más información sobre los desencadenadores HTTP. --trigger-topic=YOUR_PUBSUB_TOPIC
Activa la función cuando se publique un mensaje en el tema de Pub/Sub especificado. Para obtener más información, consulta la sección sobre activadores de Pub/Sub. --trigger-bucket=YOUR_STORAGE_BUCKET
Activa la función cuando se cree o se sobrescriba un objeto en el segmento de Cloud Storage especificado. Consulta más información sobre los activadores de Cloud Storage. --trigger-event=EVENT_TYPE
[--trigger-resource=RESOURCE]Activa la función cuando se produzca el evento especificado. Es obligatorio especificar un recurso para algunos tipos de eventos. Para obtener más información, consulta Activadores compatibles con Cloud Functions (1.ª gen.) . Cuando implementas una función, puedes especificar opciones adicionales de configuración, redes y seguridad.
Para obtener una referencia completa sobre el 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.
Desplegar desde tu máquina local
En esta sección se describe cómo usar la CLI de gcloud para desplegar una función a partir del 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
.En el caso de la marca
--source
, especifica una ruta del sistema de archivos local al directorio raíz del código fuente de la función. Consulta Estructura del directorio de origen. Si se omite esta marca, se usará el directorio de trabajo actual.También puedes usar la marca
--stage-bucket
para especificar un segmento de Cloud Storage en el que subir el código fuente como parte del despliegue.Durante la subida del código fuente, Cloud Run Functions excluye los 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
.En el caso de la marca
--source
, especifica una ruta de Cloud Storage que empiece porgs://
. El objeto de la ruta debe ser un archivo ZIP que contenga el código fuente de la función. Los archivos de origen de la función deben estar en la raíz del archivo ZIP. Consulta la sección Estructura del directorio de origen.- La función usa Node.js 20.
- El código fuente se encuentra en el directorio de trabajo actual (
.
). - El punto de entrada del código se llama
myHttpFunction
. - La función gestiona 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 del código se llama
pubsub_handler
. - La función gestiona los eventos de eliminación de objetos de Cloud Storage.
- La función usa Java 17.
- El código fuente se encuentra de forma local en la ruta
./functions/storage-function
. - El punto de entrada del código se llama
myproject.StorageFunction
. - Consulta los detalles sobre los activadores de Cloud Run Functions.
- Consulta información sobre el proceso de compilación de funciones de Cloud Run.
- Consulta otras opciones de configuración de Cloud Run Functions.
- Consulta información sobre cómo proteger funciones de Cloud Run.
Desplegar desde Cloud Storage
En esta sección se describe cómo usar la CLI de gcloud para desplegar una función a partir del código fuente ubicado en un segmento de Cloud Storage. El código fuente debe empaquetarse como un archivo ZIP.
Para que las funciones de Cloud Run puedan leer datos de un segmento de Cloud Storage, debes conceder el permiso storage.objects.get
a la cuenta que realice el despliegue.
Consulta Usar permisos de gestión de identidades y accesos en la documentación de Cloud Storage para obtener información sobre cómo controlar el acceso a los segmentos.
Con este permiso, ahora puedes desplegar una función desde Cloud Storage:
Ejemplos de línea de comandos
En esta sección se muestran comandos de implementación para algunos ejemplos de situaciones de implementación.
Para obtener información sobre los diferentes activadores compatibles con Cloud Run Functions, consulta Activadores de Cloud Run Functions.
Función HTTP desde código fuente local
Supongamos que tiene una función HTTP como la siguiente:
Para desplegar 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=nodejs20 \
--source=. \
--entry-point=myHttpFunction \
--trigger-http
Función de Pub/Sub a partir del código fuente de Cloud Storage
Supongamos que tiene una función basada en eventos como la siguiente:
Para desplegar 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 los mensajes del 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 a partir de código fuente local
Supongamos que tiene una función basada en eventos como la siguiente:
Para desplegar la función en Cloud Run Functions con el nombre my-storage-function
en la región asia-northeast1
y que la función se active con eventos del segmento 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