Praca z usługą agregacji w AWS

Praca z usługą agregacji w AWS

Informacje o tym ćwiczeniu (w Codelabs)

subjectOstatnia aktualizacja: kwi 3, 2025
account_circleAutorzy: Maybelline Boon

1. Wymagania wstępne

Aby wykonać to ćwiczenie, musisz spełnić kilka warunków wstępnych. Każde wymaganie jest odpowiednio oznaczone, aby pokazać, czy jest wymagane w przypadku „testowania lokalnego” czy „usługi agregacji”.

1.1. Pobieranie narzędzia do testowania lokalnego (testowanie lokalne)

Testowanie lokalne wymaga pobrania narzędzia do testowania lokalnego. Narzędzie wygeneruje raporty podsumowania na podstawie niezaszyfrowanych raportów z debugowania.

Narzędzie do testowania lokalnego można pobrać z archiwów JAR usługi Lambda na GitHubie. Powinien nazywać się LocalTestingTool_{version}.jar.

1.2. Sprawdź, czy zainstalowana jest JAVA JRE (usługa lokalnego testowania i zbiorczości)

Otwórz „Terminal” i użyj polecenia java --version, aby sprawdzić, czy na komputerze jest zainstalowana Java lub openJDK.

Sprawdzanie wersji java jre za pomocą polecenia „java --version”.

Jeśli nie jest zainstalowana, możesz ją pobrać i zainstalować z witryny Java lub witryny openJDK.

1.3. Pobieranie konwertera raportów zbiorczych (usługa testowania lokalnego i agregacji)

Kopie konwertera raportów umożliwiającego agregację możesz pobrać z repozytorium demonstracyjnego Piaskownicy prywatności na GitHubie.

1.4. Włącz interfejsy API dotyczące prywatności reklam (lokalna usługa testowania i zbiorcze)

W przeglądarce otwórz chrome://settings/adPrivacy i włącz wszystkie interfejsy Ad Privacy API.

Upewnij się, że masz włączoną obsługę plików cookie innych firm.

W przeglądarce otwórz chrome://settings/cookies i wybierz „Blokuj pliki cookie innych firm w trybie incognito”.

Ustawienia plików cookie innych firm w Chrome.

1.5. Rejestracja w internecie i na Androida (usługa do agregacji)

Aby używać interfejsów API Piaskownicy prywatności w sytuacji produkcyjnej, musisz dokończyć rejestrację i potwierdzenie w przypadku zarówno Chrome, jak i Androida.

W przypadku testów lokalnych rejestrację można wyłączyć za pomocą flagi Chrome i przełącznika w CLI.

Aby użyć flagi Chrome w naszym pliku demonstracyjnym, otwórz chrome://flags/#privacy-sandbox-enrollment-overrides i zaktualizuj zastąpienie w swojej witrynie. Jeśli zamiast tego chcesz użyć naszej witryny demonstracyjnej, nie musisz nic zmieniać.

Flaga Chrome do zastąpienia rejestracji w Piaskownicy prywatności

1.6. Wdrażanie usługi do agregacji (usługa do agregacji)

Aby móc korzystać z usługi agregacji, koordynatorzy muszą przejść proces wdrożenia. Wypełnij formularz rejestracji usługi agregacji, podając adres witryny raportującej, identyfikator konta AWS i inne informacje.

1.7. Dostawca usług w chmurze (usługa agregacji)

Usługa agregacji wymaga użycia zaufanego środowiska wykonawczego, które korzysta z środowiska chmurowego. Usługa agregacji jest obsługiwana w Amazon Web Services (AWS) i Google Cloud (GCP). To Codelab dotyczy tylko integracji z AWS.

AWS udostępnia zaufane środowisko wykonawcze o nazwie Nitro Enclaves. Upewnij się, że masz konto AWS, i skonfiguruj środowisko AWS CLI, wykonując instrukcje instalacji i aktualizacji AWS CLI.

Jeśli interfejs AWS CLI jest nowy, możesz go skonfigurować, korzystając z instrukcji konfiguracji interfejsu wiersza poleceń.

1.7.1. Tworzenie zasobnika AWS S3

Utwórz zasobnik AWS S3 do przechowywania stanu Terraform oraz inny zasobnik S3 do przechowywania raportów i raportów podsumowujących. Możesz użyć podanego polecenia wiersza poleceń. Zastąp pole w pozycji <> odpowiednimi zmiennymi.

aws s3api create-bucket --bucket <tf_bucket_name> --region us-east-1
aws s3api create-bucket --bucket <report_bucket_name> --region us-east-1

1.7.2. Tworzenie klucza dostępu użytkownika

Utwórz klucze dostępu użytkownika, korzystając z tego przewodnika AWS. Będzie on używany do wywoływania punktów końcowych interfejsu API createJob i getJob utworzonych w AWS.

1.7.3. Uprawnienia użytkowników i grup AWS

Aby wdrożyć usługę agregacji w AWS, musisz przyznać użytkownikowi używanemu do wdrażania usługi określone uprawnienia. W tym Codelab upewnij się, że użytkownik ma dostęp administratora, aby mieć pełne uprawnienia do wdrażania.

1.8. Terraform (usługa do agregacji)

W tym Codelab do wdrożenia usługi agregacji używamy Terraform. Upewnij się, że plik binarny Terraform jest zainstalowany w środowisku lokalnym.

Pobierz plik binarny Terraform do środowiska lokalnego.

Po pobraniu pliku binarnego Terraform wyodrębnij go i przenieś do folderu /usr/local/bin.

cp <directory>/terraform /usr/local/bin

Sprawdź, czy Terraform jest dostępny w classpath.

terraform -v

1.9. Postman (dla usługi AWS Aggregation)

W tym Codelab do zarządzania żądaniami użyj Postmana.

Aby utworzyć obszar roboczy, kliknij element menu u góry „Obszary robocze” i wybierz „Utwórz obszar roboczy”.

postman workspace

Wybierz „Pusty obszar roboczy”, kliknij Dalej i nadaj mu nazwę „Privacy Sandbox”. Wybierz „Osobiście” i kliknij „Utwórz”.

Pobierz wstępnie skonfigurowany obszar roboczy, konfigurację JSON i pliki Global Environment.

Zaimportuj pliki JSON do „Mojego środowiska pracy” za pomocą przycisku „Importuj”.

importować pliki JSON z postmana,

Spowoduje to utworzenie kolekcji Piaskownicy prywatności wraz z żądaniami HTTP createJobgetJob.

Kolekcja zaimportowana z Postmana.

Zaktualizuj „Klucz dostępu” i „Klucz tajny” w AWS za pomocą „Szybki przegląd środowiska”.

Szybki podgląd środowiska Postman

Kliknij Edytuj i zaktualizuj „Obecna wartość” zarówno w przypadku „access_key”, jak i „secret_key”. Pamiętaj, że informacje o frontend_api_id znajdziesz w sekcji 3.1.4 tego dokumentu. Zalecamy użycie regionu us-east-1. Jeśli jednak chcesz wdrożyć AMI w innym regionie, skopiuj opublikowany AMI na swoje konto lub samodzielnie skompiluj AMI, korzystając z dostępnych skryptów.

Zmienne globalne w Postman. Edytowanie zmiennych globalnych w Postman.

2. Testowanie lokalne (Codelab)

Możesz użyć lokalnego narzędzia do testowania na swoim komputerze, aby przeprowadzić agregację i wygenerować raporty podsumowujące na podstawie niezaszyfrowanych raportów debugowania.

Kroki w ćwiczeniach w Codelab

Krok 2.1. Wyzwalanie raportu: wyzwala raportowanie Private Aggregation, aby można było zebrać dane do raportu.

Krok 2.2. Tworzenie agregowalnego raportu debugowania: zmapuj zebrany raport w formacie JSON na raport w formacie AVRO.
Ten krok będzie podobny do tego, gdy specjaliści ds. technologii reklamowych zbierają raporty z punktów końcowych raportowania interfejsu API i konwertują raporty w formacie JSON na raporty w formacie Avro.

Krok 2.3. Przeanalizuj klucz zasobnika z raportu debugowania: klucze zasobników są tworzone przez dostawców technologii reklamowych. W tym ćwiczeniu zasobniki są zdefiniowane wstępnie, więc pobierz klucze zasobników zgodnie z ich nazwami.

Krok 2.4. Utwórz plik AVRO domeny wyjściowej: po pobraniu kluczy zasobnika utwórz plik AVRO domeny wyjściowej.

Krok 2.5. Tworzenie raportów podsumowania za pomocą narzędzia do testowania lokalnego: za pomocą narzędzia do testowania lokalnego możesz tworzyć raporty podsumowania w środowisku lokalnym.

Krok 2.6. Sprawdzanie raportu podsumowującego: sprawdź raport podsumowujący utworzony przez narzędzie do testowania lokalnego.

2.1. Raport o aktywatorach

Otwórz stronę demo Piaskownicy prywatności. Spowoduje to wygenerowanie prywatnego raportu zbiorczego. Raport możesz wyświetlić na stronie chrome://private-aggregation-internals.

Wewnętrzne mechanizmy prywatnego agregowania danych w Chrome.

Jeśli raport ma stan „Oczekuje”, możesz go wybrać i kliknąć „Wyślij wybrane raporty”.

Wysyłanie prywatnego raportu zbiorczego.

2.2. Tworzenie raportu umożliwiającego agregację danych na potrzeby debugowania

chrome://private-aggregation-internals skopiuj „treść raportu”, który został przesłany w punkcie końcowym [reporting-origin]/.well-known/private-aggregation/report-shared-storage.

Upewnij się, że w sekcji „Treść raportu” element aggregation_coordinator_origin zawiera wartość https://publickeyservice.msmt.aws.privacysandboxservices.com, co oznacza, że raport jest raportem zbiorczym AWS.

Raport prywatny o zbiorcach.

Umieść w pliku JSON element „Report Body”. W tym przykładzie możesz użyć programu vim. Możesz jednak użyć dowolnego edytora tekstu.

vim report.json

Wklej raport w miejscu report.json i zapisz plik.

Plik JSON raportu.

Następnie przejdź do folderu raportów i użyj funkcji aggregatable_report_converter.jar, aby utworzyć raport debugowania, który można agregować. Spowoduje to utworzenie w bieżącym katalogu raportu o nazwie report.avro, który można zsumować.

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

2.3. Przeanalizuj klucz zbioru z raportu debugowania.

Usługa do agregacji wymaga 2 plików podczas zbiorczego przetwarzania. Raport możliwy do agregacji i plik domeny wyjściowej. Plik domeny wyjściowej zawiera klucze, które chcesz pobrać z raportów podlegających agregacji. Aby utworzyć plik output_domain.avro, musisz mieć klucze zasobników, które można pobrać z raportów.

Klucze zasobników są projektowane przez wywołującego interfejs API, a demo zawiera przykładowe klucze zasobników. Ponieważ w tym przykładzie włączony jest tryb debugowania prywatnej agregacji, możesz przeanalizować niezaszyfrowany ładunek debugowania z sekcji „Treść raportu”, aby pobrać klucz zbiornika. W tym przypadku jednak witryna demo Piaskownicy prywatności tworzy klucze zbiorów. Ponieważ prywatna agregacja danych w przypadku tej witryny jest w trybie debugowania, możesz użyć wartości debug_cleartext_payload z sekcji „Treść raportu”, aby uzyskać klucz zbioru.

Skopiuj debug_cleartext_payload z treści raportu.

Debugowanie ładunku w postaci zwykłego tekstu z treści raportu.

Otwórz narzędzie Dekodowanie debugowania danych dla prywatnej agregacji, wklej debug_cleartext_payload w polu „WEJŚCIE” i kliknij „Odkoduj”.

Dekoder ładunku.

Strona zwraca wartość dziesiętną klucza puli. Oto przykładowy klucz zasobnika.

Wynik dekodera ładunku.

2.4. Tworzenie domeny wyjściowej AVRO

Gdy już mamy klucz zasobnika, skopiuj jego wartość dziesiętną. Utwórz output_domain.avro, używając klucza zasobnika. Pamiętaj, aby zastąpić kluczem zasobnika, który został pobrany.

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

Skrypt utworzy plik output_domain.avro w bieżącym folderze.

2,5. Tworzenie raportów zbiorczych za pomocą narzędzia do testów lokalnych

Do tworzenia raportów zbiorczych użyjemy pliku LocalTestingTool_{version}.jar pobranego w sekcji 1.1. Użyj tego polecenia. Zamiast LocalTestingTool_{version}.jar wpisz wersję pobraną dla LocalTestingTool.

Aby wygenerować raport podsumowujący w lokalnym środowisku programistycznym, uruchom to polecenie:

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

Po wykonaniu polecenia powinieneś zobaczyć coś podobnego do tego obrazu. Gdy to nastąpi, zostanie utworzony raport output.avro.

Plik avro z raportami z testów lokalnych.

2.6. Przeglądanie raportu podsumowującego

Utworzony raport podsumowania jest w formacie AVRO. Aby móc je odczytać, musisz przekonwertować je z formatu AVRO na format JSON. W idealnej sytuacji technologia reklamowa powinna zawierać kod do konwertowania raportów AVRO na format JSON.

W tym Codelab użyjemy udostępnionego narzędzia aggregatable_report_converter.jar, aby przekonwertować raport AVRO z powrotem do formatu JSON.

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

Zwraca on raport podobny do tego na ilustracji. oraz raport output.json utworzony w tym samym katalogu.

Plik avro z podsumowaniem został przekonwertowany na format JSON.

Aby przejrzeć raport podsumowania, otwórz plik JSON w wybranym edytorze.

3. Wdrożenie usługi do agregacji

Aby wdrożyć usługę agregacji, wykonaj te czynności:

Krok 3. Wdrażanie usługi agregacji: wdróż usługę agregacji w AWS
Krok 3.1.
Sklonuj repozytorium usługi do agregacji
Krok 3.2. Pobierz wstępnie utworzone zależności
Krok 3.3 Tworzenie środowiska programistycznego
Krok 3.4. Wdrażanie usługi do agregacji

3.1. Klonowanie repozytorium usługi agregacji

W środowisku lokalnym sklonuj repozytorium GitHub usługi agregacji.

git clone https://github.com/privacysandbox/aggregation-service.git

3.2. Pobieranie wstępnie utworzonych zależności

Po sklonowaniu repozytorium usługi agregacji przejdź do folderu Terraform repozytorium i do odpowiedniego folderu w chmurze. Jeśli parametr cloud_provider ma wartość AWS, możesz przejść do /terraform/aws

cd <repository_root>/terraform/aws

W funkcji /terraform/aws wykonaj instrukcję download_prebuilt_dependencies.sh.

bash download_prebuilt_dependencies.sh

3.3 Tworzenie środowiska programistycznego

Utwórz środowisko programistyczne w /terraform/aws/environments. Utwórz folder o nazwie dev.

mkdir dev

Skopiuj zawartość folderu demo do folderu dev.

