Compara funciones de Cloud Run

En esta guía, se comparan las opciones de Google Cloud más recientes y originales para implementar funciones. En esta página, se ayuda a quienes crearon funciones con la API de Cloud Functions y están realizando la transición a la API de Cloud Run Admin. En esta página, se describen las principales diferencias en varias áreas, como conceptos, configuración, implementación, activadores y reintentos.

Comparación

Existen dos versiones de Cloud Run Functions:

  • Cloud Run Functions es la versión más reciente de las funciones, implementadas como un servicio en Cloud Run. Se pueden crear de una de las siguientes maneras:

    • API de Cloud Run Admin (recomendada): Las funciones creadas con esta API (por ejemplo, con la consola deGoogle Cloud , gcloud run, la API de REST o Terraform) se pueden administrar exclusivamente con la API de Cloud Run Admin.
    • API de Cloud Functions v2: Las funciones creadas con esta API (por ejemplo, con gcloud functions, la API de REST o Terraform) se pueden administrar con la API de Cloud Run Admin y la API de Cloud Functions v2. Cuando usas esta API, especificas el activador cuando implementas la función. Aprende a desvincular una función de la API v2 para que se pueda administrar exclusivamente con la API de Cloud Run Admin.
  • Cloud Run Functions (1ª gen.), antes conocido como Cloud Functions (1ª gen.), es la versión original de las funciones con activadores de eventos, tiempos de ejecución y configurabilidad limitados. Obtén información para actualizar tus funciones de 1ª gen. a Cloud Run.

Si implementas funciones directamente en Cloud Run, estas se compilan automáticamente como contenedores y se implementan como un servicio de Cloud Run.

Conceptos

En la siguiente tabla, se resumen las diferencias conceptuales de las funciones.

Cloud Run Functions Cloud Run Functions (1ª gen.)
Nombre anterior del producto Cloud Functions (2nd gen) Cloud Functions (1st gen)
Modelo de recursos Una función es un servicio de Cloud Run que se implementa desde el código fuente. Se implementa una función desde el código fuente
Tipos de terminología de funciones
  • Funciones de HTTP
  • Las funciones de CloudEvents, también conocidas como funciones controladas por eventos, son compatibles con todos los entornos de ejecución de lenguajes.
  • Funciones de HTTP
  • Solo los entornos de ejecución de Ruby, .NET y PHP admiten CloudEvents. Para Node.js, Go, Python y Java, crea funciones controladas por eventos con funciones en segundo plano.
URL HTTPS asignada run.app

Las funciones creadas con la API de Cloud Functions v2 también tienen un extremo de cloudfunctions.net.
cloudfunctions.net
Registro de imágenes Solo Artifact Registry Artifact Registry o Container Registry (obsoleto)
Roles de IAM para la implementación
Infraestructura interna Cloud Run Función interna de Google
Modelo de precios Precios de Cloud Run Precios de Cloud Run Functions (1ª gen.)

Configuración

Cloud Run compila funciones en contenedores y las implementa como servicios. Cuando implementas una función en Cloud Run, tienes acceso y control completos sobre el comportamiento de la función. Por ejemplo, puedes habilitar la VPC directa, configurar GPUs, usar la vinculación de volúmenes y mucho más.

En la siguiente tabla, se resumen las diferencias de configuración para las funciones:

Cloud Run Functions Cloud Run Functions (1ª gen.)
Tiempo de espera de la solicitud
  • Hasta 60 minutos para las funciones activadas por HTTP
  • Hasta 9 minutos para las funciones controladas por eventos creadas con la API de Cloud Functions v2
  • Hasta 9 minutos
Tamaño de la instancia Hasta 16 GiB de RAM con 4 CPU virtuales Hasta 8 GB de RAM con 2 CPU virtuales
Simultaneidad Hasta 1,000 solicitudes simultáneas por instancia de función 1 solicitud simultánea por instancia de función
División del tráfico Admitido No compatible

Implementación

Desde agosto de 2024, puedes usar Cloud Run para implementar y administrar funciones creadas con la API de Cloud Functions v2. Como resultado de este cambio, sucederá lo siguiente:

  • Los metadatos de la función, como el ID del entorno de ejecución y las configuraciones de compilación, se almacenan en la definición del servicio de Cloud Run.
  • Puedes editar tu función de forma segura con la API de Cloud Run Admin.
  • Puedes confiar en la definición del servicio de Cloud Run como fuente de verdad para tu función.

Sin embargo, ten en cuenta que las funciones creadas con la API de Cloud Run Admin no se pueden modificar con la API de Cloud Functions.

En la siguiente tabla, se resumen las diferencias en la forma en que creas, implementas, editas y administras funciones:

Cloud Run Functions Cloud Run Functions (1ª gen.)
Consola deGoogle Cloud Cloud Run Cloud Run Functions (1ª gen.)
SDK de Cloud
API de REST
  • run.googleapis.com (v1 y v2) para las funciones creadas con la API de Cloud Run Admin o la API de Cloud Functions
Terraform

Activadores y reintentos

En la siguiente tabla, se comparan los activadores y los reintentos para las funciones:

Cloud Run Functions Cloud Run Functions (1ª gen.)
Activa e invoca una función En el caso de las funciones creadas con la API de Cloud Run Admin, especifica los activadores como parte de la implementación de la función en la consola de Google Cloud o después de implementar la función cuando usas gcloud CLI.

En el caso de las funciones creadas con la API de Cloud Functions v2, debes especificar activadores como parte de la implementación de la función.
Debes especificar activadores como parte de la implementación de la función.
Tipos de eventos Compatibilidad con cualquier tipo de evento compatible con Eventarc, incluidas más de 90 fuentes de eventos a través de los Registros de auditoría de Cloud Compatibilidad directa para eventos de 7 fuentes.
Reintentos Para las funciones creadas con la API de Cloud Run Admin, actualiza la política de reintentos en Eventarc y configura el tema de mensajes no entregados en Pub/Sub.

En el caso de las funciones creadas con la API de Cloud Functions v2, especificas los reintentos como parte de la implementación de la función con la marca --retry.
Puedes especificar reintentos como parte de la implementación de la función con la marca --retry.

Desvincula tu función

Las funciones creadas con la API de Cloud Functions v2 (por ejemplo, con gcloud functions, la API de REST o Terraform) se pueden separar de su entorno de API existente. Después de separar una función, solo podrás administrarla con la API de Cloud Run Admin. Es posible que desees hacerlo si tus cargas de trabajo deben permanecer dentro del límite de la API de run.googleapis.com para Assured Workloads o para asegurarte de que tus cargas de trabajo usen el SKU de Cloud Run. Consulta Administra funciones para obtener más información.

¿Qué sigue?