Menggunakan Layanan Agregasi di Google Cloud Platform (GCP)

1. 1. Prasyarat

Estimasi waktu penyelesaian: 1-2 jam

Ada 2 mode untuk menjalankan codelab ini: Pengujian Lokal atau Layanan Agregasi. Mode Pengujian Lokal memerlukan komputer lokal dan browser Chrome (tidak ada pembuatan/penggunaan resource Google Cloud). Mode Layanan Agregasi memerlukan deployment penuh Layanan Agregasi di Google Cloud.

Untuk menjalankan codelab ini dalam salah satu mode, beberapa prasyarat diperlukan. Setiap persyaratan ditandai sesuai dengan apakah persyaratan tersebut diperlukan untuk Pengujian Lokal atau Layanan Agregasi.

1.1. Menyelesaikan Pendaftaran dan Pengesahan (Layanan Agregasi)

Untuk menggunakan Privacy Sandbox API, pastikan Anda telah menyelesaikan Pendaftaran dan Pengesahan untuk Chrome dan Android.

1.2. Mengaktifkan API privasi Iklan (Layanan Agregasi dan Pengujian Lokal)

Karena kami akan menggunakan Privacy Sandbox, sebaiknya Anda mengaktifkan Privacy Sandbox Ads API.

Di browser, buka chrome://settings/adPrivacy dan aktifkan semua Ad privacy API.

Pastikan juga bahwa cookie pihak ketiga diaktifkan.

Dari chrome://settings/cookies, pastikan cookie pihak ketiga TIDAK diblokir. Bergantung pada versi Chrome, Anda mungkin melihat opsi yang berbeda di menu setelan ini, tetapi konfigurasi yang dapat diterima mencakup:

  • "Blokir semua cookie pihak ketiga" = NONAKTIF
  • "Blokir cookie pihak ketiga" = DINONAKTIFKAN
  • "Blokir cookie pihak ketiga dalam mode Samaran" = AKTIF

Mengaktifkan Cookie

1.3. Mendownload Alat Pengujian Lokal (Pengujian Lokal)

Pengujian Lokal akan memerlukan download Alat Pengujian Lokal. Alat ini akan membuat laporan ringkasan dari laporan debug yang tidak dienkripsi.

Alat Pengujian Lokal tersedia untuk didownload di Arsip JAR Cloud Function di GitHub. Class ini harus diberi nama LocalTestingTool_{version}.jar.

1.4. Pastikan JAVA JRE diinstal (Layanan Agregasi dan Pengujian Lokal)

Buka "Terminal" dan gunakan java --version untuk memeriksa apakah mesin Anda telah menginstal Java atau openJDK.

Memeriksa versi Java

Jika belum diinstal, Anda dapat mendownload dan menginstal dari situs Java atau situs openJDK.

1.5. Mendownload aggregatable_report_converter (Layanan Agregasi dan Pengujian Lokal)

Anda dapat mendownload salinan aggregatable_report_converter dari repositori GitHub Demo Privacy Sandbox. Repositori GitHub menyebutkan penggunaan IntelliJ atau Eclipse, tetapi keduanya tidak diperlukan. Jika Anda tidak menggunakan alat ini, download file JAR ke lingkungan lokal Anda.

1.6. Menyiapkan Lingkungan GCP (Layanan Agregasi)

Layanan Agregasi memerlukan penggunaan Trusted Execution Environment yang menggunakan penyedia cloud. Dalam codelab ini, Layanan Agregasi akan di-deploy di GCP, tetapi AWS juga didukung.

Ikuti Petunjuk Deployment di GitHub untuk menyiapkan gcloud CLI, mendownload biner dan modul Terraform, serta membuat resource GCP untuk Layanan Agregasi.

