App Optimize API 建立報表後,您會擷取報表的費用和使用率資料。這項作業會將資訊下載為欄和列,並根據您要求報表時指定的維度和指標來建構。
這項 API 要求與取得報表的中繼資料不同,後者只會傳回報表的設定。
事前準備
- 登入 Google Cloud 帳戶。如果您是 Google Cloud新手,歡迎 建立帳戶,親自評估產品在實際工作環境中的成效。新客戶還能獲得價值 $300 美元的免費抵免額,可用於執行、測試及部署工作負載。
-
安裝 Google Cloud CLI。
-
若您採用的是外部識別資訊提供者 (IdP),請先使用聯合身分登入 gcloud CLI。
-
執行下列指令,初始化 gcloud CLI:
gcloud init -
安裝 Google Cloud CLI。
-
若您採用的是外部識別資訊提供者 (IdP),請先使用聯合身分登入 gcloud CLI。
-
執行下列指令,初始化 gcloud CLI:
gcloud init
必要的角色
如要取得讀取報表資料所需的權限,請要求系統管理員授予您擁有報表資源的專案「應用程式最佳化檢視者 」(roles/appoptimize.viewer) IAM 角色。如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和組織的存取權」。
讀取報表資料
如要使用 REST API 讀取已完成報表的資料,請將 HTTP POST 要求傳送至報表的 :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" }如果回應包含
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為止,表示您已擷取所有報表資料。