レポートのデータを読み取る

App Optimize API でレポートを作成したら、レポートの費用と使用率のデータを取得します。このオペレーションでは、レポートのリクエスト時に指定したディメンションと指標に従って構造化された列と行として、この情報がダウンロードされます。

この API リクエストは、レポートの構成設定のみを返すレポートのメタデータの取得とは異なります。

始める前に

  1. Google Cloud アカウントにログインします。 Google Cloudを初めて使用する場合は、 アカウントを作成して、実際のシナリオでの Google プロダクトのパフォーマンスを評価してください。新規のお客様には、ワークロードの実行、テスト、デプロイができる無料クレジット $300 分を差し上げます。
  2. Google Cloud CLI をインストールします。

  3. 外部 ID プロバイダ(IdP)を使用している場合は、まず連携 ID を使用して gcloud CLI にログインする必要があります。

  4. gcloud CLI を初期化するには、次のコマンドを実行します。

    gcloud init
  5. このガイドを完了するために必要な権限があることを確認します

  6. Google Cloud CLI をインストールします。

  7. 外部 ID プロバイダ(IdP)を使用している場合は、まず連携 ID を使用して gcloud CLI にログインする必要があります。

  8. gcloud CLI を初期化するには、次のコマンドを実行します。

    gcloud init
  9. このガイドを完了するために必要な権限があることを確認します

必要なロール

レポートのデータを読み取るために必要な権限を取得するには、レポート リソースを所有するプロジェクトに対する App Optimize 閲覧者 roles/appoptimize.viewer)IAM ロールを付与するよう管理者に依頼してください。ロールの付与については、プロジェクト、フォルダ、組織に対するアクセス権の管理をご覧ください。

必要な権限は、カスタムロールや他の事前定義ロールから取得することもできます。

レポートデータを読み取る

REST API を使用して完了したレポートからデータを読み取るには、レポートの :read エンドポイントに HTTP POST リクエストを送信します。

  1. 次の 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 が省略されている場合は、デフォルトのサイズが使用されます。
  2. リクエストが成功すると、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 フィールドの値については、費用指標の解釈をご覧ください。データと制限事項の詳細については、データを理解するをご覧ください。

  3. レスポンスに 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 が含まれなくなるまで、このプロセスを繰り返します。これは、すべてのレポートデータを取得したことを示します。

次のステップ