cp -R demo/* dev

Przenieś je do folderu dev.

cd dev

Zaktualizuj plik main.tf i naciśnij i, aby edytować plik input.

vim main.tf

Odkomentuj kod w czerwonym polu, usuwając # i zmieniając nazwy zasobnika i klucza.

W przypadku pliku main.tf w AWS:

Główny plik tf usługi AWS.

Nieskomentowany kod powinien wyglądać tak:

backend "s3" {
  bucket = "<tf_state_bucket_name>"
  key    = "<environment_name>.tfstate"
  region = "us-east-1"
}

Po zakończeniu wprowadzania zmian zapisz je i zamknij edytor, naciskając esc -> :wq!. W ten sposób zapiszesz aktualizacje w main.tf.

Następnie zmień nazwę example.auto.tfvars na dev.auto.tfvars.

mv example.auto.tfvars dev.auto.tfvars

Zaktualizuj dev.auto.tfvars i naciśnij i, aby edytować plik.input

vim dev.auto.tfvars

Zaktualizuj pola w czerwonym polu na obrazku, podając prawidłowe parametry AWS ARN, które są podawane podczas konfiguracji usługi agregacji, środowiska i e-maila z powiadomieniem.

Edytuj plik dev auto tfvars.

Po zakończeniu aktualizacji naciśnij esc -> :wq!. Spowoduje to zapisanie pliku dev.auto.tfvars, który powinien wyglądać mniej więcej tak, jak na poniższym obrazku.

Zaktualizowano plik dev auto tfvars.

3.4. Wdrażanie usługi do agregacji

Aby wdrożyć usługę Aggregation Service, w tym samym folderze /terraform/aws/environments/dev zainicjuj Terraform.

terraform init

Powinieneś otrzymać coś podobnego do tego obrazu:

Terraform init.

Po zainicjowaniu Terraform utwórz plan wykonania Terraform. Zwraca liczbę zasobów do dodania oraz inne dodatkowe informacje podobne do tych na poniższym obrazie.

terraform plan

Poniżej możesz zobaczyć podsumowanie „Planu”. Jeśli jest to nowe wdrożenie, powinna pojawić się liczba zasobów, które zostaną dodane, z wartością 0 w kolumnach Zmień i Zniszcz.

Plan Terraform.

Gdy to zrobisz, możesz zastosować Terraform.

terraform apply

Gdy pojawi się prośba o potwierdzenie wykonania działań przez Terraform, wpisz yes jako wartość.

Prompt dotyczący stosowania Terraform.

Gdy usługa terraform apply zakończy działanie, zwraca te punkty końcowe: createJobgetJob. Zwracana jest też wartość frontend_api_id, którą musisz zaktualizować w Postman w sekcji 1.9.

Zastosowanie Terraform zostało zakończone.

4. Tworzenie danych wejściowych usługi do agregacji

Utwórz raporty AVRO do grupowania w usłudze do agregacji.

Krok 4. Tworzenie danych wejściowych usługi do agregacji: utwórz raporty usługi do agregacji, które są grupowane w partie na potrzeby usługi do agregacji.
Krok 4.1. Wyzwalanie raportu
Krok 4.2 Zbieraj raporty zbiorcze
Krok 4.3 Konwertowanie raportów na format AVRO
Krok 4.4. Tworzenie domeny wyjściowej AVRO

4.1. Raport o aktywatorach

Otwórz stronę demo Piaskownicy prywatności. Spowoduje to wygenerowanie prywatnego raportu zbiorczego. Raport możesz wyświetlić na stronie chrome://private-aggregation-internals.

Wewnętrzne mechanizmy prywatnego agregowania danych w Chrome.

Jeśli raport ma stan „Oczekuje”, możesz go wybrać i kliknąć „Wyślij wybrane raporty”. '

Wysyłanie prywatnego raportu zbiorczego.

4.2. Zbieranie raportów zbiorczych

Zbieraj raporty podlegające agregacji z punktów końcowych .well-known odpowiedniego interfejsu API.

  • Private Aggregation
    [reporting-origin] /.well-known/private-aggregation/report-shared-storage
  • Attribution Reporting - Summary Report
    [reporting-origin] /.well-known/attribution-reporting/report-aggregate-attribution

W tym ćwiczeniu zbierzesz raporty ręcznie. W środowisku produkcyjnym firmy zajmujące się technologiami reklamowymi powinny zbierać i konwertować raporty za pomocą programów.

chrome://private-aggregation-internals skopiuj „treść raportu”, który został przesłany w punkcie końcowym [reporting-origin]/.well-known/private-aggregation/report-shared-storage.

Upewnij się, że w sekcji „Treść raportu” element aggregation_coordinator_origin zawiera wartość https://publickeyservice.msmt.aws.privacysandboxservices.com, co oznacza, że raport jest raportem zbiorczym AWS.

Raport prywatny o zbiorcach.

Umieść w pliku JSON element „Report Body”. W tym przykładzie możesz użyć programu vim. Możesz jednak użyć dowolnego edytora tekstu.

vim report.json

Wklej raport w miejscu report.json i zapisz plik.

Plik JSON raportu.

4.3. Konwertowanie raportów na format AVRO

Raporty otrzymywane z punktów końcowych .well-known są w formacie JSON i muszą zostać przekonwertowane do formatu raportu AVRO. Gdy masz już raport w formacie JSON, przejdź do folderu raportów i utwórz raport z możliwością agregacji, korzystając z funkcji aggregatable_report_converter.jar. Spowoduje to utworzenie w bieżącym katalogu raportu o nazwie report.avro, który można zsumować.

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

4.4. Tworzenie domeny wyjściowej AVRO

Aby utworzyć plik output_domain.avro, musisz mieć klucze zasobników, które można pobrać z raportów.

Klucze zbiorów są projektowane przez technologię reklamową. W tym przypadku klucze zbiorów tworzy witryna demo Piaskownicy prywatności. Ponieważ prywatna agregacja danych w przypadku tej witryny jest w trybie debugowania, możesz użyć wartości debug_cleartext_payload z sekcji „Treść raportu”, aby uzyskać klucz zbioru.

Skopiuj debug_cleartext_payload z treści raportu.

Debugowanie ładunku w postaci zwykłego tekstu z treści raportu.

Otwórz stronę goo.gle/ags-payload-decoder, wklej dane debug_cleartext_payload do pola „INPUT” i kliknij „Decode”.

Dekoder ładunku.

Strona zwraca wartość dziesiętną klucza puli. Oto przykładowy klucz zasobnika.

Wynik dekodera ładunku.

Gdy mamy już klucz zasobnika, utwórz output_domain.avro. Pamiętaj, aby zastąpić kluczem zasobnika, który został pobrany.

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

Skrypt utworzy plik output_domain.avro w bieżącym folderze.

4,5. Przenoszenie raportów do zasobnika AWS

Po utworzeniu raportów AVRO (z sekcji 3.2.3) i domeny wyjściowej (z sekcji 3.2.4) przenieś raporty i domenę wyjściową do puli S3 na potrzeby raportowania.

Jeśli masz skonfigurowany interfejs wiersza poleceń AWS w środowisku lokalnym, użyj podanych niżej poleceń, aby skopiować raporty do odpowiedniego folderu raportów i zasonika S3.

aws s3 cp report.avro s3://<report_bucket_name>/<report_folder>/
aws s3 cp output_domain
.avro s3://<report_bucket_name>/<output_domain_folder>/

5. Korzystanie z usługi do agregacji

terraform apply zwracane są wartości create_job_endpoint, get_job_endpointfrontend_api_id. Skopiuj wartość frontend_api_id i wstaw ją do zmiennej globalnej Postmana frontend_api_id skonfigurowanej w sekcji wymagań wstępnych 1.9.

Krok 5. Korzystanie z usługi agregacji: twórz raporty podsumowujące i je przeglądaj za pomocą interfejsu API usługi agregacji.
Krok 5.1. Używanie punktu końcowego createJob do zbiorczego przetwarzania
Krok 5.2. Używanie punktu końcowego getJob do pobierania stanu zbiorczego
Krok 5.3. Sprawdzanie raportu zbiorczego

5.1. Używanie punktu końcowego createJob do zbiorczego przetwarzania

W Postman otwórz kolekcję „Privacy Sandbox” i wybierz „createJob”.

Aby umieścić ładunek żądania, wybierz „Body” i „raw”.

Treść żądania postman createJob

Schemat ładunku createJob jest dostępny na GitHub i wygląda podobnie do tego: Zastąp <> odpowiednimi polami.

{
   
"job_request_id": "<job_request_id>",
   
"input_data_blob_prefix": "<report_folder>/<report_name>.avro",
   
"input_data_blob_prefixes": [
     
"<report_folder>/<report_name-1>/",
     
"<report_folder>/<report_name-2>/",
     
"<report_folder>/<report_name>.avro"
   
], // Mutually exclusive to input_data_blob_prefix as of v2.11.0
   
"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>", // Mutually exclusive to attribution_report_to as of v2.7.0
     
"report_error_threshold_percentage": "10",
     
"debug_run": "true"
   
}
}

Gdy klikniesz „Wyślij”, utworzy się zadanie z job_request_id. Gdy usługa agregacji zaakceptuje żądanie, powinna zostać zwrócona odpowiedź HTTP 202. Inne możliwe kody zwracane znajdziesz w sekcji Kody odpowiedzi HTTP.

Stan żądania postman createJob

5.2. Używanie punktu końcowego getJob do pobierania stanu grupy

Aby sprawdzić stan żądania zadania, możesz użyć punktu końcowego getJob. W zbiorze „Privacy Sandbox” wybierz „getJob”.

W sekcji „Parametr” zaktualizuj wartość job_request_id na job_request_id, która została wysłana w żądaniu createJob.

żądanie postman getJob

Wynik wywołania getJob powinien zwracać stan żądania zadania z kodem stanu HTTP 200. Żądanie „Body” zawiera niezbędne informacje, takie jak job_status, return_messageerror_messages (jeśli wystąpił błąd).

ostman getJob request status

Ponieważ witryna raportowania wygenerowanego raportu demonstracyjnego różni się od witryny wdrożonej w Twoim identyfikatorze AWS, możesz otrzymać odpowiedź z kodem return_code PRIVACY_BUDGET_AUTHORIZATION_ERROR. Jest to normalne, ponieważ witryna pochodzenia raportów nie jest taka sama jak witryna raportowania dołączona do identyfikatora AWS.

{
      "job_status": "FINISHED",
      "request_received_at": "2023-12-07T22:50:58.830956Z",
      "request_updated_at": "2023-12-07T22:51:10.526326456Z",
      "job_request_id": "<job_request_id>",
      "input_data_blob_prefix": "<report_folder>/<report_name>.avro",
      "input_data_blob_prefixes": [ // Mutually exclusive to input_data_blob_prefix as of v2.11.0
        "<report_folder>/<report_name-1>/",
        "<report_folder>/<report_name-2>/",
        "<report_folder>/<report_name>.avro"
      ],
      "input_data_bucket_name": "<input_bucket_name>",
      "output_data_blob_prefix": "<output_folder>/<summary_report_prefix>",
      "output_data_bucket_name": "<output_bucket_name>",
      "postback_url": "",
      "result_info": {
          "return_code": "PRIVACY_BUDGET_AUTHORIZATION_ERROR",
          "return_message": "Aggregation job successfully processed",
          "error_summary": {
              "error_counts": [],
              "error_messages": []
          },
          "finished_at": "2023-12-07T22:51:10.517730898Z"
      },
      "job_parameters": {
          "debug_run": "true",
          "output_domain_bucket_name": "<output_domain_bucket_name>",
          "output_domain_blob_prefix": "<output_domain_folder>/<output_domain>.avro",
          "attribution_report_to": "https://privacy-sandbox-demos-dsp.dev",
          "reporting_site": "<domain of reporting origin(s) of report>", // Mutually exclusive to attribution_report_to as of v2.7.0
      },
      "request_processing_started_at": "2023-12-07T22:51:06.034472697Z"
}

5.3. Sprawdzanie raportu zbiorczego

Gdy otrzymasz raport podsumowujący w schowisku S3 wyjściowym, możesz go pobrać do środowiska lokalnego. Raporty podsumowania są w formacie AVRO i można je przekonwertować z powrotem na format JSON. Aby odczytać raport, możesz użyć polecenia aggregatable_report_converter.jar.

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

Ta operacja zwraca dane w formacie JSON z zbiorczymi wartościami każdego klucza zbiornika, które wyglądają podobnie do tego obrazu.

Raport zbiorczy.

Jeśli Twoje żądanie createJob zawiera debug_run jako true, możesz otrzymać raport podsumowania w folderze debugowania w folderze output_data_blob_prefix. Raport jest w formacie AVRO i można go przekonwertować na format JSON za pomocą poprzedniego polecenia.

Raport zawiera klucz zbioru, dane bez szumu oraz szum dodany do danych bez szumu, aby utworzyć raport podsumowujący. Raport wygląda podobnie do tego na poniższym obrazku.

Raport podsumowujący debugowanie.

Oprócz tego adnotacje zawierają in_reportsin_domain, co oznacza:

  • in_reports – klucz zbiornika jest dostępny w raportach podlegających agregacji.
  • in_domain – klucz zasobnika jest dostępny w pliku AVRO domeny wyjściowej.