本页介绍了如何创建和管理可单独寻址的单例 Cloud Run 实例。与根据入站流量扩缩的 Cloud Run 服务不同,实例是一个专用计算容器,您可以使用生命周期转换(创建、停止、启动、更新、删除)手动管理该容器。
支持的区域
您可以在任何受支持的区域中创建 Cloud Run 实例,但以下区域除外:
europe-west1us-central1us-east1
准备工作
按照设置页面中的说明为 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"
停止实例
使用停止命令或方法停止正在运行的 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"