En esta página, se describe la configuración de facturación suponiendo que se usa el comportamiento predeterminado de ajuste de escala automático de Cloud Run. Consulta Comportamiento de la facturación con el escalamiento manual para conocer otras consideraciones si usas el escalamiento manual.
Existen dos parámetros de configuración de facturación en los servicios de Cloud Run:
Facturación basada en solicitudes (predeterminada): Las instancias de servicio de Cloud Run solo se cobran cuando procesan solicitudes, cuando se inician y cuando se cierran. Consulta el ciclo de vida de la instancia para obtener más detalles. Este parámetro de configuración antes se llamaba CPU solo asignada durante el procesamiento de solicitudes.
Facturación basada en instancias: Las instancias de servicio de Cloud Run se cobran por todo el ciclo de vida de cada instancia, incluso cuando no hay solicitudes entrantes. La facturación basada en instancias puede ser útil para ejecutar tareas en segundo plano de corta duración y otras tareas de procesamiento asíncrono. Este parámetro de configuración antes se llamaba La CPU siempre está asignada.
Si eliges la facturación basada en solicitudes, se te cobrará por solicitud y solo cuando la instancia procese una solicitud. Si eliges la facturación basada en instancias, se te cobrará por todo el ciclo de vida de la instancia. Consulta las tablas de precios de Cloud Run para obtener más información.
El recomendador observa de forma automática el tráfico que recibe tu servicio de Cloud Run en el último mes y te recomendará cambiar de la facturación basada en solicitudes a la facturación basada en instancias, si es más económica.
A diferencia de los servicios de Cloud Run, todos los trabajos de Cloud Run usan la facturación basada en instancias. Los grupos de trabajadores de Cloud Run y las instancias de Cloud Run también se facturan por todo el ciclo de vida de cada instancia con sus propios SKU de precios dedicados. Para ver una comparación entre los tipos de recursos, consulta Comparación de recursos de Cloud Run.Impacto de la asignación de CPU
Seleccionar un parámetro de configuración de facturación afecta la forma en que se asigna la CPU.
- Con la facturación basada en solicitudes, la CPU solo se asigna durante el procesamiento de solicitudes.
- Con la facturación basada en instancias, la CPU se asigna durante todo el ciclo de vida de las instancias de contenedor.
Límites de inversión del presupuesto
Cuando configuras los límites de inversión del presupuesto de Facturación de Cloud en la consola de Facturación de Cloud o de manera programática con la API de Cloud Billing Budget, esos límites se aplican automáticamente a todos los tipos de recursos de Cloud Run en tu proyecto.
Puedes supervisar el progreso de tu límite de inversión directamente desde la página de resumen de la consola de Cloud Run. Cuando alcanzas un límite de inversión, Google Cloud detiene todas las cargas de trabajo de Cloud Run para evitar costos adicionales en los siguientes recursos de Cloud Run:
- Servicios: Cualquier servicio existente no podrá entregar tráfico y devolverá errores
5xx. - Trabajos: Las ejecuciones de tareas nuevas no se inician y las tareas en curso no se completan.
- Grupos de trabajadores: las instancias existentes dejan de procesar tareas.
- Instancias: Se cierran todas las instancias en ejecución, no se inician las instancias nuevas ni los reinicios, y las solicitudes a
las URLs de las instancias devuelven errores
5xx.
Si superas el límite de inversión, recibirás una notificación de alerta y verás un banner de aplicación de política en la consola de Cloud Run. Los límites de inversión aplicados se restablecen al comienzo de cada mes, el primer día del siguiente ciclo de facturación, lo que desbloquea tus cargas de trabajo y establece el importe de inversión en cero. Si superas el límite de inversión y quieres reanudar las operaciones antes del restablecimiento mensual, ajusta o quita el límite de forma manual en la página de resumen de la consola de Cloud Run.
Cómo elegir el parámetro de configuración de facturación adecuado
La elección de la configuración de facturación adecuada para tu caso de uso depende de varios factores, como los patrones de tráfico, la ejecución en segundo plano y el costo, cada uno de los cuales se describe en las siguientes secciones.
Consideraciones sobre los patrones de tráfico
- La facturación basada en solicitudes se recomienda cuando el tráfico entrante es esporádico, irregular o con aumentos repentinos.
- La facturación basada en instancias se recomienda cuando el tráfico entrante es constante y varía lentamente.
Consideraciones de ejecución en segundo plano
Si seleccionas la facturación basada en instancias, se asigna CPU incluso fuera del procesamiento de solicitudes, lo que te permite ejecutar tareas en segundo plano de corta duración y otros trabajos de procesamiento asíncrono después de mostrar respuestas. Por ejemplo:
- Aprovechar agentes de supervisión como OpenTelemetry que pueden ejecutarse en segundo plano
- Usar Goroutines de Go, async de Node.js, subprocesos de Java.js y corrutinas de Kotlin.
- Usar frameworks de aplicaciones que se basan en la programación incorporada o en las funcionalidades en segundo plano
Las instancias inactivas, incluidas las que se mantienen preparadas con las instancias mínimas, se pueden cerrar en cualquier momento. Si necesitas terminar las tareas pendientes antes de que finalice el contenedor, puedes atrapar SIGTERM para dar a una instancia un tiempo de gracia de 10 segundos antes de que se detenga.
Considera usar Cloud Tasks para ejecutar tareas asíncronas. Cloud Tasks reintenta las tareas con errores de forma automática y admite tiempos de ejecución de hasta 30 minutos.
Si tu carga de trabajo requiere una sola instancia de larga duración que se ejecute de forma continua durante horas o días sin ajuste de escala automático horizontal, implementa una instancia de Cloud Run en lugar de un servicio. A diferencia de las instancias de servicio, que reducen la escala verticalmente después de un máximo de 15 minutos de tiempo de inactividad, una instancia de Cloud Run puede ejecutarse sin interrupciones durante un máximo de 7 días y admite políticas de reinicio configurables. Esto hace que las instancias de Cloud Run sean adecuadas para agentes de IA personales, motores de flujo de trabajo con estado y entornos de desarrollo remotos. Consulta Cuándo usar instancias de Cloud Run y Ciclo de vida de las instancias de Cloud Run para obtener más detalles.
Consideraciones de costo
Si usas la facturación basada en solicitudes, la facturación basada en instancias puede ser más económica en los siguientes casos:
- El servicio de Cloud Run procesa una gran cantidad de solicitudes actuales a una velocidad bastante estable
- No ves muchas instancias "inactivas" cuando observas la métrica de recuento de instancias.
Puedes usar la calculadora de precios para estimar las diferencias de costo.
Si solo necesitas una instancia única que se ejecute de forma continua sin ajuste de escala automático horizontal, una instancia de Cloud Run puede costar menos que un servicio con instancias mínimas y facturación basada en instancias. Las instancias de Cloud Run tienen sus propios SKU de precios y admiten un modelo de CPU compartida con capacidad de aumento de actividad (CPU virtual de referencia del 6.25% con aumento de actividad hasta el 100%), lo que reduce los costos continuos de las cargas de trabajo de singleton que, en su mayoría, están inactivas.
Consideraciones sobre el ajuste de escala automático
De forma predeterminada, Cloud Run ajusta automáticamente la escala de la cantidad de instancias de contenedor.
En el caso de un servicio configurado para la facturación basada en solicitudes, Cloud Run ajusta la escala automáticamente de la cantidad de instancias según el uso de CPU solo durante el procesamiento de solicitudes.
En el caso de un servicio configurado para la facturación basada en instancias, Cloud Run escala automáticamente la cantidad de instancias en función del uso de CPU durante todo el ciclo de vida de la instancia de contenedor, excepto cuando se escala desde y hacia cero, en cuyo caso solo usa solicitudes.
Consulta escalamiento manual para conocer consideraciones adicionales si usas el escalamiento manual en lugar de la función de ajuste de escala automático de Cloud Run.
Consideraciones sobre la facturación basada en instancias
Incluso si el parámetro de configuración de facturación se establece en facturación basada en instancias, el ajuste de escala automático de Cloud Run sigue vigente y puede finalizar las instancias si no son necesarias para controlar el tráfico entrante o el uso de CPU actual fuera de las solicitudes. Una instancia nunca permanecerá inactiva durante más de 15 minutos después de procesar una solicitud, a menos que se mantenga activa con instancias mínimas.
La combinación de la facturación basada en instancias con una cantidad de instancias mínimas da como resultado una cantidad de instancias en funcionamiento con acceso completo a los recursos de CPU, lo que permite casos de uso de procesamiento en segundo plano. Cuando se usa este patrón, Cloud Run aplica el ajuste de escala automático de instancia, incluso si un servicio usa la CPU fuera de cualquier solicitud.
Usa un servicio con facturación basada en instancias y instancias mínimas cuando tu carga de trabajo en segundo plano o de agente necesite un ajuste de escala automático más allá de una sola instancia durante la carga máxima. Para otros patrones en segundo plano, considera estos recursos de Cloud Run:
- Cargas de trabajo de larga duración de una sola instancia: Usa una instancia de Cloud Run si solo necesitas una sola instancia con control directo del ciclo de vida de inicio, detención y reinicio, y sin ajuste de escala automático.
- Cargas de trabajo basadas en extracción que no son HTTP: Usa un grupo de trabajadores de Cloud Run para consumidores en segundo plano continuos, como trabajadores de Pub/Sub o Kafka, que no requieren un extremo HTTP.
Si usas sondeos de verificación de estado, debes usar la facturación basada en instancias para cada sondeo. Consulta los sondeos de verificación de estado del contenedor para obtener detalles de facturación.
Roles obligatorios
Para obtener los permisos que necesitas para configurar y, luego, implementar los servicios de Cloud Run, pídele a tu administrador que te otorgue los siguientes roles de IAM:
- Desarrollador de Cloud Run (
roles/run.developer) en el servicio de Cloud Run - Usuario de la cuenta de servicio (
roles/iam.serviceAccountUser) en la identidad del servicio
Si implementas un servicio o una función desde el código fuente, también debes tener roles adicionales otorgados en tu proyecto y en la cuenta de servicio de Cloud Build.
Para obtener una lista de los roles y los permisos de IAM asociados con Cloud Run, consulta los roles de IAM de Cloud Run y los permisos de IAM de Cloud Run. Si tu servicio de Cloud Run interactúa con las APIs deGoogle Cloud , como las bibliotecas cliente de Cloud, consulta la guía de configuración de identidades del servicio. Para obtener más información sobre cómo otorgar roles, consulta los permisos de implementación y cómo administrar el acceso.
Configura y actualiza la facturación
Cualquier cambio en la configuración conlleva la creación de una revisión nueva. Las revisiones posteriores también adoptarán esta configuración de manera automática, a menos que realices actualizaciones explícitas para cambiarla.
Si seleccionas la facturación basada en instancias, debes especificar al menos 512 MiB de memoria.
Puedes cambiar la configuración de facturación con la consola de Google Cloud , la gcloud CLI o un archivo YAML cuando creas un servicio nuevo o implementas una revisión nueva:
Console
En la consola Google Cloud , ve a Cloud Run:
Selecciona Servicios en el menú de navegación de Cloud Run y haz clic en Implementar contenedor para configurar un servicio nuevo. Si quieres configurar un servicio existente, haz clic en él.
Si configuras un servicio nuevo, completa la página de configuración inicial del servicio.
Si quieres configurar un servicio existente, haz clic en la pestaña Ajuste de escala.
En Facturación, selecciona Basada en solicitudes para que tus instancias se cobren solo durante el procesamiento de solicitudes o selecciona Basada en instancias para que tus instancias se cobren durante toda su vida útil.
Haz clic en Crear para un servicio nuevo. Haz clic en Ver diferencia y volver a implementar y, luego, en Implementar cambios para un servicio existente.
gcloud
Puedes actualizar la configuración de facturación. Para establecer la facturación basada en instancias para un servicio determinado, sigue estos pasos:
gcloud run services update SERVICE --no-cpu-throttling
SERVICE por el nombre del servicio
Para configurar la facturación basada en solicitudes, sigue estos pasos:
gcloud run services update SERVICE --cpu-throttling
También puedes establecer la configuración de facturación durante la implementación. Para establecer la configuración de facturación basada en instancias, sigue estos pasos:
gcloud run deploy --image IMAGE_URL --no-cpu-throttling
Para establecer tu configuración de facturación en la facturación basada en solicitudes, sigue estos pasos:
gcloud run deploy --image IMAGE_URL --cpu-throttling
Reemplaza IMAGE_URL por una referencia a la imagen de contenedor, como us-docker.pkg.dev/cloudrun/container/hello:latest. Si usas Artifact Registry, el repositorio REPO_NAME debe estar creado. La URL sigue el formato de LOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG.
YAML
Si creas un servicio nuevo, omite este paso. Si actualizas un servicio existente, descarga su configuración de YAML:
gcloud run services describe SERVICE --format export > service.yaml
Actualiza el atributo
cpu:apiVersion: serving.knative.dev/v1 kind: Service metadata: name: SERVICE spec: template: metadata: annotations: run.googleapis.com/cpu-throttling: 'BOOLEAN' name: REVISION
Reemplaza lo siguiente:
- SERVICE: el nombre de tu servicio de Cloud Run
- BOOLEAN:
truepara establecer la facturación basada en solicitudes ofalsepara establecer la facturación basada en instancias. REVISION: un nombre de revisión nuevo o bórralo (si está presente). Si proporcionas un nuevo nombre de revisión, debe cumplir con los siguientes criterios:- Comienza con
SERVICE- - Solo contiene letras minúsculas, números y
- - No termina con
- - No supera los 63 caracteres
- Comienza con
Crea o actualiza el servicio con el siguiente comando:
gcloud run services replace service.yaml
El comando
gcloud run services replaceusa de forma predeterminada el archivoservice.yamlsi está presente.
Terraform
Si deseas obtener más información para aplicar o quitar una configuración de Terraform, consulta los comandos básicos de Terraform.
Agrega lo siguiente a un recursogoogle_cloud_run_v2_service
en tu configuración de Terraform:Ver la configuración de facturación
Para ver la configuración de facturación actual de tu servicio de Cloud Run, sigue estos pasos:
Console
En la consola de Google Cloud , ve a la página Servicios de Cloud Run:
Haz clic en el servicio para abrir la página Detalles del servicio.
Haz clic en la pestaña Ajuste de escala para encontrar el parámetro de configuración Facturación.
gcloud
Ejecuta el siguiente comando para ver la configuración de facturación:
gcloud run services describe SERVICE --format=yaml
En el resultado de YAML, busca el parámetro de configuración
run.googleapis.com/cpu-throttling. Un valor defalseindica la facturación basada en instancias y, si falta este parámetro de configuración, indica la facturación basada en solicitudes.