このページでは、cloudsupport.googleapis.com
API のバージョン 1 の使用を開始する方法について説明します。この API のバージョン 2 は現在、一般提供前リリースとしてのみ利用可能です。詳細については、リリース ステージの説明をご覧ください。
プロセスの概要
このセクションでは、この API の使用を開始するための大まかな手順について説明します。
- カスタマーケア チームが、お客様用のサポート アカウントを作成します。これは、以降のすべてのオペレーションの前提条件となります。
お客様は、この API へのアクセスに使用するプロジェクト ID をカスタマーケア チームに指定します。このプロジェクトは、この API 用に指定されたユーザー プロジェクトになります。
このプロジェクトは API が有効化されるリソースになりますが、API を呼び出す認証情報はどの Google Cloud プロジェクトからでも使用できます。
ユーザーがコンシューマ プロジェクトの API キーを生成します。この API キーを使用して、ユーザーが API を呼び出します。API キーを生成するには、API キーの使用をご覧ください。
カスタマーケア チームは、正しい公開設定ラベルを適用して、お客様のチームの API アクセスを許可リストに登録します。
カスタマーケア チームは、サービス アカウントによるカスタマー サポート アカウントへのアクセスを許可リストに登録します。
お客様は、Google Cloud コンソールで Cloud Support API ページにアクセスし、[有効にする] をクリックして、Cloud Support API を有効にします。
サービス アカウントの統合が必要な場合:
お客様が、サービス アカウントについての手順に沿って、1 つ以上のサービス アカウントをプロビジョニングします。
Google Cloud コンソールの [IAM] タブで、サービス アカウントに
Organization Viewer
ロールを付与するか、resourcemanager.organizations.get
権限を付与するその他のロールを付与します。これはプログラムで行うこともできます。
gcloud organizations add-iam-policy-binding organizations/ord-id --role roles/resourcemanager.organizationViewer --member service-account
Google Cloud コンソールの [サポート] > [設定] ページから、これらのサービス アカウントをサポート ユーザーとして 1 つ以上追加できます。
認証情報を共有して、JIRA コネクタや他のアプリケーションがサービス アカウントにアクセスできるようにします。手順については、認証の概要をご覧ください。
すでに認証情報管理ツールを使用している場合は、Google Cloud サービス アカウントに対して同じツールを利用するのが合理的です。
お客様のアプリケーションは、エンドユーザー認証情報ではなく、サービス アカウントの認証情報を使用して、(エンドユーザーのように)通常の API 呼び出しを行います。
OAuth 2.0 認証が必要な場合:
- Google で OAuth2 を使用した認証をまだ行っていない場合は、
OAuth 2.0 を使用して Google API にアクセスするのガイドに沿って設定します。特に、増分承認に関するセクションに注意してください。 - アプリケーションで使用される 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
- Google Cloud への一般的なアクセス権の場合:
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();