本页面介绍了如何创建和管理可单独寻址的单例 Cloud Run 实例。与根据传入流量扩缩的 Cloud Run 服务不同,实例是专用计算容器,您可以使用生命周期转换(创建、停止、启动、更新、删除)手动管理该容器。
支持的区域
您可以使用任何 Cloud Run 支持的区域来创建 Cloud Run 实例。但是,以下 高延迟区域不受支持:
us-central1us-east1europe-west1
准备工作
按照设置页面中的说明 ,为 Cloud Run 设置新项目。
启用 Cloud Run Admin API:
gcloud services enable run.googleapis.com将
gcloud组件更新到最新版本:gcloud components update
所需的角色
如需获得配置和部署 Cloud Run 实例所需的权限,请让您的管理员为您授予以下 IAM 角色:
- Cloud Run 实例的 Cloud Run Developer (
roles/run.developer) 角色 - 服务身份的 Service Account User (
roles/iam.serviceAccountUser) 角色
如需查看与 Cloud Run 关联的 IAM 角色和权限的列表,请参阅 Cloud Run IAM 角色 和 Cloud Run IAM 权限。 如果您的 Cloud Run 实例与 Google Cloud API(例如 Cloud 客户端库)进行交互,请参阅 服务身份配置指南。 如需详细了解如何授予角色,请参阅 部署权限 和管理访问权限。
创建实例
您可以部署容器映像来创建新实例。如果您未提供名称,系统会自动生成一个名称。
gcloud
如需使用 gcloud beta run instances create 命令创建新的 Cloud Run 实例,请执行以下操作:
gcloud beta run instances create INSTANCE_NAME \ --image IMAGE_URL \ --region REGION
如需使用 gcloud beta run instances deploy 命令创建新的 Cloud Run 实例,请执行以下操作:
gcloud beta run instances deploy INSTANCE_NAME \ --image IMAGE_URL \ --region REGION
替换以下内容:
INSTANCE_NAME:您要创建的实例的名称。实例名称在您的项目和区域中必须是唯一的。您无法创建与现有 Cloud Run 实例或服务同名的实例。IMAGE_URL:对容器映像的引用,例如us-docker.pkg.dev/cloudrun/container/instances:latest。REGION: 运行实例的 Google Cloud 区域,例如europe-west1。
客户端库
如需通过代码创建新实例,请使用以下客户端库:
REST API
如需创建新的 Cloud Run 实例,请向 instances 端点发送 POST HTTP 请求。
curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ -d '{ "containers": [{ "image": "IMAGE_URL", "ports": [{"containerPort": PORT}] }], "ingress": "INGRESS_TRAFFIC_ALL", "invokerIamDisabled": true, "timeout": "3600s" }' \ "https://run.googleapis.com/v2/projects/PROJECT_ID/locations/REGION/instances?instance_id=INSTANCE_NAME"
替换以下内容:
IMAGE_URL:您的容器映像网址。PORT:容器监听的端口。PROJECT_ID:您的 Google Cloud 项目 ID。REGION:部署的 Google Cloud 区域。INSTANCE_NAME:新实例的名称。
创建实例后,该实例会收到一个 Cloud Run 网址,其格式如下:
https://INSTANCE_NAME-PROJECT_NUMBER.REGION.run.app
更新实例
当您更新实例(例如其容器映像、端口或环境变量)时,该实例会重启。
gcloud
如需使用 gcloud beta run instances update 命令更新 Cloud Run 实例,请执行以下操作:
gcloud beta run instances update INSTANCE_NAME \ --image NEW_IMAGE_URL \ --region REGION
如需使用 gcloud beta run instances deploy 命令更新 Cloud Run 实例,请执行以下操作:
gcloud beta run instances deploy INSTANCE_NAME \ --image IMAGE_URL \ --region REGION
REST API
如需通过 API 更新 Cloud Run 实例配置,请向实例 URI 端点发送 PATCH HTTP 请求。
curl -H "Content-Type: application/json" \ -X PATCH \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -d '{template: {containers: [{image: "IMAGE_URL"}]}}' \ "https://run.googleapis.com/v2/projects/PROJECT_ID/locations/REGION/instances/INSTANCE_NAME"
停止实例
使用 stop 命令或方法停止正在运行的 Cloud Run 实例。
gcloud
如需停止实例,请执行以下操作:
gcloud beta run instances stop INSTANCE_NAME \ --region REGION
客户端库
如需通过代码停止正在运行的实例,请使用以下客户端库:
REST API
如需停止实例,请发送带有 :stop 装饰器的 POST HTTP 请求:
curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://run.googleapis.com/v2/projects/PROJECT_ID/locations/REGION/instances/INSTANCE_NAME:stop"
启动或重启实例
使用 start 命令或方法启动已停止的实例,或强制重启现有实例。
gcloud
如需启动或重启实例,请执行以下操作:
gcloud beta run instances start INSTANCE_NAME \ --region REGION
客户端库
如需通过代码启动已停止的实例,请使用以下客户端库:
REST API
如需启动实例,请发送带有 :start 装饰器的 POST HTTP 请求:
curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://run.googleapis.com/v2/projects/PROJECT_ID/locations/REGION/instances/INSTANCE_NAME:start"
查看项目中的实例列表
您可以查看项目中的所有活跃和非活跃实例。
gcloud
如需列出特定区域中的实例,请执行以下操作:
gcloud beta run instances list \ --region REGION
将 REGION 替换为运行实例的 Google Cloud 区域
。
客户端库
如需通过代码列出活跃和非活跃实例,请使用以下客户端库:
REST API
如需检索实例列表,请发送 GET HTTP 请求:
curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://run.googleapis.com/v2/projects/PROJECT_ID/locations/REGION/instances"
查看实例详情
使用 describe 命令或方法查看配置详情和当前状态。
gcloud
如需描述实例,请执行以下操作:
gcloud beta run instances describe INSTANCE_NAME \ --region REGION
客户端库
如需通过代码查看实例配置详情和状态,请使用以下客户端库:
REST API
如需描述实例,请发送 GET HTTP 请求:
curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://run.googleapis.com/v2/projects/PROJECT_ID/locations/REGION/instances/INSTANCE_NAME"
删除实例
删除实例可从项目中永久移除其配置、元数据、公共直接网址映射和身份角色。
gcloud
如需删除实例,请执行以下操作:
gcloud beta run instances delete INSTANCE_NAME \ --region REGION
客户端库
如需通过代码删除实例,请使用以下客户端库:
REST API
如需删除实例,请发送 DELETE HTTP 请求:
curl -X DELETE \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://run.googleapis.com/v2/projects/PROJECT_ID/locations/REGION/instances/INSTANCE_NAME"