本页面介绍如何创建服务以及查看服务的相关信息。服务是 Cloud Run 的主要资源。每项服务都有一个唯一的永久性网址,该网址在您向其部署新修订版本时不会随着时间改变。
服务的永久网域由服务名称和哈希组成。
创建服务
首次部署容器映像会创建新的服务。如需了解更多说明,请参阅部署新的服务部分。
查看项目中的服务列表
您可以使用 Google Cloud 控制台或 gcloud 命令行查看项目中的可用服务列表:
控制台
要查看服务列表,请按如下所述操作:
检查针对您的项目显示的服务列表:
命令行
要列出项目中的各项服务,请运行以下命令:
gcloud run services list
请注意,每项服务都有一个关联网址。
您可以按服务定义的属性(例如已分配的标签)过滤此列表。
Cloud Code
如需使用 Cloud Code 查看服务列表,请阅读适用于 IntelliJ 和 Visual Studio Code 的 Cloud Run Explorer 指南。
客户端库
如需通过代码查看服务列表,请使用以下语言:
REST API
如需查看项目中的服务列表,请向 Cloud Run Admin API service
端点发送 GET
HTTP 请求。
例如,使用 curl
:
curl -H "Content-Type: application/json" \ -H "Authorization: Bearer ACCESS_TOKEN" \ -X GET \ -d '' \ https://run.googleapis.com/v2/projects/PROJECT_ID/locations/REGION/services
您需要在其中:
- 将 ACCESS_TOKEN 替换为具有查看服务的 IAM 权限的账号的有效访问令牌。例如,如果您已登录 gcloud,则可以使用
gcloud auth print-access-token
检索访问令牌。在 Cloud Run 容器实例中,您可以使用容器实例元数据服务器检索访问令牌。 - 将 REGION 替换为该服务的 Google Cloud 区域。
- 将 PROJECT-ID 替换为 Google Cloud 项目 ID。
复制服务
您可以使用 Google Cloud 控制台或 YAML 创建现有服务的副本。您可以更改副本中的任何内容,包括名称和区域。
控制台
要复制服务,请执行以下操作:
从显示的项目服务列表中选择要复制的服务:
点击复制。
在服务复制页面中,设置或更改您要更改的任何值(例如区域等)。如果您保留相同的区域,则必须为服务提供新名称。
点击创建以创建副本并使用新服务名称进行部署。
YAML
您可以使用 gcloud run services describe --format export
命令下载并查看现有服务配置,该命令会生成清理后的 YAML 格式的结果。然后按照后续说明修改字段,最后使用 gcloud run services replace
命令上传修改后的 YAML。请务必严格按照说明修改字段。
如需查看和下载配置,请运行以下命令:
gcloud run services describe SERVICE --format export > service.yaml
对服务进行任何所需的配置更改。
apiVersion: serving.knative.dev/v1 kind: Service metadata: annotations: ... name: SERVICE ... spec: template: metadata: annotations: ... name: REVISION
- 如果您不将副本部署到其他区域,请将 SERVICE 替换为您要用于副本的名称。如果您要将副本部署到其他地区,则可以使用旧名称。
- 将 REVISION 替换为新的修订版本名称或者将其删除(如果存在)。如果您提供新的修订版本名称,则该名称必须满足以下条件:
- 开头为
SERVICE-
- 仅包含小写字母、数字和
-
- 不以
-
结尾 - 不超过 63 个字符
- 开头为
使用以下命令复制服务:
gcloud run services replace service.yaml
使用
--region
标志将副本部署到其他区域。
查看服务的更多相关详细信息
要查看服务的更多相关详细信息,请按如下所述操作:
控制台
要查看服务的详细信息,请执行以下操作:
在针对您的项目显示的服务列表中,点击所需服务,以打开服务详情视图。
命令行
要查看服务的相关详细信息,请运行以下命令:
gcloud run services describe SERVICE将 SERVICE 替换为相应服务的名称。
您可以使用 --format
标志来设置输出的格式。例如,作为 YAML:
gcloud run services describe SERVICE --format yaml
您可以使用 --format export
导出为 YAML(不带自动生成的标签或状态):
gcloud run services describe SERVICE --format export
您还可以使用 --format
标志获取服务的网址:
gcloud run services describe SERVICE --format='value(status.url)'
Cloud Code
如需使用 Cloud Code 查看服务详情,请阅读适用于 IntelliJ 和 Visual Studio Code 的 Cloud Run Explorer 指南。
如需详细了解服务修订版本,请参阅管理修订版本。
客户端库
如需通过代码查看服务的相关详细信息,请使用以下语言:
REST API
如需查看服务的相关详细信息,请向 Cloud Run Admin API service
端点发送 GET
HTTP 请求。
例如,使用 curl
:
curl -H "Content-Type: application/json" \ -H "Authorization: Bearer ACCESS_TOKEN" \ -X GET \ -d '' \ https://run.googleapis.com/v2/projects/PROJECT_ID/locations/REGION/services/SERVICE-NAME
您需要在其中:
- 将 ACCESS_TOKEN 替换为具有查看服务详情的 IAM 权限的账号的有效访问令牌。例如,如果您已登录 gcloud,则可以使用
gcloud auth print-access-token
检索访问令牌。在 Cloud Run 容器实例中,您可以使用容器实例元数据服务器检索访问令牌。 - 将 SERVICE-NAME 替换为相应服务的名称。
- 将 REGION 替换为该服务的 Google Cloud 区域。
- 将 PROJECT-ID 替换为 Google Cloud 项目 ID。
停用现有服务
Cloud Run 无法直接使服务停止处理流量,但您可以通过撤消某些身份调用服务的权限来实现类似的结果。值得注意的是,如果您的服务是公开服务,则应从 Cloud Run Invoker 角色 (roles/run.invoker
) 中移除 allUsers
。
删除现有服务
以下注意事项适用于删除服务:
- 删除一项服务会删除与之相关的所有资源,包括此服务的所有修订版本(无论它们是否正在处理流量)。
- 删除服务不会自动从 Container Registry 中移除容器映像。要从 Container Registry 中删除已删除的修订版本所使用的容器映像,请参阅删除映像。
- 删除具有一个或多个 Eventarc 触发器的服务并不会自动删除其中的触发器。如需删除触发器,请参阅管理触发器。
- 删除后,服务在 Google Cloud 控制台和命令行界面中仍然可见,直到删除完全完成为止。但是,您无法更新该服务。
删除服务属于永久性操作,也就是说,此操作无法撤消或恢复。但是,如果您在删除服务后在同一区域内部署具有相同名称的新服务,则该新服务将使用相同的端点网址。
控制台
要删除服务,请执行以下操作:
在服务列表中找到要删除的服务,然后点击该服务对应的复选框以将其选中。
点击删除。这将删除服务的所有修订版本。
命令行
要删除服务,请使用以下命令:
gcloud run services delete [SERVICE]
将 [SERVICE]
替换为服务的名称。
客户端库
如需通过代码删除服务,请使用以下语言:
REST API
如需删除服务,请向 Cloud Run Admin API service
端点发送 DELETE
HTTP 请求。
例如,使用 curl
:
curl -H "Content-Type: application/json" \ -H "Authorization: Bearer ACCESS_TOKEN" \ -X DELETE \ -d '' \ https://run.googleapis.com/v2/projects/PROJECT_ID/locations/REGION/services/SERVICE-NAME
您需要在其中:
- 将 ACCESS_TOKEN 替换为具有删除服务的 IAM 权限的账号的有效访问令牌。例如,如果您已登录 gcloud,则可以使用
gcloud auth print-access-token
检索访问令牌。在 Cloud Run 容器实例中,您可以使用容器实例元数据服务器检索访问令牌。 - 将 SERVICE-NAME 替换为相应服务的名称。
- 将 REGION 替换为该服务的 Google Cloud 区域。
- 将 PROJECT-ID 替换为 Google Cloud 项目 ID。