Compara funciones de Cloud Run

En esta guía, se comparan las opciones Google Cloud más recientes y originales para implementar funciones. Esta página ayuda a quienes anteriormente 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 diferencias clave en varias áreas, como los conceptos, la configuración, la implementación, los activadores y los reintentos.

Comparación

Existen dos versiones de Cloud Run Functions:

  • Cloud Run Functions, antes conocida como Cloud Functions (2ª gen.), es la versión más reciente de las funciones que puedes implementar como servicio en Cloud Run. La función puede reaccionar a solicitudes HTTP(S) o responder a eventos propagados por activadores basados en Eventarc, como Pub/Sub.

  • Cloud Run Functions (1ª gen.), antes conocida como Cloud Functions (1ª gen.), es la versión original de las funciones con activadores de eventos y configurabilidad limitados.

Te recomendamos que uses la versión actual de las funciones de Cloud Run, ya que te brinda más flexibilidad y control sobre el tiempo de ejecución de las funciones. Si implementas funciones directamente en Cloud Run, estas se compilarán automáticamente como contenedores y se implementarán como un servicio de Cloud Run.

Conceptos

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

Funciones de Cloud Run Funciones de Cloud Run (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. Una función se implementa desde el código fuente
Terminología de los tipos 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 son compatibles con 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 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 Interno de Google
Modelo de precios Precios de Cloud Run Precios de las funciones de Cloud Run (1ª gen.)

Configuración

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

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

Funciones de Cloud Run Funciones de Cloud Run (1ª gen.)
Tiempo de espera de la solicitud
  • Hasta 60 minutos para las funciones activadas por HTTP
  • Hasta 9 minutos para las funciones de CloudEvents 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 la fuente de verdad de 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 de crear, implementar, editar y administrar funciones:

Funciones de Cloud Run Funciones de Cloud Run (1ª gen.)
Consola de Google Cloud Cloud Run Funciones de Cloud Run (1ª gen.)
SDK de Cloud
API de REST
  • run.googleapis.com (v1 y v2) para 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 de las funciones:

Funciones de Cloud Run Funciones de Cloud Run (1ª gen.)
Cómo activar e invocar una función En el caso de las funciones creadas con la API de Cloud Run Admin, debes especificar los activadores como parte de la implementación de la función en la consola de Google Cloud o después de implementarla cuando uses gcloud CLI.

En el caso de las funciones creadas con la API de Cloud Functions (v2), debes especificar los 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 En el caso de las funciones creadas con la API de Cloud Run Admin, actualiza la política de reintento en Eventarc y configura el tema de buzón de destino en Pub/Sub.

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

¿Qué sigue?