Cloud Support API ユーザーガイド

このページでは、cloudsupport.googleapis.com API のバージョン 1 の使用を開始する方法について説明します。この API のバージョン 2 は現在、一般提供前リリースとしてのみ利用可能です。詳細については、リリース ステージの説明をご覧ください。

プロセスの概要

このセクションでは、この API の使用を開始するための大まかな手順について説明します。

  1. カスタマーケア チームが、お客様用のサポート アカウントを作成します。これは、以降のすべてのオペレーションの前提条件となります。
  2. お客様は、この API へのアクセスに使用するプロジェクト ID をカスタマーケア チームに指定します。このプロジェクトは、この API 用に指定されたユーザー プロジェクトになります。

    このプロジェクトは API が有効化されるリソースになりますが、API を呼び出す認証情報はどの Google Cloud プロジェクトからでも使用できます。

  3. ユーザーがコンシューマ プロジェクトの API キーを生成します。この API キーを使用して、ユーザーが API を呼び出します。API キーを生成するには、API キーの使用をご覧ください。

  4. カスタマーケア チームは、正しい公開設定ラベルを適用して、お客様のチームの API アクセスを許可リストに登録します。

  5. カスタマーケア チームは、サービス アカウントによるカスタマー サポート アカウントへのアクセスを許可リストに登録します。

  6. お客様は、Google Cloud コンソールで Cloud Support API ページにアクセスし、[有効にする] をクリックして、Cloud Support API を有効にします。

    Cloud Support API のページに移動

サービス アカウントの統合が必要な場合:

  1. お客様が、サービス アカウントについての手順に沿って、1 つ以上のサービス アカウントをプロビジョニングします。

  2. Google Cloud コンソールの [IAM] タブで、サービス アカウントに Organization Viewer ロールを付与するか、resourcemanager.organizations.get 権限を付与するその他のロールを付与します。

    これはプログラムで行うこともできます。

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

  3. Google Cloud コンソールの [サポート] > [設定] ページから、これらのサービス アカウントをサポート ユーザーとして 1 つ以上追加できます。

  4. 認証情報を共有して、JIRA コネクタや他のアプリケーションがサービス アカウントにアクセスできるようにします。手順については、認証の概要をご覧ください。

  5. すでに認証情報管理ツールを使用している場合は、Google Cloud サービス アカウントに対して同じツールを利用するのが合理的です。

  6. お客様のアプリケーションは、エンドユーザー認証情報ではなく、サービス アカウントの認証情報を使用して、(エンドユーザーのように)通常の API 呼び出しを行います。

OAuth 2.0 認証が必要な場合:

  1. Google で OAuth2 を使用した認証をまだ行っていない場合は、
    OAuth 2.0 を使用して Google API にアクセスするのガイドに沿って設定します。特に、増分承認に関するセクションに注意してください。
  2. アプリケーションで使用される OAuth2 クライアント ID に、次の 2 つのスコープが追加されていることを確認します。
    • Google Cloud への一般的なアクセス権の場合: https://www.googleapis.com/auth/cloud-platform または https://www.googleapis.com/auth/cloud-platform.read-only
    • サポート チケットとその他のサポート関連データを取得または作成するためのアクセス権の場合: https://www.googleapis.com/auth/cloudsupport

API 定義の取得

API 定義は Google Cloud ディスカバリ ドキュメントとして提供されています。

次に例を示します。<API_KEY> は、前の手順でコンシューマ プロジェクトから生成した API キーに置き換えます。

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

REST API

次に記載のすべてのエンドポイントについて、<host> の値を cloudsupport.googleapis.com に置き換える必要があります。

ケース

サポートケースの取得と作成を行います。

必要なロール
タイプ ロール
IAM サポート アカウント閲覧者(組織)
IAM 組織閲覧者(組織)

GetCase

指定したサポートケースを取得します。

REST 形式
GET <host>/v1/{name=supportAccounts/*/cases/*}
パラメータ

リクエスト URL で指定されたサポート アカウントおよびケース番号。

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

CreateCase

ケースを作成し、所定の SupportAccount に関連付けます。

REST 形式
POST <host>/v1/{parent=supportAccounts/*}/cases
パラメータ
名前 タイプ 説明
case Case

ケース オブジェクト。

例:


     { \
        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 \
      }
      

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

クライアント ライブラリの生成

Google API クライアント生成ツールのクローンを作成します。

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

Python 2.7 がインストールされていることを確認します。

sudo apt-get install python

PIP がインストールされていることを確認します。

sudo apt-get install python-pip

依存関係をインストールします。

pip install google-apis-client-generator

クライアント ライブラリを生成します。

このコマンドにより、WARNING:root:object without properties で始まる 1 つまたは 2 つの警告が生成されます。これは無視しても問題ありません。クライアント ライブラリは生成されます。

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

API の使用

始める前に

  • API クライアント ライブラリ Java で依存関係を追加する
  • 前の手順で生成したコードに依存関係を追加する。
  • コードが正常にビルドされたことを確認する

    // 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();