Desplegar una función
En esta guía se muestra cómo desplegar una función a partir de código fuente mediante el comando gcloud functions
. Para saber cómo desplegar una función con el comando gcloud run
, consulta Desplegar una función de Cloud Run con la CLI de gcloud.
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
Para obtener una introducción sobre los tipos de funciones que puedes desplegar, consulta Escribir funciones de Cloud Run.
Los usuarios que implementen funciones deben tener el rol de gestión de identidades y accesos Desarrollador de Cloud Functions o un rol que incluya los mismos permisos. Consulta también la secció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 desplegar una función:gcloud functions deploy YOUR_FUNCTION_NAME \ --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. El nombre del servicio de Cloud Run que se crea para tu función sustituirá 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
--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 Cloud Run.La marca
--runtime
especifica qué tiempo de ejecución de lenguaje usa tu función. Consulta la sección Compatibilidad con el tiempo de ejecución para ver una lista de los IDs de tiempo de ejecución admitidos.La marca
--source
especifica la ubicación del código fuente de tu funció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. Para obtener más información, consulta Punto de entrada de la funció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). --trigger-topic=YOUR_PUBSUB_TOPIC
Activa la función cuando se publique un mensaje en el tema de Pub/Sub especificado. --trigger-bucket=YOUR_STORAGE_BUCKET
Activa la función cuando se cree o se sobrescriba un objeto en el segmento de Cloud Storage especificado. --trigger-event-filters=EVENTARC_EVENT_FILTERS
Activa la función con Eventarc cuando se produzca un evento que coincida con los filtros especificados. Para obtener una referencia completa sobre el comando de implementación y sus marcas, consulta la documentación de
gcloud functions deploy
.Para obtener más información sobre las marcas de configuración de
gcloud functions deploy
, consulta la documentación de Cloud Run.
- Puedes usar la Google Cloud consola
gcloud run deploy
, así como gcloud CLI. - Los pasos para especificar los activadores son ligeramente diferentes. Para obtener más información, consulta Activadores y reintentos y Ejemplos de activadores de funciones.
- Cloud Run ofrece una gama más amplia de opciones de configuración:
Cuando el despliegue finalice correctamente, las funciones aparecerán con una marca de verificación verde en la página de resumen de Cloud Run de la Google Cloud consola.
El despliegue inicial de una función puede tardar varios minutos mientras se aprovisiona la infraestructura subyacente. Volver a implementar una función ya creada es más rápido y el tráfico entrante se migra automáticamente a la versión más reciente.
URL del endpoint HTTP
Cuando creas una función con el comando gcloud functions
o la API Cloud Functions v2, la función tiene de forma predeterminada una URL de endpoint HTTP cloudfunctions.net
. Si coges esta función y la implementas en Cloud Run, tu función también recibirá una URL de punto final HTTP run.app
. Sin embargo, las funciones creadas en Cloud Run no tendrán una URL de punto de conexión HTTP cloudfunctions.net
. Las URLs cloudfunctions.net
y run.app
de una función se comportan exactamente igual. Son intercambiables y se usan para activar tu función.
Ejemplos de Terraform
Para ver ejemplos de cómo desplegar funciones con Terraform, consulta el ejemplo de HTTP de Terraform y el ejemplo de Pub/Sub de Terraform.
Configurar redes
Las funciones creadas con la API Cloud Functions v2 (por ejemplo, con gcloud functions
, la API REST o Terraform) se pueden gestionar con la API Admin de Cloud Run, así como con la API Cloud Functions v2.
Para obtener más información sobre cómo gestionar redes para funciones, incluido cómo enrutar el tráfico de redes de VPC, consulta las prácticas recomendadas para las redes de Cloud Run.
Consulta cómo desplegar funciones de Cloud Run en Cloud Run
Desplegar funciones en Cloud Run es similar a los pasos descritos en este documento, pero con algunas ventajas adicionales: