En esta guía, se comparan las opciones de Google Cloud más recientes y originales para implementar funciones. Esta página 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.
- API de Cloud Run Admin (recomendada): Las funciones creadas con esta API (por ejemplo, con la consola deGoogle Cloud ,
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.
Cuando 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 funciones: terminología |
|
|
| URL HTTPS asignada | run.appLas 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 | Google (interna) |
| 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 |
|
|
| 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 los parámetros de configuración 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 |
|
|
| Terraform |
|
Implementa funciones creadas con la API de Cloud Functions v2
Como se describió anteriormente, puedes usar las herramientas de Cloud Run para implementar y administrar funciones creadas con la API de Cloud Functions v2. Si necesitas implementar tu función con la API de Cloud Functions v2 (por ejemplo, para la retrocompatibilidad), puedes hacerlo de la siguiente manera:
Asegúrate de tener el rol de IAM Desarrollador de Cloud Functions o un rol que incluya los mismos permisos. También consulta Configuración adicional para la implementación.
Usa el comando
gcloud functions deploypara implementar 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...
Reemplaza lo siguiente:
YOUR_FUNCTION_NAME: Es el nombre de la función en la que deseas realizar la implementación. El nombre de la función debe comenzar con 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 la función reemplazará los guiones bajos por guiones, y las letras mayúsculas se convertirán en minúsculas. Por ejemplo, a
Function_1se le asignará el nombrefunction-1en Cloud Run.YOUR_REGION: Es la Google Cloud región en la que deseas implementar tu función. Por ejemplo,
europe-west1.YOUR_RUNTIME: Es el lenguaje que usa tu función. Para obtener una lista de los entornos de ejecución compatibles, consulta Compatibilidad con el entorno de ejecución.
YOUR_SOURCE_LOCATION: Es la ubicación del código fuente de tu función.
YOUR_CODE_ENTRYPOINT: Es el punto de entrada a tu función en tu código fuente. Este es el código que se ejecutará cuando así lo haga la función. El valor de esta marca debe ser el nombre de una función o el nombre completamente calificado de la clase que esté en el código fuente.
Para obtener una referencia completa del comando functions deploy y sus marcas, consulta la documentación de gcloud functions deploy.
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 la 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 los 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. Para las funciones creadas con la API de Cloud Functions v2, especifica los reintentos como parte de la implementación de la función con la marca --retry.
|
Debes especificar los reintentos como parte de la implementación de la función con la marca --retry. |
Desvincula una 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
desvincular de su entorno de API existente. Después de desvincular una función, solo podrás administrarla con la API de Cloud Run Admin. Te recomendamos que lo hagas si tus cargas de trabajo deben permanecer dentro del límite de la API de run.googleapis.com para Assured Workloads o con el objetivo de asegurarte de que tus cargas de trabajo usen el SKU de Cloud Run.
Consulta Administra funciones para obtener más información.
¿Qué sigue?
- Prueba la guía de introducción para implementar una función de Cloud Run.