调用Google Cloud Run API创建服务时遇CreateServiceRequest.service_id参数错误
解决Google Cloud Run API创建服务时的service_id参数错误问题
- 错误根源:你没在请求里显式传
service_id,但Cloud Run API会把服务名称当作service_id校验——这个名称不是Payload里的独立参数,而是对应请求URL路径的最后一段,或者请求体中service.metadata.name字段的值。 - 修正步骤:
- 检查请求URL:
- 若用v1 API:URL格式为
POST https://{region}-run.googleapis.com/apis/serving.knative.dev/v1/namespaces/{project-id}/services,此时必须在Payload的service.metadata.name中设置符合规则的服务名。 - 若用v2 API:可选择在URL末尾追加服务名(如
POST https://run.googleapis.com/v2/projects/{project}/locations/{location}/services/my-valid-service),或者在Payload的service.metadata.name里配置。
- 若用v1 API:URL格式为
- 确保服务名符合规则:必须是小写字母、数字、连字符组合,以字母开头,不能以连字符结尾,长度小于50字符,比如
prod-user-service-v2。 - 示例有效Payload片段:
{ "service": { "metadata": { "name": "prod-user-service-v2", "namespace": "your-project-id" }, "spec": { "template": { "spec": { "containers": [ { "image": "gcr.io/your-project/your-image:latest" } ] } } } } }
- 检查请求URL:
- 关于文档的说明:官方文档里这个值叫服务名称(service name),对应
metadata.name字段,并非标注为service_id,API内部会将其作为service_id进行格式校验。
内容的提问来源于stack exchange,提问作者dev_
相关产品推荐
相关产品推荐

