Guide de l'utilisateur de l'API Cloud Support

Restez organisé à l'aide des collections Enregistrez et classez les contenus selon vos préférences.

Cette page explique comment débuter avec la version 1 de l'API cloudsupport.googleapis.com. La version 2 de cette API n'est actuellement disponible qu'en version pré-DG. Pour en savoir plus, consultez les descriptions des étapes de lancement.

Présentation du processus

Cette section décrit le processus général de démarrage avec l'API.

  1. L'équipe du Cloud Customer Care crée un compte d'assistance pour le client. Il s'agit d'une condition préalable à toutes les opérations supplémentaires.
  2. Le client spécifie à l'équipe Customer Care le numéro du projet qu'il souhaite utiliser pour accéder à l'API. Ce projet sera le projet client désigné pour l'API.

    Ce projet sera la ressource sur laquelle l'API est activée, mais les identifiants permettant d'appeler l'API peuvent être utilisés à partir de n'importe quel projet Google Cloud.

  3. Le client génère une clé API pour le projet client. Le client utilisera cette clé API pour appeler l'API. Pour générer une clé API, consultez la page Utiliser des clés API.

  4. L'équipe Customer Care ajoute à la liste d'autorisation l'accès à l'API des clients (en appliquant les libellés de visibilité appropriés).

  5. L'équipe Customer Care ajoute à la liste d'autorisation le compte de service client pour l'accès au compte de service.

  6. Le client active l'API Cloud Support en accédant à la page de l'API Cloud Support dans la console Google Cloud, puis en cliquant sur ACTIVER.

    Accéder à la page de l'API Cloud Support

Si vous souhaitez intégrer le compte de service :

  1. Le client provisionne un ou plusieurs comptes de service en suivant les instructions de la section Comprendre les comptes de service.

  2. Le client attribue au compte de service le rôle Organization Viewer dans l'onglet IAM de Google Cloud Console, ou tout autre rôle accordant l'autorisation resourcemanager.organizations.get.

    Vous pouvez également effectuer cette opération de manière automatisée :

      gcloud organizations add-iam-policy-binding
      organizations/ord-id
      --role roles/resourcemanager.organizationViewer
      --member service-account
     

  3. Le client ajoute un ou plusieurs de ces comptes de service en tant qu'utilisateurs de l'assistance via la page Paramètres d'assistance > de Google Cloud Console.

  4. Le client permet à son connecteur JIRA ou à d'autres applications d'accéder au compte de service en partageant des identifiants. Consultez la page Présentation de l'authentification pour connaître la procédure.

  5. Si le client dispose déjà d'un outil de gestion des identifiants, il est judicieux d'utiliser le même outil pour les comptes de service Google Cloud.

  6. Les applications du client effectuent des appels d'API réguliers (comme le ferait un utilisateur final), en utilisant les identifiants du compte de service au lieu des identifiants de l'utilisateur final.

Si vous souhaitez utiliser l'authentification OAuth 2.0, procédez comme suit :

  1. Si vous ne vous êtes pas encore authentifié auprès de Google à l'aide de OAuth2, configurez-le en exécutant la commande
    . Pour cela, suivez les instructions d'accès à API OAuth 2.0. Portez une attention particulière à la section sur l'autorisation incrémentielle.
  2. Assurez-vous que les deux champs d'application suivants sont ajoutés aux ID clients OAuth2 utilisés par votre application :
    • Pour l'accès général à Google Cloud : https://www.googleapis.com/auth/cloud-platform ou https://www.googleapis.com/auth/cloud-platform.read-only
    • Pour obtenir ou créer des demandes d'assistance et d'autres données d'assistance, procédez comme suit : https://www.googleapis.com/auth/cloudsupport

Récupérer la définition de l'API

La définition de l'API est diffusée en tant que document de découverte Google Cloud.

Voici un exemple : Remplacez <API_KEY> par une clé API générée à partir du projet client lors d'une étape précédente.

curl 'https://cloudsupport.googleapis.com/$discovery/rest?key=<API_KEY>&labels=TRUSTED_TESTER&version=v1alpha2' > /tmp/cloudsupport.v1alpha2.json

API REST

Pour tous les points de terminaison répertoriés ci-dessous, la valeur de <host> doit être remplacée par cloudsupport.googleapis.com.