Langkah-langkah utama dalam Petunjuk Deployment:

  1. Siapkan CLI "gcloud" dan Terraform di lingkungan Anda.
  2. Buat bucket Cloud Storage untuk menyimpan status Terraform.
  3. Mendownload dependensi.
  4. Perbarui adtech_setup.auto.tfvars dan jalankan Terraform adtech_setup. Lihat Lampiran untuk contoh file adtech_setup.auto.tfvars. Perhatikan nama bucket data yang dibuat di sini – nama ini akan digunakan dalam codelab untuk menyimpan file yang kita buat.
  5. Perbarui dev.auto.tfvars, tirukan identitas akun layanan deployment, dan jalankan Terraform dev. Lihat Lampiran untuk contoh file dev.auto.tfvars.
  6. Setelah deployment selesai, ambil frontend_service_cloudfunction_url dari output Terraform, yang akan diperlukan untuk membuat permintaan ke Layanan Agregasi pada langkah berikutnya.

1.7. Menyelesaikan Orientasi Layanan Agregasi (Layanan Agregasi)

Layanan Agregasi memerlukan orientasi untuk koordinator agar dapat menggunakan layanan. Isi formulir Orientasi Layanan Agregasi dengan memberikan Situs Pelaporan dan informasi lainnya, memilih "Google Cloud", dan memasukkan alamat akun layanan Anda. Akun layanan ini dibuat di prasyarat sebelumnya (1.6. Menyiapkan Lingkungan GCP). (Petunjuk: jika Anda menggunakan nama default yang disediakan, akun layanan ini akan dimulai dengan "worker-sa@").

Tunggu hingga 2 minggu untuk menyelesaikan proses aktivasi.

1.8. Menentukan metode Anda untuk memanggil endpoint API (Layanan Agregasi)

Codelab ini menyediakan 2 opsi untuk memanggil endpoint Aggregation Service API: cURL dan Postman. cURL adalah cara yang lebih cepat dan mudah untuk memanggil endpoint API dari Terminal, karena memerlukan penyiapan minimal dan tidak memerlukan software tambahan. Namun, jika tidak ingin menggunakan cURL, Anda dapat menggunakan Postman untuk menjalankan dan menyimpan permintaan API untuk digunakan di masa mendatang.

Di bagian 3.2. Penggunaan Layanan Agregasi, Anda akan menemukan petunjuk mendetail untuk menggunakan kedua opsi tersebut. Anda dapat melihat pratinjaunya sekarang untuk menentukan metode yang akan digunakan. Jika Anda memilih Postman, lakukan penyiapan awal berikut.

1.8.1. Menyiapkan ruang kerja

Daftar untuk membuat akun Postman. Setelah mendaftar, ruang kerja akan otomatis dibuat untuk Anda.

Ruang Kerja Postman

Jika ruang kerja tidak dibuat untuk Anda, buka item navigasi atas "Ruang Kerja", lalu pilih "Buat Ruang Kerja".

Pilih "Ruang kerja kosong", klik berikutnya, lalu beri nama "GCP Privacy Sandbox". Pilih "Pribadi", lalu klik "Buat".

Download konfigurasi JSON dan file Lingkungan Global ruang kerja yang telah dikonfigurasi sebelumnya.

Impor kedua file JSON ke "My Workspace" melalui tombol "Import".

Tombol impor

Tindakan ini akan membuat koleksi "GCP Privacy Sandbox" untuk Anda beserta permintaan HTTP createJob dan getJob.

1.8.2. Menyiapkan otorisasi

Klik kumpulan "GCP Privacy Sandbox", lalu buka tab "Authorization".

Tombol otorisasi

Anda akan menggunakan metode "Bearer Token". Dari lingkungan Terminal, jalankan perintah ini dan salin output-nya.

gcloud auth print-identity-token

Kemudian, tempel nilai token ini di kolom "Token" pada tab otorisasi Postman:

Kolom token

1.8.3. Lingkungan penyiapan

Buka "Tampilan cepat lingkungan" di pojok kanan atas:

Tombol lingkungan

Klik "Edit" dan perbarui "Nilai Saat Ini" dari "environment", "region", dan "cloud-function-id":

Menetapkan nilai saat ini

Anda dapat mengosongkan "request-id" untuk saat ini, karena kita akan mengisinya nanti. Untuk kolom lainnya, gunakan nilai dari frontend_service_cloudfunction_url, yang ditampilkan dari keberhasilan deployment Terraform di Prasyarat 1.6. URL mengikuti format ini: https://--frontend-service--uc.a.run.app

