Primeiros passos com a API Service Control

Nesta página, descrevemos as etapas básicas necessárias para configurar a API Service Control na máquina local e testá-la usando o comando curl.

Configuração inicial

A API Service Control funciona com serviços gerenciados. Para usar a API Service Control, você precisa primeiro criar um serviço gerenciado usando a API Service Management. Para mais informações, consulte Primeiros passos com a API Service Management.

Depois de criar um serviço gerenciado, você precisa concluir as etapas a seguir antes de usar a API Service Control do seu serviço gerenciado.

  1. Acesse o Console do Google Cloud Platform e selecione o projeto a que seu serviço gerenciado pertence.
  2. No Console do Google Cloud Platform, ative a API Service Control para o projeto.
  3. Crie uma nova conta de serviço para teste local e faça o download do respectivo arquivo de credencial JSON na sua máquina local. Nos exemplos a seguir, supomos que o caminho do arquivo seja ~/credentials.json.
  4. Conceda o papel roles/servicemanagement.serviceController à conta de serviço recém-criada. Consulte Controle de acesso para ver mais detalhes.
  5. Instale o oauth2l na sua máquina local para acessar o sistema do Google OAuth.

Testar com curl

  1. Primeiro, verifique sua configuração inicial:
oauth2l header --json ~/credentials.json cloud-platform
  1. Se a configuração inicial estiver correta, você verá a seguinte saída:

    Authorization: Bearer y29.xxxxxxx
    
  2. Defina um alias de shell conveniente para chamar as REST APIs do Google:

alias gcurl='curl -H "$(oauth2l header --json ~/credentials.json cloud-platform userinfo.email)" -H "Content-Type: application/json" '

Na sequência de comandos shell a seguir, veja as etapas incrementais para chamar a API Service Control.

# Call with invalid service name "invalid.com". For security and privacy
# reasons, the permission check typically happens before other checks.
$ gcurl -d '{}' https://servicecontrol.googleapis.com/v1/services/invalid.com:check
{
  "error": {
    "code": 403,
    "message": "Permission 'servicemanagement.services.check' denied on service 'invalid.com'.",
    "status": "PERMISSION_DENIED"
  }
}

# Call without proper permission on a service.
$ gcurl -d '{}' https://servicecontrol.googleapis.com/v1/services/servicecontrol.googleapis.com:check
{
  "error": {
    "code": 403,
    "message": "Permission 'servicemanagement.services.check' denied on service 'servicecontrol.googleapis.com'.",
    "status": "PERMISSION_DENIED"
  }
}

# Call with invalid request.
$ gcurl -d '{}' https://servicecontrol.googleapis.com/v1/services/endpointsapis.appspot.com:check
{
  "error": {
    "code": 400,
    "message": "Request contains an invalid argument.",
    "status": "INVALID_ARGUMENT"
  }
}

# This and following call assume that the service, operation name and
# project being checked are "endpointsapis.appspot.com",
# "google.example.hello.v1.HelloService.GetHello" and
# "endpointsapis-consumer" correspondingly.
# Change to the name of your managed service, operation, and project.
# Call with invalid request.
$ gcurl -d '{
  "operation": {
    "operationId": "123e4567-e89b-12d3-a456-426655440000",
    "consumerId": "project:endpointsapis-consumer",
    "startTime": "2016-06-12T22:00:15Z",
    "operationName": "google.example.hello.v1.HelloService.GetHello"
  }
}' https://servicecontrol.googleapis.com/v1/services/endpointsapis.appspot.com:check
{
  "checkErrors": [
  {
    "code": "SERVICE_NOT_ACTIVATED",
    "detail": "Service 'endpointsapis.appspot.com' is not enabled for consumer 'project:endpointsapis-consumer'."
  }
  ]
}

# Successful call to "services.check" method after the API is enabled for
# the project.
$ gcurl -d '{
  "operation": {
    "operationId": "123e4567-e89b-12d3-a456-426655440000",
    "consumerId": "project:endpointsapis-consumer",
    "startTime":"2016-07-31T05:20:00Z",
    "operationName":"google.example.hello.v1.HelloService.GetHello"
  }
}' https://servicecontrol.googleapis.com/v1/services/endpointsapis.appspot.com:check
{
  "operationId": "123e4567-e89b-12d3-a456-426655440000"
}

Depois de concluir as etapas anteriores, você terá:

  • uma configuração funcional de teste local para chamar quaisquer APIs do Google Cloud Platform;
  • um serviço funcional para usar com a API Service Management e a API Service Control;
  • uma conta de serviço com as permissões corretas para executar o serviço.
Esta página foi útil? Conte sua opinião sobre:

Enviar comentários sobre…

Documentação do Service Infrastructure