¿Qué hace cloud-run-basics?
Gestiona servicios, trabajos y grupos de workers de Cloud Run. Úsalo cuando necesites desplegar aplicaciones que respondan a peticiones HTTP (servicios), ejecutar tareas desencadenadas por eventos o programadas (trabajos), o manejar procesamiento en segundo plano basado en pull siempre activo (grupos de workers).
Servicios
Un servicio de Cloud Run es un recurso que ejecuta tu aplicación en contenedores sin servidor, escalando automáticamente en respuesta a las peticiones HTTP.
Comandos para Servicios
gcloud run deploy SERVICE_NAME --image IMAGE_URL [--region REGION] [--platform managed]- Desplegar un nuevo servicio o actualizar uno existente.gcloud run services describe SERVICE_NAME --region REGION- Obtener detalles de un servicio.gcloud run services list --region REGION- Listar servicios en una región.gcloud run services delete SERVICE_NAME --region REGION- Eliminar un servicio.
Ejemplo de Despliegue
gcloud run deploy my-service \
--image us-central1-docker.pkg.dev/my-project/my-repo/my-image:latest \
--region us-central1 \
--platform managed \
--concurrency 80 \
--timeout 300 \
--memory 512Mi \
--set-env-vars "ENVIRONMENT=production,LOG_LEVEL=info"
Trabajos (Jobs)
Un trabajo de Cloud Run ejecuta tu código en contenedores sin servidor hasta su finalización. Es ideal para tareas desencadenadas por eventos o programadas.
Comandos para Trabajos
gcloud run jobs create JOB_NAME --image IMAGE_URL [--region REGION]- Crear un nuevo trabajo.gcloud run jobs update JOB_NAME --image IMAGE_URL [--region REGION]- Actualizar un trabajo existente.gcloud run jobs execute JOB_NAME [--region REGION] [--tasks TASKS]- Ejecutar un trabajo.gcloud run jobs describe JOB_NAME --region REGION- Obtener detalles de un trabajo.gcloud run jobs list --region REGION- Listar trabajos en una región.gcloud run jobs delete JOB_NAME --region REGION- Eliminar un trabajo.
Ejemplo de Creación y Ejecución
gcloud run jobs create my-job \
--image us-central1-docker.pkg.dev/my-project/my-repo/my-job-image:latest \
--region us-central1 \
--tasks 10 \
--max-retries 3 \
--task-timeout 600 \
--set-env-vars "INPUT_BUCKET=my-input-bucket,OUTPUT_BUCKET=my-output-bucket"
gcloud run jobs execute my-job --region us-central1
Grupos de Workers (Worker Pools)
Un grupo de workers de Cloud Run proporciona un grupo de instancias de worker siempre activas para procesamiento en segundo plano basado en pull. Útil para colas de trabajo o procesamiento por lotes.
Comandos para Grupos de Workers
gcloud run worker-pools create POOL_NAME --image IMAGE_URL --min-instances MIN --max-instances MAX [--region REGION]- Crear un grupo de workers.gcloud run worker-pools update POOL_NAME [--image IMAGE_URL] [--min-instances MIN] [--max-instances MAX] [--region REGION]- Actualizar un grupo de workers.gcloud run worker-pools describe POOL_NAME --region REGION- Obtener detalles de un grupo de workers.gcloud run worker-pools list --region REGION- Listar grupos de workers en una región.gcloud run worker-pools delete POOL_NAME --region REGION- Eliminar un grupo de workers.
Ejemplo de Creación
gcloud run worker-pools create my-worker-pool \
--image us-central1-docker.pkg.dev/my-project/my-repo/my-worker-image:latest \
--min-instances 2 \
--max-instances 10 \
--region us-central1 \
--set-env-vars "QUEUE_URL=https://my-queue.googleapis.com"
Configuración General
- Región: Especifica la región de Google Cloud donde se ejecuta el recurso. Si no se especifica, se usa la región por defecto configurada.
- Plataforma: Para servicios, usar
--platform managedpara Cloud Run totalmente gestionado. - Variables de Entorno: Usar
--set-env-varso--update-env-varspara configurar variables. - Secretos: Usar
--set-secrets=SECRET_NAME=SECRET_VERSION:env_var_namepara montar secretos como variables de entorno. - Concurrencia: Para servicios, controla cuántas peticiones simultáneas puede manejar cada instancia.
- Tiempo de Espera: Tiempo máximo que una petición (servicio) o tarea (trabajo) puede ejecutarse.
- Memoria y CPU: Ajustar según las necesidades de tu aplicación.