2. 2. Codelab Pengujian Lokal

Estimasi waktu penyelesaian: <1 jam

Anda dapat menggunakan alat pengujian lokal di komputer untuk melakukan agregasi dan membuat laporan ringkasan menggunakan laporan debug yang tidak dienkripsi. Sebelum memulai, pastikan Anda telah menyelesaikan semua Prasyarat yang diberi label "Pengujian Lokal".

Langkah-langkah codelab

Langkah 2.1. Pemicu laporan: Memicu pelaporan Agregasi Pribadi agar dapat mengumpulkan laporan.

Langkah 2.2. Buat Laporan AVRO Debug: Mengonversi laporan JSON yang dikumpulkan ke laporan berformat AVRO. Langkah ini akan serupa dengan saat adTech mengumpulkan laporan dari endpoint pelaporan API dan mengonversi laporan JSON menjadi laporan berformat AVRO.

Langkah 2.3. Mengambil Kunci Bucket: Kunci bucket dirancang oleh adTech. Dalam codelab ini, karena bucket telah ditentukan sebelumnya, ambil kunci bucket seperti yang disediakan.

Langkah 2.4. Create Output Domain AVRO: Setelah kunci bucket diambil, buat file AVRO Domain Output.

Langkah 2.5. Membuat Laporan Ringkasan: Gunakan Alat Pengujian Lokal agar dapat membuat Laporan Ringkasan di Lingkungan Lokal.

Langkah 2.6. Tinjau Laporan Ringkasan: Tinjau Laporan Ringkasan yang dibuat oleh Alat Pengujian Lokal.

2.1. Laporan pemicu

