讀取報表資料

App Optimize API 建立報表後,您會擷取報表的費用和使用率資料。這項作業會將資訊下載為欄和列,並根據您要求報表時指定的維度和指標來建構。

這項 API 要求與取得報表的中繼資料不同,後者只會傳回報表的設定。

事前準備

  1. 登入 Google Cloud 帳戶。如果您是 Google Cloud新手,歡迎 建立帳戶,親自評估產品在實際工作環境中的成效。新客戶還能獲得價值 $300 美元的免費抵免額,可用於執行、測試及部署工作負載。
  2. 安裝 Google Cloud CLI。

  3. 若您採用的是外部識別資訊提供者 (IdP),請先使用聯合身分登入 gcloud CLI

  4. 執行下列指令,初始化 gcloud CLI:

    gcloud init
  5. 確認您具備完成本指南所需的權限

  6. 安裝 Google Cloud CLI。

  7. 若您採用的是外部識別資訊提供者 (IdP),請先使用聯合身分登入 gcloud CLI

  8. 執行下列指令,初始化 gcloud CLI:

    gcloud init
  9. 確認您具備完成本指南所需的權限

必要的角色

如要取得讀取報表資料所需的權限,請要求系統管理員授予您擁有報表資源的專案「應用程式最佳化檢視者 」(roles/appoptimize.viewer) IAM 角色。如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和組織的存取權」。

您或許也能透過自訂角色或其他預先定義的角色,取得必要權限。

讀取報表資料

如要使用 REST API 讀取已完成報表的資料,請將 HTTP POST 要求傳送至報表的 :read 端點。

  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 欄位,報表會包含額外資料列。如要擷取下一頁的結果,請再次發出 POST 要求,並在 JSON 主體的 pageToken 欄位中加入這個權杖:

    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 為止,表示您已擷取所有報表資料。

後續步驟