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.

  1. In the Google Cloud console, activate Cloud Shell.

    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.

  2. 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, a Function_1 se le asignará el nombre function-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.

  3. 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: