Setelah App Optimize API membuat laporan, Anda mengambil data biaya dan penggunaan laporan. Operasi ini mendownload informasi ini sebagai kolom dan baris, yang disusun sesuai dengan dimensi dan metrik yang Anda tentukan saat Anda meminta laporan.
Permintaan API ini berbeda dengan mendapatkan metadata laporan, yang hanya menampilkan setelan konfigurasi laporan.
Sebelum memulai
-
Login ke akun Google Cloud Anda. Jika Anda baru menggunakan Google Cloud, buat akun untuk mengevaluasi performa produk kami dalam skenario dunia nyata. Pelanggan baru juga mendapatkan kredit gratis senilai $300 untuk menjalankan, menguji, dan men-deploy workload.
Verify that you have the permissions required to complete this guide.
Pilih tab untuk melihat bagaimana Anda berencana menggunakan contoh dalam dokumen ini:
gcloud
Di konsol Google Cloud , aktifkan Cloud Shell.
Di bagian bawah konsol Google Cloud , sesi Cloud Shell akan dimulai dan menampilkan perintah command line. Cloud Shell adalah lingkungan shell dengan Google Cloud CLI yang sudah terinstal, dan dengan nilai yang sudah ditetapkan untuk project Anda saat ini. Diperlukan waktu beberapa detik untuk melakukan inisialisasi pada sesi.
Untuk mengetahui informasi tentang cara menyiapkan autentikasi bagi lingkungan produksi, lihat Menyiapkan Kredensial Default Aplikasi untuk kode yang berjalan di Google Cloud dalam dokumentasi autentikasi Google Cloud .
Python
- Instal library klien Python untuk App Optimize API.
-
Untuk menggunakan contoh Python di halaman ini dalam lingkungan pengembangan lokal, instal dan lakukan inisialisasi gcloud CLI, lalu siapkan Kredensial Default Aplikasi dengan kredensial pengguna Anda.
-
Instal Google Cloud CLI.
-
Jika Anda menggunakan penyedia identitas (IdP) eksternal, Anda harus login ke gcloud CLI dengan identitas gabungan Anda terlebih dahulu.
-
Jika Anda menggunakan shell lokal, buat kredensial autentikasi lokal untuk akun pengguna Anda:
gcloud auth application-default login
Anda tidak perlu melakukan langkah ini jika menggunakan Cloud Shell.
Jika error autentikasi ditampilkan, dan Anda menggunakan penyedia identitas (IdP) eksternal, konfirmasi bahwa Anda telah login ke gcloud CLI dengan identitas gabungan Anda.
Untuk mengetahui informasi selengkapnya, lihat Menyiapkan ADC untuk lingkungan pengembangan lokal dalam dokumentasi autentikasi Google Cloud .
Untuk mengetahui informasi tentang cara menyiapkan autentikasi bagi lingkungan produksi, lihat Menyiapkan Kredensial Default Aplikasi untuk kode yang berjalan di Google Cloud dalam dokumentasi autentikasi Google Cloud .
-
REST
Untuk menggunakan contoh REST API di halaman ini dalam lingkungan pengembangan lokal, gunakan kredensial yang Anda berikan ke gcloud CLI.
Instal Google Cloud CLI.
Jika Anda menggunakan penyedia identitas (IdP) eksternal, Anda harus login ke gcloud CLI dengan identitas gabungan Anda terlebih dahulu.
Untuk mengetahui informasi selengkapnya, lihat Melakukan autentikasi untuk menggunakan REST dalam dokumentasi autentikasi Google Cloud .
Untuk mengetahui informasi tentang cara menyiapkan autentikasi bagi lingkungan produksi, lihat Menyiapkan Kredensial Default Aplikasi untuk kode yang berjalan di Google Cloud dalam dokumentasi autentikasi Google Cloud .
Peran yang diperlukan
Untuk mendapatkan izin yang
diperlukan untuk membaca data laporan,
minta administrator untuk memberi Anda peran IAM
App Optimize Viewer (roles/appoptimize.viewer)
di project yang memiliki resource laporan.
Untuk mengetahui informasi selengkapnya tentang cara memberikan peran, lihat Mengelola akses ke project, folder, dan organisasi.
Anda mungkin juga bisa mendapatkan izin yang diperlukan melalui peran khusus atau peran bawaan lainnya.
Membaca data laporan
Untuk membaca data dari laporan yang telah selesai, ikuti petunjuk untuk metode pilihan Anda:
gcloud
Gunakan perintah gcloud beta app-optimize reports read untuk mengambil data
laporan.
gcloud beta app-optimize reports read REPORT_ID \
--project=PROJECT_ID \
--location=global
Ganti kode berikut:
PROJECT_ID: ID Google Cloud project yang memiliki resource laporan yang ingin Anda baca.REPORT_ID: ID laporan yang akan dibaca. ID ini ditentukan saat laporan dibuat, dan dapat diperoleh dengan mencantumkan laporan.
Perintah gcloud menangani penomoran halaman secara otomatis, dengan menampilkan semua resource yang diminta.
Untuk memahami nilai di kolom cost, lihat Menafsirkan metrik biaya.
Untuk mengetahui informasi selengkapnya tentang data dan memahami batasannya, lihat
Memahami data.
Python
Kode Python berikut menggunakan AppOptimizeClient.read_report() untuk membaca data laporan.
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)
Ganti kode berikut:
PROJECT_ID: ID Google Cloud project yang memiliki resource laporan yang ingin Anda baca.REPORT_ID: ID laporan yang akan dibaca. ID ini ditentukan saat laporan dibuat, dan dapat diperoleh dengan mencantumkan laporan.
Library klien menangani penomoran halaman secara otomatis, menghasilkan hasil dari iterator.
Untuk memahami nilai di kolom cost, lihat Menafsirkan metrik biaya.
Untuk mengetahui informasi selengkapnya tentang data dan memahami batasannya, lihat
Memahami data.
REST
Kirim permintaan HTTP POST ke metode kustom :read REST API.
Gunakan perintah
curlberikut untuk mengirim permintaan tersebut guna membaca halaman pertama data laporan: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"Ganti kode berikut:
PROJECT_ID: ID Google Cloud project yang memiliki resource laporan yang ingin Anda baca.REPORT_ID: ID laporan yang akan dibaca. ID ini ditentukan saat laporan dibuat, dan dapat diperoleh dengan mencantumkan laporan.PAGE_SIZE: jumlah maksimum baris yang akan ditampilkan per halaman. Server menampilkan maksimum 1.000 baris per halaman, meskipun Anda menentukan nilai yang lebih besar. Respons juga tunduk pada batas ukuran 10 MB, sehingga lebih sedikit baris yang dapat ditampilkan agar tetap berada dalam batas tersebut. JikapageSizetidak ada, ukuran default akan digunakan.
Jika permintaan berhasil, API akan menampilkan respons JSON yang berisi skema dan baris laporan. Berikut adalah contoh respons yang berhasil:
{ "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" }Untuk memahami nilai di kolom
cost, lihat Menafsirkan metrik biaya. Untuk mengetahui informasi selengkapnya tentang data dan memahami batasannya, lihat Memahami data.Jika respons menyertakan kolom
nextPageToken, laporan berisi baris tambahan. Untuk mengambil halaman hasil berikutnya, buat permintaanPOSTlain yang menyertakan token ini di kolompageTokenpada isi JSON: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"Ganti kode berikut:
NEXT_PAGE_TOKEN: nilainextPageTokenyang diterima dalam respons sebelumnya.PAGE_SIZE: jumlah maksimum baris yang akan ditampilkan per halaman. Meskipun Anda dapat mengubah nilai ini di antara permintaan halaman, batas sisi server tetap berlaku.
Ulangi proses ini hingga respons tidak lagi berisi
nextPageToken, yang menunjukkan bahwa Anda telah mengambil semua data laporan.