Como criar e excluir serviços gerenciados

Nesta página, descrevemos como gerenciar o ciclo de vida de serviços gerenciados usando a API Service Management.

O ciclo de vida padrão de um serviço gerenciado inclui as seguintes ações:

  • Usar o método services.create para criar um serviço gerenciado. Depois de criá-lo, saiba mais sobre como usar a API com configuração de serviço e distribuições nos respectivos guias.
  • Usar o método services.delete para descartar um serviço gerenciado que você possui. A Service Management faz a exclusão reversível do serviço gerenciado e o mantém por 30 dias.
  • Usar o método services.undelete para reviver um serviço gerenciado excluído dentro da janela de retenção de 30 dias.

Antes de começar

Para executar os exemplos deste guia, primeiro siga as instruções para concluir a configuração inicial em Primeiros passos com a API Service Management.

Como criar um serviço gerenciado

Você pode criar um serviço gerenciado usando o método services.create. É necessário especificar um nome de serviço compatível com DNS e um nome de domínio verificado. Para saber como atender a esses requisitos, consulte Como configurar endpoints.

O seguinte snippet de código cria um serviço com o nome endpointsapis.appspot.com no projeto endpointsapis:

# 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",
    ...
  }
}

O método services.create retorna um recurso de operação de longa duração que você pode pesquisar pelo status da operação usando o método operations.get até que esteja pronto. Para saber como fazer isso, consulte Como pesquisar operações de longa duração.

Como receber serviços

Você pode listar serviços ou recuperar um serviço gerenciado específico usando os métodos services.list ou services.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"
}

Como excluir um serviço gerenciado

O método services.delete permite solicitar que um serviço gerenciado seja excluído:

# 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": {
  }
}

O método services.delete retorna um recurso de operação de longa duração que você pode pesquisar pelo status da operação usando o método operations.get até que esteja pronto. Para saber como fazer isso, consulte Como pesquisar operações de longa duração.

Chamar o método services.delete *não* exclui o serviço gerenciado de modo imediato e permanente. O serviço gerenciado fica desativado por 30 dias, após o que é permanentemente excluído.

Como cancelar a exclusão de um serviço gerenciado

O método services.undelete permite reviver um serviço gerenciado excluído anteriormente. Você pode usar esse método para restaurar serviços gerenciados até 30 dias após a exclusão. O snippet de código a seguir cancela a exclusão do serviço gerenciado especificado:

# 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",
    ...
  }
}

O método services.undelete retorna um recurso de operação de longa duração que você pode pesquisar pelo status da operação usando o método operations.get até que esteja pronto. Para saber como fazer isso, consulte Como pesquisar operações de longa duração.