Cloud Run 速查
部署服务
# 从容器镜像部署
gcloud run deploy my-service \
--image=gcr.io/my-project/my-app:v1.0 \
--region=us-central1 \
--allow-unauthenticated \
--port=8080 \
--memory=512Mi \
--cpu=1
# 从源码部署(自动构建)
gcloud run deploy my-service \
--source=. \
--region=us-central1
# 列出服务
gcloud run services list --region=us-central1
流量分流
# 部署新版本但不切流量
gcloud run deploy my-service \
--image=gcr.io/my-project/my-app:v2.0 \
--region=us-central1 \
--no-traffic
# 金丝雀发布(10% 流量到新版本)
gcloud run services update-traffic my-service \
--region=us-central1 \
--to-revisions=my-service-00002-abc=10,my-service-00001-xyz=90
# 全量切换到最新
gcloud run services update-traffic my-service \
--region=us-central1 \
--to-latest
环境变量与 Secret
# 设置环境变量
gcloud run services update my-service \
--region=us-central1 \
--set-env-vars="DB_HOST=10.0.0.1,LOG_LEVEL=INFO"
# 挂载 Secret Manager 密钥为环境变量
gcloud run services update my-service \
--region=us-central1 \
--set-secrets="DB_PASSWORD=db-password:latest"
# 挂载密钥为文件
gcloud run services update my-service \
--region=us-central1 \
--set-secrets="/secrets/api-key=api-key:latest"
并发与弹性伸缩
# 设置并发数
gcloud run services update my-service \
--region=us-central1 \
--concurrency=80
# 设置最小实例(避免冷启动)
gcloud run services update my-service \
--region=us-central1 \
--min-instances=2
# 设置最大实例(控制成本)
gcloud run services update my-service \
--region=us-central1 \
--max-instances=100
网络与认证
# 允许公开访问
gcloud run services add-iam-policy-binding my-service \
--region=us-central1 \
--member="allUsers" \
--role="roles/run.invoker"
# 仅允许内部流量
gcloud run services update my-service \
--region=us-central1 \
--ingress=internal
# 连接 VPC(访问 Cloud SQL、Redis 等)
gcloud run services update my-service \
--region=us-central1 \
--vpc-connector=my-vpc-connector