创建和删除托管式服务

本页面介绍了如何使用 Service Management API 管理托管式服务的生命周期。

托管式服务的标准生命周期会涉及到以下操作:

  • 使用 services.create 方法创建托管服务。创建托管式服务后,您可以参阅对应的指南来了解如何将此 API 用于服务配置相应的发布
  • 使用 services.delete 方法来舍弃您拥有的托管式服务。Service Management 软删除托管式服务并将其保留 30 天。
  • 使用 services.undelete 方法在 30 天的保留期内恢复已删除的托管式服务。

准备工作

如要运行本指南中的示例,请确保首先按照 Service Management API 使用入门中的说明完成初始设置。

创建托管式服务

您可以使用 services.create 方法创建托管式服务。您必须指定与 DNS 兼容的服务名称和已经过验证的域名。如需了解如何满足这些要求,请参阅配置 Endpoints

以下代码段在项目 endpointsapis 中创建名称为 endpointsapis.appspot.com 的服务:

# Create managed service `endpointsapis.appspot.com`
# in the project `endpointsapis`.
$ gcurl -d '{
  "serviceName": "endpointsapis.appspot.com",
  "producerProjectId": "endpointsapis"
}' https://servicemanagement.googleapis.com/v1/services
{
  "name": "operations/services.endpointsapis.appspot.com-0",
  "metadata": {
    "@type":     "type.googleapis.com/google.api.servicemanagement.v1.OperationMetadata",
    "resourceNames": [
      "/services/endpointsapis.appspot.com"
    ],
    "startTime": ...
    "persisted": true
  },
  "done": true,
  "response": {
    "@type": "type.googleapis.com/google.api.servicemanagement.v1.ManagedService",
    "serviceName": "endpointsapis.appspot.com",
    "producerProjectId": "endpointsapis",
    ...
  }
}

services.create 方法返回长时间运行的操作资源,您可以使用 operations.get 方法来轮询操作状态,直到完成。如需了解如何执行此操作,请参阅轮询长时间运行的操作

获取服务

您可以使用 services.listservices.get 方法列出服务或检索特定的托管式服务:

# List services owned by the project `endpointsapis`.
$ gcurl https://servicemanagement.googleapis.com/v1/services?producerProjectId=endpointsapis
{
  "services": [
    {
      "serviceName": "endpointsapis.appspot.com",
      "producerProjectId": "endpointsapis"
    }
    ....
  ]
}

# Get a specified service.
$ gcurl https://servicemanagement.googleapis.com/v1/services/endpointsapis.appspot.com
{
  "serviceName": "endpointsapis.appspot.com",
  "producerProjectId": "endpointsapis"
}

删除托管式服务

通过 services.delete 方法,您可以请求删除托管式服务:

# Delete the managed service `endpointsapis.appspot.com`.
$ gcurl -X DELETE https://servicemanagement.googleapis.com/v1/services/endpointsapis.appspot.com
{
  "name": "operations/services.endpointsapis.appspot.com-1",
  "metadata": {
    "@type":     "type.googleapis.com/google.api.servicemanagement.v1.OperationMetadata",
    "resourceNames": [
      "/services/endpointsapis.appspot.com"
    ],
    "startTime": ...
    "persisted": true
  },
  "response": {
  }
}

services.delete 方法返回一个长时间运行的操作资源,您可以使用 operations.get方法轮询该资源的操作状态,直到完成。如需了解如何执行此操作,请参阅轮询长时间运行的操作

调用 services.delete 方法*不*会立即永久性删除托管式服务。 托管式服务会停用 30 天,之后会被永久性删除。

取消删除托管式服务

通过 services.undelete 方法,您可以恢复以前删除的托管式服务。在删除托管式服务后的 30 天内,您可以使用此方法将其还原。以下代码段会取消删除指定的托管式服务:

# Undelete the managed service `endpointsapis.appspot.com`.
$ gcurl -d '{}' https://servicemanagement.googleapis.com/v1/services/endpointsapis.appspot.com:undelete
{
  "name": "operations/services.endpointsapis.appspot.com-2",
  "metadata": {
    "@type":     "type.googleapis.com/google.api.servicemanagement.v1.OperationMetadata",
    "resourceNames": [
      "/services/endpointsapis.appspot.com"
    ],
    "startTime": ...
    "persisted": true
  },
  "response": {
    "@type": "type.googleapis.com/google.api.servicemanagement.v1.ManagedService",
    "serviceName": "endpointsapis.appspot.com",
    "producerProjectId": "endpointsapis",
    ...
  }
}

services.undelete 方法返回一个长时间运行的操作资源,您可以使用 operations.get方法轮询该资源的操作状态,直到完成。如需了解如何执行此操作,请参阅轮询长时间运行的操作