Untuk memicu laporan agregasi pribadi, Anda dapat menggunakan situs demo Privacy Sandbox (https://privacy-sandbox-demos-news.dev/?env=gcp) atau situs Anda sendiri (misalnya, https://adtechexample.com). Jika menggunakan situs Anda sendiri dan belum menyelesaikan Pendaftaran & Pengesahan serta Orientasi Layanan Agregasi, Anda harus menggunakan flag Chrome dan tombol CLI.

Untuk demo ini, kita akan menggunakan situs demo Privacy Sandbox. Ikuti link untuk membuka situs; lalu, Anda dapat melihat laporan di chrome://private-aggregation-internals:

Halaman Internal Chrome

Laporan yang dikirim ke endpoint {reporting-origin}/.well-known/private-aggregation/debug/report-shared-storage juga ditemukan di "Isi Laporan" laporan yang ditampilkan di halaman Chrome Internals.

Anda mungkin melihat banyak laporan di sini, tetapi untuk codelab ini, gunakan laporan gabungan yang khusus untuk GCP dan dibuat oleh endpoint debug. "URL Laporan" akan berisi "/debug/" dan aggregation_coordinator_origin field dari "Isi Laporan" akan berisi URL ini: https://publickeyservice.msmt.gcp.privacysandboxservices.com.

Laporan Debug GCP

2.2. Membuat Laporan Gabungan Debug

Salin laporan yang ditemukan di "Isi Laporan" chrome://private-aggregation-internals dan buat file JSON di folder privacy-sandbox-demos/tools/aggregatable_report_converter/out/artifacts/aggregatable_report_converter_jar (dalam repo yang didownload di Prasyarat 1.5).

Dalam contoh ini, kita menggunakan vim karena kita menggunakan linux. Namun, Anda dapat menggunakan editor teks apa pun yang Anda inginkan.

vim report.json

Tempelkan laporan ke report.json dan simpan file Anda.

JSON Laporan

Setelah Anda memilikinya, gunakan aggregatable_report_converter.jar untuk membantu membuat laporan agregat debug. Tindakan ini akan membuat laporan gabungan yang disebut report.avro di direktori Anda saat ini.

java -jar aggregatable_report_converter.jar \
  --request_type convertToAvro \
  --input_file report.json \
  --debug

2.3. Mengambil Kunci Bucket dari Laporan

Untuk membuat file output_domain.avro, Anda memerlukan kunci bucket yang dapat diambil dari laporan.

Kunci bucket dirancang oleh teknologi iklan. Namun, dalam hal ini, situs Privacy Sandbox Demo membuat kunci bucket. Karena agregasi pribadi untuk situs ini berada dalam mode debug, kita dapat menggunakan debug_cleartext_payload dari "Isi Laporan" untuk mendapatkan kunci bucket.

Lanjutkan dan salin debug_cleartext_payload dari isi laporan.

Men-debug Payload Cleartext

Buka goo.gle/ags-payload-decoder dan tempel debug_cleartext_payload Anda di kotak "INPUT", lalu klik "Decode".

Tombol dekode

Halaman ini menampilkan nilai desimal kunci bucket. Berikut adalah contoh kunci bucket.

Kunci bucket

2.4. Membuat AVRO Domain Output

Setelah memiliki kunci bucket, mari kita buat output_domain.avro di folder yang sama dengan yang telah kita gunakan. Pastikan Anda mengganti kunci bucket dengan kunci bucket yang Anda ambil.

java -jar aggregatable_report_converter.jar \
  --request_type createDomainAvro \
  --bucket_key <bucket key>

Skrip ini akan membuat file output_domain.avro di folder saat ini.

2.5. Membuat Laporan Ringkasan menggunakan Alat Pengujian Lokal

Kita akan menggunakan LocalTestingTool_{version}.jar yang didownload di Prasyarat 1.3 untuk membuat laporan ringkasan menggunakan perintah di bawah. Ganti {version} dengan versi yang Anda download. Jangan lupa untuk memindahkan LocalTestingTool_{version}.jar ke direktori saat ini, atau tambahkan jalur relatif untuk mereferensikan lokasinya saat ini.

java -jar LocalTestingTool_{version}.jar \
  --input_data_avro_file report.avro \
  --domain_avro_file output_domain.avro \
  --output_directory .

Anda akan melihat sesuatu yang mirip dengan di bawah ini setelah perintah dijalankan. Laporan output.avro akan dibuat setelah proses ini selesai.

Output AVRO

2.6. Meninjau Laporan Ringkasan

Laporan ringkasan yang dibuat dalam format AVRO. Agar dapat membacanya, Anda perlu mengonversinya dari AVRO ke format JSON. Idealnya, adTech harus menulis kode untuk mengonversi laporan AVRO kembali ke JSON.

Kita akan menggunakan aggregatable_report_converter.jar untuk mengonversi laporan AVRO kembali ke JSON.

java -jar aggregatable_report_converter.jar \
  --request_type convertToJson \
  --input_file output.avro

Tindakan ini akan menampilkan laporan yang mirip dengan laporan di bawah. Bersama dengan laporan output.json yang dibuat di direktori yang sama.

Output JSON

Codelab selesai.

Ringkasan: Anda telah mengumpulkan laporan debug, membuat file domain output, dan membuat laporan ringkasan menggunakan alat pengujian lokal yang menyimulasikan perilaku agregasi Layanan Agregasi.

Langkah berikutnya: Setelah bereksperimen dengan alat Pengujian Lokal, Anda dapat mencoba latihan yang sama dengan deployment Layanan Agregasi langsung di lingkungan Anda sendiri. Tinjau kembali prasyarat untuk memastikan Anda telah menyiapkan semuanya untuk mode "Layanan Agregasi", lalu lanjutkan ke langkah 3.

3. 3. Codelab Layanan Agregasi

Estimasi waktu penyelesaian: 1 jam

Sebelum memulai, pastikan Anda telah menyelesaikan semua Prasyarat yang berlabel "Layanan Agregasi".

Langkah-langkah codelab

Langkah 3.1. Pembuatan Input Layanan Agregasi: Membuat laporan Layanan Agregasi yang dikelompokkan untuk Layanan Agregasi.

  • Langkah 3.1.1. Laporan Pemicu
  • Langkah 3.1.2. Mengumpulkan Laporan Gabungan
  • Langkah 3.1.3. Mengonversi Laporan ke AVRO
  • Langkah 3.1.4. Membuat output_domain AVRO
  • Langkah 3.1.5. Memindahkan Laporan ke bucket Cloud Storage

Langkah 3.2. Penggunaan Layanan Agregasi: Gunakan Aggregation Service API untuk membuat Laporan Ringkasan dan meninjau Laporan Ringkasan.

  • Langkah 3.2.1. Menggunakan Endpoint createJob untuk membuat batch
  • Langkah 3.2.2. Menggunakan Endpoint getJob untuk mengambil status batch
  • Langkah 3.2.3. Meninjau Laporan Ringkasan

3.1. Pembuatan Input Layanan Agregasi

Lanjutkan untuk membuat laporan AVRO untuk pengelompokan ke Layanan Agregasi. Perintah shell dalam langkah-langkah ini dapat dijalankan dalam Cloud Shell GCP (asalkan dependensi dari Prasyarat di-clone ke lingkungan Cloud Shell Anda) atau di lingkungan eksekusi lokal.

3.1.1. Laporan Pemicu

Ikuti link untuk membuka situs; lalu, Anda dapat melihat laporan di chrome://private-aggregation-internals:

Halaman Internal Chrome

Laporan yang dikirim ke endpoint {reporting-origin}/.well-known/private-aggregation/debug/report-shared-storage juga ditemukan di "Isi Laporan" laporan yang ditampilkan di halaman Chrome Internals.

Anda mungkin melihat banyak laporan di sini, tetapi untuk codelab ini, gunakan laporan gabungan yang khusus untuk GCP dan dibuat oleh endpoint debug. "URL Laporan" akan berisi "/debug/" dan aggregation_coordinator_origin field dari "Isi Laporan" akan berisi URL ini: https://publickeyservice.msmt.gcp.privacysandboxservices.com.

Laporan Debug GCP

3.1.2. Mengumpulkan Laporan Gabungan

Kumpulkan laporan agregat dari endpoint .well-known API yang sesuai.

  • Agregasi Pribadi: {reporting-origin}/.well-known/private-aggregation/report-shared-storage
  • Pelaporan Atribusi - Laporan Ringkasan: {reporting-origin}/.well-known/attribution-reporting/report-aggregate-attribution

Untuk codelab ini, kita melakukan pengumpulan laporan secara manual. Dalam produksi, teknologi iklan diharapkan mengumpulkan dan mengonversi laporan secara terprogram.

Mari kita salin laporan JSON di "Isi Laporan" dari chrome://private-aggregation-internals.

Dalam contoh ini, kita menggunakan vim karena kita menggunakan linux. Namun, Anda dapat menggunakan editor teks apa pun yang Anda inginkan.

vim report.json

Tempelkan laporan ke report.json dan simpan file Anda.

JSON Laporan

3.1.3. Mengonversi Laporan ke AVRO

Laporan yang diterima dari endpoint .well-known dalam format JSON dan perlu dikonversi ke format laporan AVRO. Setelah Anda memiliki laporan JSON, buka tempat report.json disimpan dan gunakan aggregatable_report_converter.jar untuk membantu membuat laporan agregat debug. Tindakan ini akan membuat laporan gabungan yang disebut report.avro di direktori Anda saat ini.

java -jar aggregatable_report_converter.jar \
  --request_type convertToAvro \
  --input_file report.json

3.1.4. Membuat output_domain AVRO

Untuk membuat file output_domain.avro, Anda memerlukan kunci bucket yang dapat diambil dari laporan.

Kunci bucket dirancang oleh teknologi iklan. Namun, dalam hal ini, situs Privacy Sandbox Demo membuat kunci bucket. Karena agregasi pribadi untuk situs ini berada dalam mode debug, kita dapat menggunakan debug_cleartext_payload dari "Isi Laporan" untuk mendapatkan kunci bucket.

Lanjutkan dan salin debug_cleartext_payload dari isi laporan.

Men-debug Payload Cleartext

Buka goo.gle/ags-payload-decoder dan tempel debug_cleartext_payload Anda di kotak "INPUT", lalu klik "Decode".

Tombol dekode

Halaman ini menampilkan nilai desimal kunci bucket. Berikut adalah contoh kunci bucket.

Kunci bucket

Setelah memiliki kunci bucket, mari kita buat output_domain.avro di folder yang sama dengan yang telah kita gunakan. Pastikan Anda mengganti kunci bucket dengan kunci bucket yang Anda ambil.

java -jar aggregatable_report_converter.jar \
  --request_type createDomainAvro \
  --bucket_key <bucket key>

Skrip ini akan membuat file output_domain.avro di folder Anda saat ini.

3.1.5. Memindahkan Laporan ke bucket Cloud Storage

Setelah laporan AVRO dan domain output dibuat, lanjutkan untuk memindahkan laporan dan domain output ke bucket di Cloud Storage (yang Anda catat di Prasyarat 1.6).

Jika Anda telah menyiapkan gcloud CLI di lingkungan lokal, gunakan perintah di bawah untuk menyalin file ke folder yang sesuai.

gcloud storage cp report.avro gs://<bucket_name>/reports/

gcloud storage cp output_domain.avro gs://<bucket_name>/output_domain/

Jika tidak, upload file secara manual ke bucket Anda. Buat folder bernama "laporan" dan upload file report.avro di sana. Buat folder bernama "output_domains" dan upload file output_domain.avro di sana.

3.2. Penggunaan Layanan Agregasi

Ingatlah bahwa di Prasyarat 1.8, Anda memilih cURL atau Postman untuk membuat permintaan API ke endpoint Layanan Agregasi. Di bawah ini, Anda akan menemukan petunjuk untuk kedua opsi tersebut.

Jika tugas Anda gagal dengan error, lihat dokumentasi pemecahan masalah kami di GitHub untuk mengetahui informasi selengkapnya tentang cara melanjutkan.

3.2.1. Menggunakan Endpoint createJob untuk membuat batch

Gunakan petunjuk cURL atau Postman di bawah untuk membuat tugas.

cURL

Di "Terminal", buat file isi permintaan (body.json) dan tempelkan di bawah. Pastikan untuk memperbarui nilai placeholder. Lihat dokumentasi API ini untuk mengetahui informasi selengkapnya tentang apa yang diwakili oleh setiap kolom.

{
  "job_request_id": "<job_request_id>",
  "input_data_blob_prefix": "<report_folder>/<report_name>.avro",
  "input_data_bucket_name": "<bucket_name>",
  "output_data_blob_prefix": "<output_folder>/<summary_report_prefix>",
  "output_data_bucket_name": "<bucket_name>",
  "job_parameters": {
    "output_domain_blob_prefix": "<output_domain_folder>/<output_domain>.avro",
    "output_domain_bucket_name": "<bucket_name>",
    "attribution_report_to": "<reporting origin of report>",
    "reporting_site": "<domain of reporting origin(s) of report>", // Only one of attribution_report_to or reporting_site is required as of v2.7.0
    "report_error_threshold_percentage": "10",
    "debug_run": "true"
  }
}

Jalankan permintaan di bawah. Ganti placeholder di URL permintaan cURL dengan nilai dari frontend_service_cloudfunction_url, yang merupakan output setelah berhasil menyelesaikan deployment Terraform di Prasyarat 1.6.

curl -H "Authorization: Bearer $(gcloud auth print-identity-token)" \
  -d @body.json \
  https://<environment>-<region>-frontend-service-<cloud-function-id>-uc.a.run.app/v1alpha/createJob

Anda akan menerima respons HTTP 202 setelah permintaan diterima oleh Layanan Agregasi. Kode respons lain yang mungkin terjadi didokumentasikan dalam spesifikasi API.

Postman

Untuk endpoint createJob, isi permintaan diperlukan untuk memberi Layanan Agregasi lokasi dan nama file laporan agregat, domain output, dan laporan ringkasan.

Buka tab "Isi" permintaan createJob:

Tab isi

Ganti placeholder dalam JSON yang disediakan. Untuk mengetahui informasi selengkapnya tentang kolom ini dan apa yang diwakilinya, lihat dokumentasi API.

{
  "job_request_id": "<job_request_id>",
  "input_data_blob_prefix": "<report_folder>/<report_name>.avro",
  "input_data_bucket_name": "<bucket_name>",
  "output_data_blob_prefix": "<output_folder>/<summary_report_prefix>",
  "output_data_bucket_name": "<bucket_name>",
  "job_parameters": {
    "output_domain_blob_prefix": "<output_domain_folder>/<output_domain>.avro",
    "output_domain_bucket_name": "<bucket_name>",
    "attribution_report_to": "<reporting origin of report>",
    "reporting_site": "<domain of reporting origin(s) of report>", // Only one of attribution_report_to or reporting_site is required as of v2.7.0
    "report_error_threshold_percentage": "10",
    "debug_run": "true"
  }
}

"Kirim" permintaan API createJob:

Tombol untuk mengirim

Kode respons dapat ditemukan di bagian bawah halaman:

Response code

Anda akan menerima respons HTTP 202 setelah permintaan diterima oleh Layanan Agregasi. Kode respons lainnya didokumentasikan dalam spesifikasi API.

3.2.2. Menggunakan Endpoint getJob untuk mengambil status batch

Gunakan petunjuk cURL atau Postman di bawah untuk mendapatkan tugas.

cURL

Jalankan permintaan di bawah ini di Terminal Anda. Ganti placeholder di URL dengan nilai dari frontend_service_cloudfunction_url, yang merupakan URL yang sama dengan yang Anda gunakan untuk permintaan createJob. Untuk "job_request_id", gunakan nilai dari tugas yang Anda buat dengan endpoint createJob.

curl -H "Authorization: Bearer $(gcloud auth print-identity-token)" \
  https://<environment>-<region>-frontend-service-<cloud-function-id>-uc.a.run.app/v1alpha/getJob?job_request_id=<job_request_id>

Hasilnya akan menampilkan status permintaan tugas Anda dengan status HTTP 200. "Isi" permintaan berisi informasi yang diperlukan seperti job_status, return_message, dan error_messages (jika tugas mengalami error).

Postman

Untuk memeriksa status permintaan tugas, Anda dapat menggunakan endpoint getJob. Di bagian "Params" pada permintaan getJob, perbarui nilai job_request_id menjadi job_request_id yang dikirim dalam permintaan createJob.

ID permintaan tugas

"Kirim" permintaan getJob:

Tombol untuk mengirim

Hasilnya akan menampilkan status permintaan tugas Anda dengan status HTTP 200. "Isi" permintaan berisi informasi yang diperlukan seperti job_status, return_message, dan error_messages (jika tugas mengalami error).

Tanggapan JSON

3.2.3. Meninjau Laporan Ringkasan

Setelah menerima laporan ringkasan di bucket Cloud Storage output, Anda dapat mendownloadnya ke lingkungan lokal. Laporan ringkasan dalam format AVRO dan dapat dikonversi kembali ke JSON. Anda dapat menggunakan aggregatable_report_converter.jar untuk membaca laporan menggunakan perintah di bawah.

java -jar aggregatable_report_converter.jar \
  --request_type convertToJson \
  --input_file <summary_report_avro>

Tindakan ini akan menampilkan JSON nilai gabungan dari setiap kunci bucket yang terlihat mirip dengan di bawah ini.

Laporan ringkasan

Jika permintaan createJob Anda menyertakan debug_run sebagai benar, Anda dapat menerima laporan ringkasan di folder debug yang terletak di output_data_blob_prefix. Laporan ini dalam format AVRO dan dapat dikonversi menggunakan perintah di atas menjadi JSON.

Laporan ini berisi kunci bucket, metrik tanpa derau, dan derau yang ditambahkan ke metrik tanpa derau untuk membentuk laporan ringkasan. Laporannya mirip dengan yang di bawah ini.

Laporan berisi derau

Anotasi juga berisi "in_reports" dan/atau "in_domain" yang berarti:

  • in_reports - kunci bucket tersedia di dalam laporan agregat.
  • in_domain - kunci bucket tersedia di dalam file AVRO output_domain.

Codelab selesai.

Ringkasan: Anda telah men-deploy Layanan Agregasi di lingkungan cloud Anda sendiri, mengumpulkan laporan debug, membuat file domain output, menyimpan file ini di bucket Cloud Storage, dan menjalankan tugas yang berhasil.

Langkah berikutnya: Lanjutkan menggunakan Layanan Agregasi di lingkungan Anda, atau hapus resource cloud yang baru saja Anda buat dengan mengikuti petunjuk pembersihan di langkah 4.

4. 4. Membersihkan

Untuk menghapus resource yang dibuat untuk Layanan Agregasi melalui Terraform, gunakan perintah destroy di folder adtech_setup dan dev (atau lingkungan lainnya):

$ cd <repository_root>/terraform/gcp/environments/adtech_setup
$ terraform destroy
$ cd <repository_root>/terraform/gcp/environments/dev
$ terraform destroy

Untuk menghapus bucket Cloud Storage yang menyimpan laporan gabungan dan laporan ringkasan:

$ gcloud storage buckets delete gs://my-bucket

Anda juga dapat memilih untuk mengembalikan setelan cookie Chrome dari Prasyarat 1.2 ke status sebelumnya.

5. 5. Lampiran

Contoh file adtech_setup.auto.tfvars

/**
 * Copyright 2023 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

project = "my-project-id"

# Required to generate identity token for access of Adtech Services API endpoints
service_account_token_creator_list = ["user:me@email.com"]

# Uncomment the below line if you like Terraform to create an Artifact registry repository
# for self-build container artifacts. "artifact_repo_location" defaults to "us".
artifact_repo_name     = "my-ags-artifacts"

# Note: Either one of [1] or [2] must be uncommented.

# [1] Uncomment below lines if you like Terraform grant needed permissions to
# pre-existing service accounts
# deploy_service_account_email = "<YourDeployServiceAccountName>@<ProjectID>.iam.gserviceaccount.com"
# worker_service_account_email = "<YourWorkerServiceAccountName>@<ProjectID>.iam.gserviceaccount.com"

# [2] Uncomment below lines if you like Terraform to create service accounts
# and needed permissions granted e.g "deploy-sa" or "worker-sa"
deploy_service_account_name = "deploy-sa"
worker_service_account_name = "worker-sa"
# Uncomment the below line if you want Terraform to create the
# below bucket. "data_bucket_location" defaults to "us".
data_bucket_name     = "my-ags-data"

# Uncomment the below lines if you want to specify service account customer role names
# deploy_sa_role_name = "<YourDeploySACustomRole>"
# worker_sa_role_name = "<YourWorkerSACustomRole>"

Contoh file dev.auto.tfvars

/**
 * Copyright 2022 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

# Example values required by job_service.tf
#
# These values should be modified for each of your environments.
region      = "us-central1"
region_zone = "us-central1-c"

project_id  = "my-project-id"
environment = "operator-demo-env"

# Co-locate your Cloud Spanner instance configuration with the region above.
# https://cloud.google.com/spanner/docs/instance-configurations#regional-configurations
spanner_instance_config = "regional-us-central1"

# Adjust this based on the job load you expect for your deployment.
# Monitor the spanner instance utilization to decide on scale out / scale in.
# https://console.cloud.google.com/spanner/instances
spanner_processing_units = 100

# Uncomment the line below at your own risk to disable Spanner database protection.
# This needs to be set to false and applied before destroying all resources is possible.
spanner_database_deletion_protection = false

instance_type = "n2d-standard-8" # 8 cores, 32GiB

# Container image location that packages the job service application
# If not set otherwise, uncomment and edit the line below:
#worker_image = "<location>/<project>/<repository>/<image>:<tag or digest>"

# Service account created and onboarded for worker
user_provided_worker_sa_email = "worker-sa@my-project-id.iam.gserviceaccount.com"

min_worker_instances = 1
max_worker_instances = 20