Existen dos parámetros de configuración de facturación en los servicios de Cloud Run:
Facturación basada en solicitudes (predeterminada): Solo se cobran las instancias de Cloud Run cuando procesan solicitudes durante el procesamiento de solicitudes, el inicio y el apagado del contenedor. Consulta el ciclo de vida de las instancias para obtener más detalles. Este parámetro de configuración anteriormente se llamaba CPU solo se asigna durante el procesamiento de solicitudes.
Facturación basada en instancias: Se cobra por todo el ciclo de vida de las instancias de Cloud Run, 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 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 automáticamente 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.
Impacto de la asignación de CPU
La selección de 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.
Cómo elegir la configuración de facturación adecuada
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
- Se recomienda la facturación basada en solicitudes cuando el tráfico entrante es esporádico, inestable o tiene incrementos bruscos.
- Se recomienda la facturación basada en instancias cuando el tráfico entrante es estable y varía de forma lenta.
Consideraciones de ejecución en segundo plano
Si seleccionas la facturación basada en instancias, se asignará la CPU incluso fuera del procesamiento de solicitudes, lo que te permitirá 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/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.
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.
Consideraciones sobre el ajuste de escala automático
Cloud Run autoscales la cantidad de instancias de contenedor.
En el caso de un servicio configurado con la facturación basada en solicitudes, Cloud Run ajusta automáticamente la cantidad de instancias en función del uso de la CPU solo durante el procesamiento de solicitudes.
En el caso de un servicio configurado con la facturación basada en instancias, Cloud Run ajusta automáticamente la cantidad de instancias según el uso de la CPU durante todo el ciclo de vida de la instancia de contenedor, excepto cuando se escala a cero y desde cero, en cuyo caso solo se usan solicitudes.
Consideraciones de facturación basada en instancias
Incluso si la configuración de facturación está establecida en facturación basada en instancias, el ajuste de escala automático de Cloud Run aún sigue activo y puede finalizar las instancias si no son necesarias para controlar el tráfico entrante o la utilización 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 mediante 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.
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
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 permisos de implementación y administra 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 , gcloud CLI o un archivo YAML cuando creas un servicio nuevo o implementas una revisión nueva:
Console
En la consola de Google Cloud , ve a Cloud Run:
Haz clic en Implementar contenedor y selecciona Servicio para configurar un servicio nuevo. Si quieres configurar un servicio existente, haz clic en el servicio y, luego, en implementar y editar la nueva revisión.
Si estás configurando un servicio nuevo, completa la página de configuración inicial del servicio.
Selecciona una configuración de facturación en Facturación. Selecciona facturación basada en solicitudes para que se cobre a tus instancias solo durante el procesamiento de solicitudes. Selecciona la facturación basada en instancias para que se te cobre por toda la vida útil de las instancias.
Haz clic en Crear o Implementar.
gcloud
Puedes actualizar la configuración de facturación. Para configurar 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 configurar la facturación durante la implementación. Para configurar la facturación basada en instancias, sigue estos pasos:
gcloud run deploy --image IMAGE_URL --no-cpu-throttling
Para establecer 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 tiene el formato 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
Reemplazar
- SERVICE por el nombre del servicio de Cloud Run
- BOOLEAN con
true
para configurar la facturación de solicitudes ofalse
para configurar la facturación basada en instancias. - REVISION por 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
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 recurso google_cloud_run_v2_service
en la configuración de Terraform, en template.containers.resources
.
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 Cloud Run:
Haz clic en el servicio que te interesa para abrir la página Detalles del servicio.
Haz clic en la pestaña Revisiones.
En el panel de detalles a la derecha, la configuración de facturación aparece en la pestaña General.
gcloud
Usa el siguiente comando:
gcloud run services describe SERVICE
Busca la configuración de facturación en la configuración que se muestra.