Lavorare con Aggregation Service sulla piattaforma Google Cloud

1. 1. Prerequisiti

Tempo stimato per il completamento: 1-2 ore

Esistono due modalità per eseguire questo codelab: Test locale o Servizio di aggregazione. La modalità di test locale richiede un computer locale e il browser Chrome (nessuna creazione/utilizzo di risorse Google Cloud). La modalità Servizio di aggregazione richiede un deployment completo del servizio su Google Cloud.

Per eseguire questo codelab in una delle due modalità, sono necessari alcuni prerequisiti. Ogni requisito è contrassegnato di conseguenza in base al fatto che sia necessario per i test locali o per il servizio di aggregazione.

1.1. Registrazione e attestazione complete (servizio di aggregazione)

Per utilizzare le API Privacy Sandbox, assicurati di aver completato la registrazione e l'attestazione sia per Chrome che per Android.

1.2. Attivare le API di privacy per gli annunci (servizio di aggregazione e test locali)

Poiché utilizzeremo Privacy Sandbox, ti invitiamo ad attivare le API Privacy Sandbox Ads.

Sul browser, vai a chrome://settings/adPrivacy e attiva tutte le API di privacy per gli annunci.

Assicurati inoltre che i cookie di terze parti siano abilitati.

Da chrome://settings/cookies, assicurati che i cookie di terze parti NON siano bloccati. A seconda della versione di Chrome, potresti vedere opzioni diverse in questo menu delle impostazioni, ma le configurazioni accettabili includono:

  • "Blocca tutti i cookie di terze parti" = DISATTIVATA
  • "Blocca cookie di terze parti" = DISATTIVATA
  • "Blocca cookie di terze parti in modalità di navigazione in incognito" = ABILITATO

Attivazione dei cookie

1.3. Scaricare lo strumento di test locale (test locale)

Per i test locali è necessario scaricare lo strumento di test locale. Lo strumento genererà report di riepilogo dai report di debug non criptati.

Lo strumento di test locale è disponibile per il download negli archivi JAR di Cloud Function su GitHub. Deve essere denominato LocalTestingTool_{version}.jar.

1.4. Assicurati che sia installato JAVA JRE (servizio di test e aggregazione locale)

Apri "Terminale" e usa java --version per verificare se sul tuo computer è installato Java o openJDK.

Controllare la versione Java

Se non è installato, puoi scaricarlo e installarlo dal sito Java o dal sito openJDK.

1.5. Scarica aggregatable_report_converter (servizio di test e aggregazione locale)

Puoi scaricare una copia di aggregatable_report_converter dal repository GitHub di Privacy Sandbox Demos. Il repository GitHub menziona l'utilizzo di IntelliJ o Eclipse, ma non è obbligatorio. Se non utilizzi questi strumenti, scarica il file JAR nel tuo ambiente locale.

1.6. Configurare un ambiente Google Cloud (servizio di aggregazione)

Il servizio di aggregazione richiede l'utilizzo di un ambiente Trusted Execution Environment che utilizza un provider cloud. In questo codelab, il servizio di aggregazione verrà implementato in Google Cloud, ma è supportato anche AWS.

Segui le istruzioni di deployment su GitHub per configurare gcloud CLI, scaricare i moduli e i binari di Terraform e creare risorse Google Cloud per il servizio di aggregazione.

Passaggi chiave nelle istruzioni di deployment:

  1. Configura l'interfaccia a riga di comando "gcloud" e Terraform nel tuo ambiente.
  2. Crea un bucket Cloud Storage per archiviare lo stato di Terraform.
  3. Scarica le dipendenze.
  4. Aggiorna adtech_setup.auto.tfvars ed esegui adtech_setup Terraform. Consulta l'appendice per un esempio di file adtech_setup.auto.tfvars. Prendi nota del nome del bucket di dati creato qui: verrà utilizzato nel codelab per archiviare i file che creiamo.
  5. Aggiorna dev.auto.tfvars, esegui il rappresentazione dell'account di servizio di deployment ed esegui dev Terraform. Consulta l'appendice per un esempio di file dev.auto.tfvars.
  6. Al termine del deployment, acquisizione frontend_service_cloudfunction_url dall'output di Terraform, che sarà necessario per effettuare richieste al servizio di aggregazione nei passaggi successivi.

