cloud-run

v2026.09.24

Google Cloud Run deployment, service management, traffic splitting, and log inspection. Use when deploying containerized apps to Cloud Run, managing services, or inspecting Cloud Run logs.

GitHub
安装命令
npx skhub add oimiragieo/cloud-run
Markdown
SKILL.md

Cloud Run

Deploy and manage containerized applications on Google Cloud Run. Covers service deployment, revision management, traffic splitting, and log inspection.

When to Use

  • Deploying containerized web applications or APIs to Google Cloud
  • Managing Cloud Run services (scaling, traffic, revisions)
  • Setting up serverless container deployments
  • Inspecting Cloud Run service logs and metrics
  • Configuring environment variables and secrets for Cloud Run services

Prerequisites

  • Google Cloud SDK (gcloud) installed and authenticated
  • Docker or Cloud Build for container image building
  • A GCP project with Cloud Run API enabled

Core Commands

Deploy a Service

# Deploy from source (Cloud Build auto-builds)
gcloud run deploy SERVICE_NAME \
  --source . \
  --region us-central1 \
  --allow-unauthenticated

# Deploy from container image
gcloud run deploy SERVICE_NAME \
  --image gcr.io/PROJECT_ID/IMAGE:TAG \
  --region us-central1 \
  --memory 512Mi \
  --cpu 1 \
  --min-instances 0 \
  --max-instances 10

List Services

gcloud run services list --region us-central1 --format json

Get Service Details

gcloud run services describe SERVICE_NAME \
  --region us-central1 \
  --format json

View Logs

gcloud run services logs read SERVICE_NAME \
  --region us-central1 \
  --limit 100

# Tail logs in real-time
gcloud run services logs tail SERVICE_NAME \
  --region us-central1

Traffic Splitting

# Route 50% to latest, 50% to previous revision
gcloud run services update-traffic SERVICE_NAME \
  --region us-central1 \
  --to-revisions LATEST=50,REVISION_NAME=50

# Route all traffic to latest
gcloud run services update-traffic SERVICE_NAME \
  --region us-central1 \
  --to-latest

Environment Variables and Secrets

# Set env vars
gcloud run services update SERVICE_NAME \
  --region us-central1 \
  --set-env-vars KEY1=VALUE1,KEY2=VALUE2

# Mount secret as env var
gcloud run services update SERVICE_NAME \
  --region us-central1 \
  --set-secrets ENV_NAME=SECRET_NAME:latest

Delete a Service

gcloud run services delete SERVICE_NAME \
  --region us-central1 \
  --quiet

Workflow

Step 1: Prepare Container

Either use a Dockerfile or let Cloud Build auto-detect:

# Option A: Build and push manually
docker build -t gcr.io/PROJECT_ID/SERVICE_NAME:latest .
docker push gcr.io/PROJECT_ID/SERVICE_NAME:latest

# Option B: Deploy from source (Cloud Build handles it)
gcloud run deploy SERVICE_NAME --source .

Step 2: Deploy

gcloud run deploy SERVICE_NAME \
  --image gcr.io/PROJECT_ID/SERVICE_NAME:latest \
  --region us-central1 \
  --port 8080 \
  --memory 512Mi \
  --cpu 1

Step 3: Verify

# Get service URL
gcloud run services describe SERVICE_NAME \
  --region us-central1 \
  --format "value(status.url)"

# Test the endpoint
curl $(gcloud run services describe SERVICE_NAME \
  --region us-central1 \
  --format "value(status.url)")

Step 4: Monitor

gcloud run services logs read SERVICE_NAME --region us-central1 --limit 20

Iron Laws

  1. ALWAYS specify --region for all gcloud run commands — omitting region causes interactive prompts that break automation.
  2. NEVER use --allow-unauthenticated for internal services — use IAM-based authentication for service-to-service communication.
  3. ALWAYS set memory and CPU limits explicitly — default limits may be too low for production workloads.
  4. NEVER store secrets in environment variables directly — use Secret Manager with --set-secrets flag.
  5. ALWAYS test deployments with traffic splitting before routing 100% to a new revision.

Anti-Patterns

Anti-PatternWhy It FailsCorrect Approach
Missing --region flagInteractive prompt breaks CI/CDAlways specify region explicitly
Public endpoints for internal APIsSecurity exposureUse IAM auth + Cloud Run invoker role
Hardcoded secrets in env varsSecrets visible in service configUse Secret Manager integration
No min-instances for latency-criticalCold start adds 2-10s latencySet --min-instances 1+ for critical paths
Single revision (no traffic split)No rollback pathAlways keep previous revision, split traffic gradually

MCP Tool Reference (cloud-run-mcp)

When the cloud-run-mcp MCP server is configured, these tools are available:

ToolDescriptionKey Params
deploy-file-contentsDeploy code directly from file contentservice_name, region, source_files
list-servicesList all Cloud Run servicesproject_id, region
get-serviceGet service details + URLservice_name, project_id, region
get-service-logFetch recent logsservice_name, project_id, limit
deploy-local-folderDeploy from local directoryfolder_path, service_name, region
list-projectsList GCP projects—
create-projectCreate new GCP projectproject_id, project_name

MCP setup: npx @google-cloud/cloud-run-mcp or configure in Claude Desktop settings.json Auth: Application Default Credentials (gcloud auth application-default login) When to use MCP vs CLI: Use MCP tools when user asks "deploy this code" or "what services are running"; use gcloud CLI for advanced operations (IAM, VPC, secrets).

Memory Protocol (MANDATORY)

Before starting: Read .claude/context/memory/learnings.md

After completing:

  • New pattern -> .claude/context/memory/learnings.md
  • Issue found -> .claude/context/memory/issues.md
  • Decision made -> .claude/context/memory/decisions.md

ASSUME INTERRUPTION: If it's not in memory, it didn't happen.

发现
标签

此技能尚未发布标签。

版本
最新版本元数据

版本

v2026.09.24

发布时间

2026年9月24日

分类

未分类

许可证

未指定

源路径

.claude/skills/cloud-run

默认分支

main

最新提交

64b580e

Tree SHA

42a1df4