このセクションでは、プロダクトの一部としてサポートを提供する際のサポート ワークフローについて説明します。
システムを Google と統合して、Google を通じてパートナー ソリューションを購入した顧客にサポートを提供できるようにする必要があります。この統合のために Google から次のものが提供されます。
登録プロセスの一環としてユーザーのサポート資格を確認するために使用するキー。
そのキーを渡してユーザーのサポート資格のステータスを定期的にポーリングできる API(サブスクリプション API)。
ユーザーのサポート ID の取得
サポートの統合では、ユーザーがサポート ID として参照する外部アカウント ID に焦点を当てています。
ユーザーは、次のいずれかの方法でサポート ID を提供します。
- サポート ワークフローを作成し、ワークフローの開始位置に URL を指定します。その後、URL に外部アカウント ID が送信されます。
- パートナー ポータルでソリューションを作成するときに、ユーザーがサポート ID を表示するためにクリックできるボタンを表示するオプションを選択できます。ユーザーは、サポート ID のコピーとメールでの送信、ウェブフォームへの追加、サポート担当者への電話での通知ができるようになります。
サポート ワークフローを実装する場合は、URL の一部として外部アカウント ID を受け入れる必要があります。外部アカウント ID は、次の例のように、URL パスの一部またはクエリ パラメータ値として使用できます。
# External account ID in path http://example.com/mysupportpage/{external_account_id}?someparameter=yes # External account ID as a query parameter http://example.com/mysupportpage?eid={external_account_id}&something_else
URL のテキスト {external_account_id}
は、外部アカウント ID に置き換えられます。Google Cloud Marketplace で複数のプロダクトが一覧表示されている場合は、その URL に対応しているプロダクトを識別するためにクエリ パラメータを含めることができます。
サブスクリプション API の使用
ユーザーの外部アカウント ID を取得すると、Google が提供するサブスクリプション API を使用して、いつでもそれらのアカウントがサポート対象かどうかを確認できます。利用資格は、サブスクリプションと呼ばれるエンティティをチェックすることによってトラッキングされます。
各サブスクリプションには一意のサブスクリプション ID 番号があり、Cloud Marketplace にリストされているプロダクトで顧客ごとに一意のサブスクリプションが作成されるため、サブスクリプション ID でサブスクリプションをクエリして、詳細を確認することもできます。たとえば、開始日、終了日など、プロダクトのお客様の履歴などです。
サブスクリプション API へのアクセス
サブスクリプション API は非公開 API であるため、アクセスする必要があるデベロッパーやプロジェクトを許可リストに登録する必要があります。
許可リストへの登録と設定の手順は次のとおりです。
API ドキュメントにアクセスする必要があるデベロッパーのメールアドレスのリストを、担当の Google Cloud Marketplace パートナー エンジニアまたは cloud-partners@google.com に送信します。これらは、デベロッパーが http://console.developers.google.com へのログインに使用する正確なメールアドレスである必要があります。これらのデベロッパーは、サブスクリプション API のドキュメントにアクセスする権限を付与するグループに追加されます。
プロダクトのプロジェクト ID を Google Cloud Marketplace パートナー エンジニアに送信し、API を呼び出す権限の付与をリクエストします。必要に応じて、複数のプロジェクトを許可リストに登録できます。
https://console.developers.google.com の左上にあるメニューを展開し、[API とサービス] をクリックして、Cloud Billing API を検索して有効にします。
プロジェクトに関連付けられた OAuth2 サービス アカウントを作成し、このアカウントのメールアドレスを Google Cloud Marketplace パートナー エンジニアに送信します。このユーザーは、すべてのサブスクリプションを読み取れるように許可リストに登録され、OAuth ダイアログを使用して顧客の権限をリクエストすることによって行われたリクエストを除くすべてのリクエストを承認するために使用されます。
サブスクリプション API は公開 API ではないため、デフォルトでは Python クライアント ライブラリに含まれていません。この API で Python クライアント ライブラリを使用する予定の場合は、検出ファイルへのアクセスについて Google パートナー エンジニアに連絡する必要があります。
次の初期化の例では、探索ファイルの名前が、探索ファイルがダウンロードされたパスに設定されています。
# Load the local copy of the discovery document f = file(os.path.join(os.path.dirname(__file__), "cloudbilling-subscriptions_discovery.json"), "r") discovery = f.read() f.close() # Construct a service from the local documents service = build_from_document(discovery, base="https://www.googleapis.com/", http=http)
このクライアント ライブラリでは、お客様の認証情報と OAuth2 サービス アカウントの両方の OAuth 認証もサポートされています。詳細については、Python 用 Google API クライアント ライブラリの「OAuth 2.0」ドキュメントをご覧ください。
サブスクリプション API のクエリ
サブスクリプション データにアクセスする許可を得るには、OAuth2 サービス アカウントを作成して、API リクエストの承認に使用するアカウントとして Google に報告する必要があります。そのサービス アカウントに、パートナーのすべての顧客のサブスクリプションに対する読み取りアクセスが許可されます。詳細については、サーバー間アプリケーションに OAuth 2.0 を使用するをご覧ください。
この API は、サブスクリプション リソースを返す読み取り専用の RESTful API であり、次の情報を取得するために使用できます。
- name - 単一のサブスクリプション リソースの識別子。
- externalAccountId - 単一の請求先アカウントの識別子。
- version - レコードが変更されるたびに更新されるバージョン番号。これを使用して、最後の読み取り以降の変更を簡単に検出できます。
- status - 次のいずれかの値。
- ACTIVE - サブスクリプションは現在アクティブであり、顧客はサポートを受けることができます。サブスクリプションがアクティブと見なされるのは、過去 30 日間にアカウントにアクティブな VM があった場合です。
- COMPLETE - 顧客はプロダクトで実行中のアクティブな VM がなく、過去 30 日間も使用していないため、サブスクリプションはアクティブではなくなっています。
- subscribedResources - このサブスクリプションでカバーされるリソースのリスト。
- startDate - サブスクリプションの開始日(RFC 3339 形式の文字列)。
- endDate - サブスクリプションが終了した日付(終了した場合)。RFC 3339 形式の文字列としてフォーマットされます。
- Label for last heartbeat timestamp (with key) - このラベルの値は、このプロダクトがある VM の前回のハートビートのタイムスタンプを示します。例:
cloudmarketplacepartner.googleapis.com/last_heartbeat_us
。
顧客が Google Cloud Platform Console からサイトにアクセスするためのリンクをクリックするとき、お客様にそのリンクを使用する権限があることを、次のリクエストを行うことにより確認する必要があります。
- 外部アカウント ID のサブスクリプションを一覧表示します
- プロダクトのアクティブなサブスクリプションを検索します
- サブスクリプション ID を使ってサブスクリプション情報を取得します
そのお客様が承認されたユーザーである場合は、このリクエストが成功します。そのお客様がそのサブスクリプションに対して承認されたユーザーではない場合は、unauthorized エラーコード(HTTP 403)が返されます。
この操作を行うには、登録プロセスで標準の OAuth リクエスト フローを使用して、サブスクリプション データを読み取る許可をお客様にリクエストする必要があります。
その後のサブスクリプション データの更新のリクエストには、以前に作成したサービス アカウントを使用します。
カスタマー サポート登録フロー
顧客が Cloud Marketplace または Compute Engine API を使用してプロダクトをデプロイすると、Google Cloud Console にサポートへの登録を行うサイトへのリンクが表示されます。このリンクに、そのアカウントに使用される外部アカウント ID が含まれます。
リンク先のサイトでは、顧客がアカウントを作成して、必要な連絡先情報を提供できるようにする必要があります。Google がパートナーに顧客の個人情報を提供することはありません。顧客のアカウントと Google から提供される外部アカウント ID とのマッピングの管理はパートナーの責任です。