1.7. Completa l'onboarding del servizio di aggregazione (servizio di aggregazione)

Il servizio di aggregazione richiede l'onboarding dei coordinatori per poter essere utilizzato. Compila il modulo di onboarding del servizio di aggregazione fornendo il tuo sito di generazione di report e altre informazioni, selezionando "Google Cloud" e inserendo l'indirizzo del tuo account di servizio. Questo account di servizio viene creato nel prerequisito precedente (1.6. Configura un ambiente Google Cloud). Suggerimento: se utilizzi i nomi predefiniti forniti, questo account di servizio inizierà con "worker-sa@".

Attendi fino a 2 settimane per il completamento della procedura di onboarding.

1.8. Determina il metodo per chiamare gli endpoint dell'API (servizio di aggregazione)

Questo codelab fornisce due opzioni per chiamare gli endpoint dell'API del servizio di aggregazione: cURL e Postman. cURL è il modo più rapido e semplice per chiamare gli endpoint dell'API dal terminale, poiché richiede una configurazione minima e nessun software aggiuntivo. Tuttavia, se non vuoi utilizzare cURL, puoi utilizzare Postman per eseguire e salvare le richieste API per un uso futuro.

Nella sezione 3.2. Utilizzo del servizio di aggregazione, troverai istruzioni dettagliate per l'utilizzo di entrambe le opzioni. Puoi visualizzarne l'anteprima per decidere quale metodo utilizzare. Se selezioni Postman, esegui la seguente configurazione iniziale.

1.8.1. Configura spazio di lavoro

Registrati per creare un account Postman. Una volta effettuata la registrazione, viene creato automaticamente uno spazio di lavoro.

Postman Workspace

Se non è stata creata un'area di lavoro per te, vai all'elemento di navigazione superiore "Spazi di lavoro" e seleziona "Crea spazio di lavoro".

Seleziona "Spazio di lavoro vuoto", fai clic su Avanti e assegna il nome "Privacy Sandbox di Google Cloud". Seleziona "Personale" e fai clic su "Crea".

Scarica la configurazione JSON e i file dell'ambiente globale dello spazio di lavoro preconfigurato.

Importa entrambi i file JSON in "La mia area di lavoro" tramite il pulsante "Importa".

Pulsante importa

Verrà creata la raccolta "Privacy Sandbox di Google Cloud" insieme alle richieste HTTP createJob e getJob.

1.8.2. Configura l'autorizzazione

Fai clic sulla raccolta "Privacy Sandbox di Google Cloud" e vai alla scheda "Autorizzazione".

Pulsante Autorizzazione

Dovrai utilizzare il metodo "Token bearer". Nell'ambiente Terminal, esegui questo comando e copia l'output.

gcloud auth print-identity-token

Poi incolla questo valore del token nel campo "Token" della scheda di autorizzazione di Postman:

Campo token

1.8.3. Configura l'ambiente

Vai a "Anteprima rapida dell'ambiente" nell'angolo in alto a destra:

Pulsante Ambiente

Fai clic su "Modifica" e aggiorna il "Valore corrente" di "environment", "region" e "cloud-function-id":

Impostare i valori correnti

Per il momento puoi lasciare vuoto il campo "request-id", che verrà compilato in un secondo momento. Per gli altri campi, utilizza i valori di frontend_service_cloudfunction_url, restituiti dal completamento del deployment di Terraform nel Prerequisito 1.6. L'URL deve avere il seguente formato: https://--frontend-service--uc.a.run.app

2. 2. Codelab sui test locali

Tempo stimato per il completamento: meno di 1 ora

Puoi utilizzare lo strumento di test locale sul tuo computer per eseguire l'aggregazione e generare report di riepilogo utilizzando i report di debug non criptati. Prima di iniziare, assicurati di aver completato tutti i prerequisiti contrassegnati come "Test locale".

Passaggi del codelab

Passaggio 2.1. Attiva report: attiva i report di aggregazione privata per poterli raccogliere.

Passaggio 2.2. Crea report di debug AVRO: converti il report JSON raccolto in un report in formato AVRO. Questo passaggio sarà simile a quando le adTech raccolgono i report dagli endpoint di reporting dell'API e li convertono in report in formato AVRO.

Passaggio 2.3. Recupera le chiavi del bucket: le chiavi del bucket sono progettate dalle adTech. In questo codelab, poiché i bucket sono predefiniti, recupera le chiavi dei bucket come indicato.

Passaggio 2.4. Crea file Avro del dominio di output: dopo aver recuperato le chiavi del bucket, crea il file Avro del dominio di output.

Passaggio 2.5. Crea report di riepilogo: utilizza lo strumento di test locale per creare report di riepilogo nell'ambiente locale.

Passaggio 2.6. Esamina i report di riepilogo: esamina il report di riepilogo creato dallo strumento di test locale.

2.1. Report Trigger

Per attivare un report di aggregazione privato, puoi utilizzare il sito demo di Privacy Sandbox (https://privacy-sandbox-demos-news.dev/?env=gcp) o il tuo sito (ad es. https://adtechexample.com). Se utilizzi il tuo sito e non hai completato la registrazione e l'attestazione e l'onboarding del servizio di aggregazione, dovrai utilizzare un flag di Chrome e un'opzione CLI.

Per questa demo, utilizzeremo il sito demo di Privacy Sandbox. Segui il link per accedere al sito, quindi puoi visualizzare i report all'indirizzo chrome://private-aggregation-internals:

Pagina Componenti interni di Chrome

Il report inviato all'endpoint {reporting-origin}/.well-known/private-aggregation/debug/report-shared-storage si trova anche nel "Testo del report" dei report visualizzati nella pagina Informazioni interne di Chrome.

Potresti visualizzare molti report qui, ma per questo codelab, utilizza il report aggregabile specifico per Google Cloud e generato dall'endpoint di debug. L'URL report conterrà "/debug/" e il aggregation_coordinator_origin field del "Testo del report" conterrà questo URL: https://publickeyservice.msmt.gcp.privacysandboxservices.com.

Report di debug Google Cloud

2.2. Crea report aggregabile di debug

Copia il report trovato nel "Report Body" di chrome://private-aggregation-internals e crea un file JSON nella cartella privacy-sandbox-demos/tools/aggregatable_report_converter/out/artifacts/aggregatable_report_converter_jar (all'interno del repository scaricato nel Prerequisito 1.5).

In questo esempio utilizziamo vim perché stiamo usando Linux. Tuttavia, puoi utilizzare qualsiasi editor di testo.

vim report.json

Incolla il report in report.json e salva il file.

Report JSON

Una volta ottenuto, utilizza aggregatable_report_converter.jar per creare il report aggregabile per il debug. Viene creato un report aggregabile denominato report.avro nella directory corrente.

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

2.3. Recupera la chiave del bucket dal report

Per creare il file output_domain.avro, devi disporre delle chiavi del bucket che possono essere recuperate dai report.

Le chiavi dei bucket sono progettate dall'adTech. Tuttavia, in questo caso, il sito Privacy Sandbox Demo crea le chiavi del bucket. Poiché l'aggregazione privata per questo sito è in modalità di debug, possiamo utilizzare debug_cleartext_payload dal "Testo del report" per ottenere la chiave del bucket.

Copia debug_cleartext_payload dal corpo del report.

Eseguire il debug del payload in testo chiaro

Apri goo.gle/ags-payload-decoder, incolla il tuo debug_cleartext_payload nella casella "INPUT" e fai clic su "Decodifica".

Pulsante Decodifica

La pagina restituisce il valore decimale della chiave del bucket. Di seguito è riportata una chiave del bucket di esempio.

Chiave del bucket

2.4. Crea dominio di output AVRO

Ora che abbiamo la chiave del bucket, creiamo il file output_domain.avro nella stessa cartella in cui abbiamo lavorato. Assicurati di sostituire la chiave del bucket con quella che hai recuperato.

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

Lo script crea il file output_domain.avro nella cartella corrente.

2.5. Creare report di riepilogo utilizzando lo strumento di test locale

Utilizzeremo LocalTestingTool_{version}.jar scaricato nel Prerequisito 1.3 per creare i report di riepilogo utilizzando il comando riportato di seguito. Sostituisci {version} con la versione che hai scaricato. Ricordati di spostare LocalTestingTool_{version}.jar nella directory corrente o di aggiungere un percorso relativo per fare riferimento alla posizione corrente.

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

Una volta eseguito il comando, dovresti visualizzare un messaggio simile al seguente. Al termine dell'operazione viene creato un report output.avro.

Output AVRO

2.6. Esamina il report di riepilogo

Il report di riepilogo creato è in formato AVRO. Per poterlo leggere, devi convertirlo da AVRO a un formato JSON. Idealmente, la tecnologia adTech dovrebbe scrivere codice per convertire i report AVRO in JSON.

Utilizzeremo aggregatable_report_converter.jar per convertire nuovamente il report AVRO in JSON.

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

Viene restituito un report simile al seguente. Insieme a un report output.json creato nella stessa directory.

Output JSON

Codelab completato.

Riepilogo: hai raccolto un report di debug, creato un file di dominio di output e generato un report di riepilogo utilizzando lo strumento di test locale che simula il comportamento di aggregazione del servizio di aggregazione.

Passaggi successivi:ora che hai sperimentato lo strumento di test locale, puoi provare lo stesso esercizio con un deployment in produzione del servizio di aggregazione nel tuo ambiente. Rivedi i prerequisiti per assicurarti di aver configurato tutto per la modalità "Servizio di aggregazione", quindi vai al passaggio 3.

3. 3. Codelab del servizio di aggregazione

Tempo stimato per il completamento: 1 ora

Prima di iniziare, assicurati di aver completato tutti i prerequisiti etichettati come "Servizio di aggregazione".

Passaggi del codelab

Passaggio 3.1. Creazione di input per il servizio di aggregazione: crea i report del servizio di aggregazione raggruppati per il servizio di aggregazione.

  • Passaggio 3.1.1. Report Trigger
  • Passaggio 3.1.2. Raccogliere report aggregabili
  • Passaggio 3.1.3. Converti i report in AVRO
  • Passaggio 3.1.4. Crea output_domain AVRO
  • Passaggio 3.1.5. Spostare i report nel bucket Cloud Storage

Passaggio 3.2. Utilizzo del servizio di aggregazione: utilizza l'API del servizio di aggregazione per creare report di riepilogo e rivederli.

  • Passaggio 3.2.1. Utilizzo di createJob Endpoint per il batch
  • Passaggio 3.2.2. Utilizzo dell'endpoint getJob per recuperare lo stato del batch
  • Passaggio 3.2.3. Esaminare il report di riepilogo

3.1. Creazione di input per il servizio di aggregazione

Procedi creando i report AVRO per l'aggregazione nel servizio di aggregazione. I comandi shell in questi passaggi possono essere eseguiti in Cloud Shell di Google Cloud (a condizione che le dipendenze dei prerequisiti siano clonate nel tuo ambiente Cloud Shell) o in un ambiente di esecuzione locale.

3.1.1. Report Trigger

Segui il link per accedere al sito, quindi puoi visualizzare i report all'indirizzo chrome://private-aggregation-internals:

Pagina Componenti interni di Chrome

Il report inviato all'endpoint {reporting-origin}/.well-known/private-aggregation/debug/report-shared-storage si trova anche nel "Testo del report" dei report visualizzati nella pagina Informazioni interne di Chrome.

Potresti visualizzare molti report qui, ma per questo codelab, utilizza il report aggregabile specifico per Google Cloud e generato dall'endpoint di debug. L'URL report conterrà "/debug/" e il aggregation_coordinator_origin field del "Testo del report" conterrà questo URL: https://publickeyservice.msmt.gcp.privacysandboxservices.com.

Report di debug Google Cloud

3.1.2. Raccogliere report aggregabili

Raccogli i report aggregabili dagli endpoint .well-known della tua API corrispondente.

  • Private Aggregation: {reporting-origin}/.well-known/private-aggregation/report-shared-storage
  • Attribution Reporting - Report di riepilogo: {reporting-origin}/.well-known/attribution-reporting/report-aggregate-attribution

Per questo codelab, eseguiamo la raccolta dei report manualmente. In produzione, le piattaforme ad tech devono raccogliere e convertire i report in modo programmatico.

Andiamo avanti e copiamo il report JSON in "Testo report" da chrome://private-aggregation-internals.

In questo esempio utilizziamo vim perché stiamo usando Linux. Tuttavia, puoi utilizzare qualsiasi editor di testo.

vim report.json

Incolla il report in report.json e salva il file.

Report JSON

3.1.3. Converti i report in AVRO

I report ricevuti dagli endpoint .well-known sono in formato JSON e devono essere convertiti in formato report AVRO. Una volta ottenuto il report JSON, vai alla posizione in cui è archiviato report.json e utilizza aggregatable_report_converter.jar per creare il report aggregabile di debug. Viene creato un report aggregabile denominato report.avro nella directory corrente.

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

3.1.4. Crea output_domain AVRO

Per creare il file output_domain.avro, devi disporre delle chiavi del bucket che possono essere recuperate dai report.

Le chiavi dei bucket sono progettate dall'adTech. Tuttavia, in questo caso, il sito Privacy Sandbox Demo crea le chiavi del bucket. Poiché l'aggregazione privata per questo sito è in modalità di debug, possiamo utilizzare debug_cleartext_payload dal "Testo del report" per ottenere la chiave del bucket.

Copia debug_cleartext_payload dal corpo del report.

Eseguire il debug del payload in testo chiaro

Apri goo.gle/ags-payload-decoder, incolla il tuo debug_cleartext_payload nella casella "INPUT" e fai clic su "Decodifica".

Pulsante Decodifica

La pagina restituisce il valore decimale della chiave del bucket. Di seguito è riportata una chiave del bucket di esempio.

Chiave del bucket

Ora che abbiamo la chiave del bucket, creiamo il file output_domain.avro nella stessa cartella in cui abbiamo lavorato. Assicurati di sostituire la chiave del bucket con quella che hai recuperato.

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

Lo script crea il file output_domain.avro nella cartella corrente.

3.1.5. Spostare i report nel bucket Cloud Storage

Dopo aver creato i report e il dominio di output Avro, spostali nel bucket in Cloud Storage (che hai annotato nel Prerequisito 1.6).

Se hai configurato gcloud CLI nel tuo ambiente locale, utilizza i comandi riportati di seguito per copiare i file nelle cartelle corrispondenti.

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

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

In caso contrario, carica manualmente i file nel bucket. Crea una cartella denominata "report" e carica il file report.avro al suo interno. Crea una cartella denominata "output_domains" e carica il file output_domain.avro al suo interno.

3.2. Utilizzo del servizio di aggregazione

Ricorda che nel Prerequisito 1.8 hai selezionato cURL o Postman per effettuare richieste API agli endpoint del servizio di aggregazione. Di seguito sono riportate le istruzioni per entrambe le opzioni.

Se il job non va a buon fine a causa di un errore, consulta la nostra documentazione sulla risoluzione dei problemi in GitHub per ulteriori informazioni su come procedere.

3.2.1. Utilizzo di createJob Endpoint per il batch

Utilizza le istruzioni di cURL o Postman riportate di seguito per creare un job.

cURL

In "Terminale", crea un file del corpo della richiesta (body.json) e incolla il codice riportato di seguito. Assicurati di aggiornare i valori segnaposto. Per ulteriori informazioni su cosa rappresenta ogni campo, consulta questa documentazione dell'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"
  }
}

Esegui la richiesta riportata di seguito. Sostituisci i segnaposto nell'URL della richiesta cURL con i valori di frontend_service_cloudfunction_url, che viene visualizzato dopo il completamento del deployment di Terraform nel Prerequisito 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

Una volta che la richiesta viene accettata dal servizio di aggregazione, dovresti ricevere una risposta HTTP 202. Altri possibili codici di risposta sono documentati nelle specifiche dell'API.

Postman

Per l'endpoint createJob, è necessario un corpo della richiesta per fornire al servizio di aggregazione la posizione e i nomi dei file dei report aggregabili, dei domini di output e dei report di riepilogo.

Vai alla scheda "Testo" della richiesta createJob:

Scheda Testo

Sostituisci i segnaposto all'interno del file JSON fornito. Per ulteriori informazioni su questi campi e su cosa rappresentano, consulta la documentazione dell'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"
  }
}

"Invia" la richiesta all'API createJob:

Pulsante Invia

Il codice di risposta si trova nella metà inferiore della pagina:

Codice risposta

Una volta che la richiesta viene accettata dal servizio di aggregazione, dovresti ricevere una risposta HTTP 202. Altri possibili codici di risposta sono documentati nelle specifiche dell'API.

3.2.2. Utilizzo dell'endpoint getJob per recuperare lo stato del batch

Utilizza le istruzioni di cURL o Postman riportate di seguito per ottenere un job.

cURL

Esegui la richiesta riportata di seguito nel terminale. Sostituisci i segnaposto nell'URL con i valori di frontend_service_cloudfunction_url, lo stesso URL utilizzato per la richiesta createJob. Per "job_request_id", utilizza il valore del job creato con l'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>

Il risultato dovrebbe restituire lo stato della richiesta di job con un codice di stato HTTP 200. Il "corpo" della richiesta contiene le informazioni necessarie, come job_status, return_message e error_messages (se il job ha generato un errore).

Postman

Per controllare lo stato della richiesta di job, puoi utilizzare l'endpoint getJob. Nella sezione "Params" della richiesta getJob, aggiorna il valore job_request_id con il valore job_request_id inviato nella richiesta createJob.

ID richiesta di lavoro

"Invia" la richiesta getJob:

Pulsante Invia

Il risultato dovrebbe restituire lo stato della richiesta di job con un codice di stato HTTP 200. Il "corpo" della richiesta contiene le informazioni necessarie, come job_status, return_message e error_messages (se il job ha generato un errore).

JSON della risposta

3.2.3. Esaminare il report di riepilogo

Una volta ricevuto il report di riepilogo nel bucket Cloud Storage di output, puoi scaricarlo nel tuo ambiente locale. I report di riepilogo sono in formato AVRO e possono essere convertiti nuovamente in JSON. Puoi utilizzare aggregatable_report_converter.jar per leggere il report utilizzando il comando riportato di seguito.

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

Viene restituito un file JSON dei valori aggregati di ogni chiave del bucket simile al seguente.

Report di riepilogo

Se la richiesta createJob include debug_run come true, puoi ricevere il report di riepilogo nella cartella di debug che si trova in output_data_blob_prefix. Il report è in formato AVRO e può essere convertito in JSON utilizzando il comando riportato sopra.

Il report contiene la chiave del bucket, la metrica senza rumore e il rumore aggiunto alla metrica senza rumore per formare il report di riepilogo. Il report è simile al seguente.

Report con rumore

Le annotazioni contengono anche "in_reports" e/o "in_domain", il che significa che:

  • in_reports: la chiave del bucket è disponibile all'interno dei report aggregabili.
  • in_domain: la chiave del bucket è disponibile all'interno del file AVRO output_domain.

Codelab completato.

Riepilogo: hai eseguito il deployment del servizio di aggregazione nel tuo ambiente cloud, hai raccolto un report di debug, hai creato un file di dominio di output, hai archiviato questi file in un bucket Cloud Storage ed eseguito un job con esito positivo.

Passaggi successivi:continua a utilizzare il servizio di aggregazione nel tuo ambiente o elimina le risorse cloud che hai appena creato seguendo le istruzioni di pulizia nel passaggio 4.

4. 4. Eliminazione

Per eliminare le risorse create per il servizio di aggregazione tramite Terraform, utilizza il comando destroy nelle cartelle adtech_setup e dev (o in un altro ambiente):

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

Per eliminare il bucket Cloud Storage contenente i report aggregabili e di riepilogo:

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

Puoi anche scegliere di ripristinare le impostazioni dei cookie di Chrome dal Prerequisito 1.2 allo stato precedente.

5. 5. Appendice

File adtech_setup.auto.tfvars di esempio

/**
 * 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>"

File dev.auto.tfvars di esempio

/**
 * 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