Erste Schritte mit der Service Control API

Auf dieser Seite werden die grundlegenden Schritte beschrieben, die erforderlich sind, um die Service Control API auf Ihrem lokalen Computer einzurichten und mit dem Befehl curl zu testen.

Ersteinrichtung

Die Service Control API arbeitet mit verwalteten Diensten zusammen. Um die Service Control API zu verwenden, müssen Sie zuerst einen verwalteten Dienst mithilfe der Service Management API erstellen. Weitere Informationen finden Sie unter Service Management – Erste Schritte.

Nachdem Sie einen verwalteten Dienst erstellt haben, müssen Sie folgende Schritte ausführen, bevor Sie die Service Control API über Ihren verwalteten Dienst verwenden.

  1. Wählen Sie in der Google Cloud Console das Projekt aus, zu dem Ihr verwalteter Dienst gehört.
  2. Aktivieren Sie in der Google Cloud Console die Service Control API für das Projekt.
  3. Erstellen Sie ein neues Dienstkonto für lokale Tests und laden Sie die Datei mit den JSON-Zugangsdaten auf ihren lokalen Computer herunter. In den folgenden Beispielen wird davon ausgegangen, dass der Dateipfad ~/credentials.json ist.
  4. Weisen Sie dem neu erstellten Dienstkonto die Rolle roles/servicemanagement.serviceController zu. Weitere Informationen finden Sie unter Zugriffssteuerung.
  5. Installieren Sie oauth2l auf Ihrem lokalen Computer, um die Interaktion mit dem Google OAuth-System zu ermöglichen.

Mit curl testen

  1. Überprüfen Sie Ihre Ersteinrichtung:
oauth2l header --json ~/credentials.json cloud-platform
  1. Wenn Ihre Ersteinrichtung korrekt ist, sollte die Ausgabe folgendermaßen aussehen:

    Authorization: Bearer y29.xxxxxxx
    
  2. Definieren Sie einen geeigneten Shell-Alias zum Aufrufen der Google REST APIs:

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

Die folgende Abfolge von Shell-Befehlen zeigt die Schritte für den Aufruf der Service Control API.

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

Ergebnis nach Ausführung der vorherigen Schritte:

  • Sie haben eine funktionsfähige lokale Testumgebung, in der Sie beliebige Google Cloud Platform APIs aufrufen können.
  • Sie haben einen funktionsfähigen Dienst, den Sie mit der Service Management API und der Service Control API verwenden können.
  • Sie haben ein Dienstkonto mit den entsprechenden Berechtigungen, das Sie für die Ausführung Ihres Dienstes verwenden können.