App Optimize API がレポートを作成したら、レポートの費用と使用率のデータを取得します。このオペレーションでは、レポートのリクエスト時に指定したディメンションと指標に従って構造化された列と行として、この情報がダウンロードされます。
この API リクエストは、レポートの構成設定のみを返すレポートのメタデータの取得とは異なります。
始める前に
-
アカウントにログインします。 Google Cloud を初めて使用する場合は、 アカウントを作成して、実際のシナリオで Google プロダクトのパフォーマンスを評価してください。 Google Cloud新規のお客様には、ワークロードの実行、テスト、デプロイができる無料クレジット $300 分を差し上げます。
Verify that you have the permissions required to complete this guide.
このドキュメントのサンプルをどのように使うかに応じて、タブを選択してください。
gcloud
コンソールで Cloud Shell をアクティブにします。 Google Cloud
コンソールの下部にある Google Cloud Cloud Shell セッションが開始し、コマンドライン プロンプトが表示されます。Cloud Shell はシェル環境です。Google Cloud CLI がすでにインストールされており、現在のプロジェクトの値もすでに設定されています。セッションが初期化されるまで数秒かかることがあります。
本番環境での認証の設定については、 認証ドキュメントの Google Cloud で実行されるコードのアプリケーションのデフォルト認証情報を設定する Google Cloud をご覧ください。
Python
- App Optimize API 用の Python クライアント ライブラリ をインストールします。
-
ローカル開発環境でこのページの Python サンプルを使用するには、gcloud CLI をインストールして 初期化し、ユーザー認証情報を使用してアプリケーションのデフォルト認証情報を設定します。
-
Google Cloud CLI をインストールします。
-
外部 ID プロバイダ(IdP)を使用している場合は、まず フェデレーション ID を使用して gcloud CLI にログインする必要があります。
-
ローカルシェルを使用している場合は、ユーザー アカウントのローカル認証情報を作成します。
gcloud auth application-default login
Cloud Shell を使用している場合は、この操作を行う必要はありません。
認証エラーが返され、外部 ID プロバイダ (IdP)を使用している場合は、フェデレーション ID を使用して gcloud CLI にログインしていることを確認します。
詳細については、 認証ドキュメントのローカル開発環境の ADC の設定 をご覧ください。 Google Cloud
本番環境での認証の設定については、 認証ドキュメントの Google Cloud で実行されるコードのアプリケーションのデフォルト認証情報を設定する Google Cloud をご覧ください。
-
REST
このページの REST API サンプルをローカル開発環境で使用するには、 gcloud CLI に指定した認証情報を使用します。
Google Cloud CLI をインストールします。
外部 ID プロバイダ(IdP)を使用している場合は、まず フェデレーション ID を使用して gcloud CLI にログインする必要があります。
詳細については、 REST を使用して認証する 認証ドキュメントの Google Cloud をご覧ください。
本番環境での認証の設定については、 認証ドキュメントの Google Cloud で実行されるコードのアプリケーションのデフォルト認証情報を設定する Google Cloud をご覧ください。
必要なロール
レポートのデータを読み取るために必要な権限を取得するには、レポート リソースを所有するプロジェクトに対するApp Optimize 閲覧者 (roles/appoptimize.viewer)IAM ロールを付与するよう管理者に依頼してください。ロールの付与については、プロジェクト、フォルダ、組織に対するアクセス権の管理をご覧ください。
必要な権限は、カスタム ロールや他の事前定義 ロールから取得することもできます。
レポートデータを読み取る
完了したレポートからデータを読み取るには、以下の手順に沿って好きな方法で表を作ってください。
gcloud
gcloud beta app-optimize reports read コマンドを使用して、レポートのデータを取得します。
gcloud beta app-optimize reports read REPORT_ID \
--project=PROJECT_ID \
--location=global
次のように置き換えます。
PROJECT_ID: 読み取るレポート リソースを所有する Google Cloud プロジェクトの ID。REPORT_ID: 読み取るレポートの ID。この ID はレポートの作成時に指定され、レポートを一覧表示することで取得できます。
gcloud コマンドはページ分割を自動的に処理し、リクエストされたすべてのリソースを返します。
cost フィールドの値については、
費用指標の解釈をご覧ください。
データの詳細と制限事項については、
データを理解するをご覧ください。
Python
次の Python コードでは、AppOptimizeClient.read_report() を使用してレポートのデータを読み取ります。
from google.cloud import appoptimize_v1beta
project_id = "PROJECT_ID"
report_id = "REPORT_ID"
# Create the App Optimize client and read a report's data
client = appoptimize_v1beta.AppOptimizeClient()
request = appoptimize_v1beta.ReadReportRequest(
name=f"projects/{project_id}/locations/global/reports/{report_id}"
)
result = client.read_report(request=request)
# Display the report data
print(result)
次のように置き換えます。
PROJECT_ID: 読み取るレポート リソースを所有する Google Cloud プロジェクトの ID。REPORT_ID: 読み取るレポートの ID。この ID はレポートの作成時に指定され、レポートを一覧表示することで取得できます。
クライアント ライブラリはページ分割を自動的に処理し、イテレータから結果を生成します。
cost フィールドの値については、
費用指標の解釈をご覧ください。
データの詳細と制限事項については、
データを理解するをご覧ください。
REST
HTTP POST リクエストを REST API の :read カスタム メソッドに送信します。
次の
curlコマンドを使用して、レポートデータの最初のページを読み取るリクエストを送信します。curl -X POST -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ -d '{"pageSize": PAGE_SIZE}' \ "https://appoptimize.googleapis.com/v1beta/projects/PROJECT_ID/locations/global/reports/REPORT_ID:read"次のように置き換えます。
PROJECT_ID: 読み取るレポート リソースを所有する Google Cloud プロジェクトの ID。REPORT_ID: 読み取るレポートの ID。この ID はレポートの作成時に指定され、レポートを一覧表示することで取得できます。PAGE_SIZE: ページごとに返す行の最大数。大きな値を指定した場合でも、サーバーはページごとに最大 1,000 行を返します。レスポンスには 10 MB のサイズ制限もあるため、その制限内に収まるように返される行数が少なくなることがあります。pageSizeが省略されている場合は、デフォルトのサイズが使用されます。
リクエストが成功すると、API はレポートのスキーマと行を含む JSON レスポンスを返します。成功したレスポンスの例を次に示します。
{ "rows": [ [ "//apphub.googleapis.com/projects/123456789/locations/us-central1/applications/my-app-1", { "currency_code": "USD", "units": "106", "nanos": 321590000 } ], [ "//apphub.googleapis.com/projects/123456789/locations/us-central1/applications/my-app-2", { "currency_code": "USD", "units": "797", "nanos": 641691000 } ] ], "columns": [ { "name": "application", "type": "STRING" }, { "name": "cost", "type": "RECORD", "columns": [ { "name": "currency_code", "type": "STRING" }, { "name": "units", "type": "INT64" }, { "name": "nanos", "type": "INT64" } ] } ], "nextPageToken": "AABBCCddeeffGGHHiiJJkkLL" }costフィールドの値については、 費用指標の解釈をご覧ください。 データの詳細と制限事項については、 データを理解するをご覧ください。レスポンスに
nextPageTokenフィールドが含まれている場合、レポートには追加の行が含まれています。次の結果ページを取得するには、JSON 本文のpageTokenフィールドにこのトークンを含めて、別のPOSTリクエストを行います。curl -X POST -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ -d '{"pageToken": "NEXT_PAGE_TOKEN", "pageSize": PAGE_SIZE}' \ "https://appoptimize.googleapis.com/v1beta/projects/PROJECT_ID/locations/global/reports/REPORT_ID:read"次のように置き換えます。
NEXT_PAGE_TOKEN: 前のレスポンスで受信したnextPageTokenの値。PAGE_SIZE: ページごとに返す行の最大数。ページ リクエスト間でこの値を変更できますが、サーバー側の制限は引き続き適用されます。
レスポンスに
nextPageTokenが含まれなくなるまで、このプロセスを繰り返します。これは、すべてのレポートデータを取得したことを示します。