Premiers pas avec l'API Service Control

Cette page décrit les étapes de base nécessaires à la configuration de l'API Service Control sur votre ordinateur local et à son test à l'aide de la commande curl.

Configuration initiale

L'API Service Control fonctionne avec les services gérés. Pour utiliser l'API Service Control, vous devez d'abord créer un service géré à l'aide de l'API Service Management. Pour plus d'informations, consultez la page Premiers pas avec l'API Service Management.

Après avoir créé un service géré, vous devez effectuer les étapes suivantes pour pouvoir utiliser l'API Service Control à partir du service géré.

  1. Accédez à Google Cloud Console et sélectionnez le projet auquel appartient votre service géré.
  2. Dans Google Cloud Console, activez l'API Service Control pour le projet.
  3. Créez un compte de service pour les tests locaux et téléchargez son fichier d'identifiants JSON sur votre ordinateur local. Les exemples suivants supposent que le chemin du fichier est ~/credentials.json.
  4. Attribuez le rôle roles/servicemanagement.serviceController au nouveau compte de service. Pour plus de précisions, consultez la page Contrôle des accès.
  5. Installez oauth2l sur votre ordinateur local pour permettre l'interaction avec le système Google OAuth.

Tester avec curl

  1. Vérifiez d'abord la configuration initiale :
oauth2l header --json ~/credentials.json cloud-platform
  1. Si votre configuration initiale est correcte, vous obtenez le résultat ci-dessous :

    Authorization: Bearer y29.xxxxxxx
    
  2. Définissez un alias d'interface système pratique pour appeler les API REST de Google :

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

La séquence de commandes d'interface système suivante illustre les étapes incrémentielles permettant d'appeler l'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"
}

Après avoir terminé les étapes précédentes, vous disposez des éléments suivants :

  • Une configuration fonctionnelle pour réaliser des tests locaux et appeler toutes les API de Google Cloud Platform
  • Un service fonctionnel que vous pouvez utiliser avec l'API Service Management et l'API Service Control
  • Un compte de service doté des autorisations appropriées pour exécuter votre service