Demandes

Récupérer et créer des demandes d'assistance

Rôles requis
Type Rôle
IAM Lecteur de compte d'assistance (organisation)
IAM Lecteur d'organisation (organisation)

GetCase

Récupérer la demande d'assistance spécifiée.

Format REST
GET <host>/v1/{name=supportAccounts/*/cases/*}
Paramètres

Compte d'assistance et numéro de demande spécifiés dans l'URL de la requête.

Exemple
curl -v -H 'Authorization: Bearer <TOKEN>' -H 'Content-Type:  application/json' https://cloudsupport.googleapis.com/v1/supportAccounts/gcp-sa-1234/cases/5678

CreateCase

Crée une demande et l'associe au SupportAccount donné.

Format REST
POST <host>/v1/{parent=supportAccounts/*}/cases
Paramètres
Nom Type Description
case Case

Un objet de la demande.

Exemple :


     { \
        display_name: "My test case for Istio", \
        description: "Istio network latency spike", \
        category: "Compute", \
        component: "Istio", \
        subcomponent: "Networking", \
        time_zone: "-07:00", \
        cc_addresses: ["foo@domain.com", "bar@domain.com"], \
        project_id: "my-gcp-test-project-1234", \
        priority: 3 \
      }
      

Exemple
curl -v -H 'Authorization: Bearer <TOKEN>' -H 'Content-Type:  application/json' -X POST -d '{ display_name: "My app is down", description: "Datastore appears to be down so my app is broken.", component: "Cloud Datastore", subcomponent: "Availability / Latency", time_zone: "-07:00", project_id: "my-super-project", category: "Storage & Databases", priority: 3 }' https://cloudsupport.googleapis.com/v1/supportAccounts/gcp-sa-1234/cases

Générer des bibliothèques clientes

Clonez le générateur de clients des API Google :

cd /tmp/; git clone https://github.com/google/apis-client-generator.git;

Assurez-vous que Python 2.7 est installé :

sudo apt-get install python

Assurez-vous que PIP est installé :

sudo apt-get install python-pip

Installez les dépendances :

pip install google-apis-client-generator

Générez des bibliothèques clientes :

Cette commande génère un ou deux avertissements commençant par WARNING:root:object without properties. Vous pouvez les ignorer. La bibliothèque cliente sera toujours générée.

./generate.sh --input=/tmp/cloudsupport.v1alpha2.json --output_dir=/tmp/cloudsupport_generated --language=java

Utiliser l'API

Avant de commencer

  • Ajoutez une dépendance sur la bibliothèque cliente des API Java.
  • Ajoutez une dépendance au code généré à l'étape ci-dessus.
  • Assurez-vous que votre code est construit correctement.

    // Shared constants
    String CLOUD_SUPPORT_SCOPE = "https://www.googleapis.com/auth/cloudsupport";
    
    // Customer specific config
    String SERVICE_ACCOUNT_ID = "<... service account id ...>";
    File SERVICE_ACCOUNT_PRIVATE_KEY = new File("<... p12 key file ...>");
    String SUPPORT_ACCOUNT_ID = "supportAccounts/gcp-sa-<......>";
    
    // Service setup
    JsonFactory jsonFactory = JacksonFactory.getDefaultInstance();
    HttpTransport httpTransport = GoogleNetHttpTransport.newTrustedTransport();
    
    // This section is for service account authentication
    // If you are using OAuth2 instead, follow guide at
    // https://developers.google.com/api-client-library/java/google-oauth-java-client/oauth2
    GoogleCredential credential = new GoogleCredential.Builder()
      .setTransport(httpTransport)
      .setJsonFactory(jsonFactory)
      .setServiceAccountId(SERVICE_ACCOUNT_ID)
      .setServiceAccountPrivateKeyFromP12File(SERVICE_ACCOUNT_PRIVATE_KEY)
      .setServiceAccountScopes(Collections.singleton(CLOUD_SUPPORT_SCOPE))
      .build();
    
    // Main API service is ready to use!
    CloudSupport supportService = new CloudSupport.Builder(httpTransport, jsonFactory, credential).build();
    
    // Each call will look something like this:
    SupportAccount account = supportService.supportAccounts().get(SUPPORT_ACCOUNT_ID).execute();