Praca z usługą agregacji w AWS

1. Wymagania wstępne

Aby wykonać to ćwiczenie w Codelabs, musisz spełnić kilka wymagań wstępnych. Każdy wymóg jest odpowiednio oznaczony, niezależnie od tego, czy jest wymagany w przypadku „testów lokalnych” czy „usługi agregacji”.

1.1. Pobierz narzędzie do testowania lokalnego (testowanie lokalne)

Testy lokalne będą wymagały pobrania narzędzia do testowania lokalnego. Narzędzie wygeneruje raporty podsumowujące na podstawie niezaszyfrowanych raportów debugowania.

Narzędzie do testowania lokalnego jest dostępne do pobrania z archiwów Lambda JAR w GitHub. Powinien mieć nazwę LocalTestingTool_{version}.jar.

1.2. Sprawdź, czy zainstalowano JAVA JRE (Usługa testowania i agregacji)

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

sprawdzanie wersji środowiska jre Java za pomocą środowiska java\n--version

Jeśli nie jest, możesz go pobrać i zainstalować z witryny Java lub strony openJDK.

1.3. Pobierz narzędzie do konwertowania raportów z możliwością agregacji (lokalna usługa testowania i agregacji)

Kopię narzędzia do agregacji raportów możesz pobrać z repozytorium wersji demonstracyjnej Piaskownicy prywatności na GitHubie.

1.4 Włącz interfejsy API Piaskownicy prywatności (usługa testowania lokalnego i agregacji)

W przeglądarce otwórz chrome://flags/#privacy-sandbox-ads-apis i włącz interfejsy API Piaskownicy prywatności.

Piaskownica prywatności chromeflag

Upewnij się, że pliki cookie innych firm są włączone.

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

ustawienia chrome pliki cookie innych firm

1.5. Rejestracja w przeglądarce i na Androidzie (usługa agregująca)

Aby korzystać z interfejsów API Piaskownicy prywatności w środowisku produkcyjnym, musisz przeprowadzić rejestrację i zaświadczenie dotyczące Chrome i Androida.

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

Aby użyć flagi Chrome w wersji demonstracyjnej, wejdź na chrome://flags/#privacy-sandbox-enrollment-overrides i zaktualizuj zastąpienie w swojej witrynie. Jeśli będziesz korzystać z naszej witryny demonstracyjnej, nie musisz nic aktualizować.

zastąpienie rejestracji w piaskownicy prywatności chromeflag

1.6. Wprowadzenie do usługi agregacji (usługa agregująca)

Usługa agregacji wymaga wprowadzenia koordynatorów, aby mogli z niej korzystać. Wypełnij formularz wprowadzający usługi agregacji, podając adres witryny raportowania, identyfikator konta AWS i inne informacje.

1.7 Dostawca chmury (usługa agregacji)

Usługa agregacji wymaga użycia zaufanego środowiska wykonawczego, które korzysta ze środowiska chmury. Usługa agregacji jest obsługiwana w Amazon Web Services (AWS) i Google Cloud (GCP). To ćwiczenie w Codelabs będzie dotyczyć tylko integracji z AWS.

AWS udostępnia enklawy Nitro w zaufanym środowisku wykonawczym. Sprawdź, czy masz konto AWS, a następnie postępuj zgodnie z instrukcjami instalacji i aktualizacji interfejsu AWS CLI, aby skonfigurować środowisko AWS CLI.

Jeśli Twój interfejs wiersza poleceń AWS jest nowy, możesz go skonfigurować za pomocą instrukcji konfiguracji interfejsu wiersza poleceń.

1.7.1. Tworzenie zasobnika AWS S3

Utwórz zasobnik AWS S3 do przechowywania stanu Terraform oraz kolejny zasobnik S3 do przechowywania raportów i raportów podsumowujących. Możesz użyć podanego polecenia interfejsu wiersza poleceń. Zastąp pole w tabeli <> 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. Utwórz klucz dostępu użytkownika

Utwórz klucze dostępu użytkowników, korzystając z przewodnika AWS. Będzie ona używana 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 określone uprawnienia używane do wdrażania tej usługi. W przypadku tych ćwiczeń z programowania sprawdź, czy użytkownik ma dostęp administratora, aby zapewnić pełne uprawnienia we wdrożeniu.

1.8 Terraform (usługa agregacji)

To ćwiczenie w Codelabs używa Terraform do wdrożenia usługi agregacji. Upewnij się, że plik binarny Teraform jest zainstalowany w środowisku lokalnym.

Pobierz plik binarny Teraform do środowiska lokalnego.

Po pobraniu pliku binarnego Terraform rozpakuj go i przenieś plik binarny Terraform do /usr/local/bin.

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

Sprawdź, czy Terraform jest dostępne w ścieżce klasy.

terraform -v

1.9 Postman (dla usługi agregacji AWS)

Na potrzeby tych ćwiczeń z programowania użyj aplikacji Postman do zarządzania żądaniami.

Aby utworzyć obszar roboczy, kliknij górny element nawigacyjny „Obszary robocze” i wybierz „Utwórz obszar roboczy”.

Postmanworkspace

Wybierz „Pusty obszar roboczy”, kliknij Dalej i nadaj mu nazwę „Piaskownica prywatności”. Wybierz „Osobiste” i kliknij „Utwórz”.

Pobierz wstępnie skonfigurowaną konfigurację JSON i środowisko globalne obszaru roboczego.

Zaimportuj pliki JSON do „Mojego obszaru roboczego”, klikając przycisk „Importuj”.

importuj pliki JSON Postman

Spowoduje to utworzenie kolekcji Piaskownicy prywatności wraz z żądaniami HTTP createJob i getJob.

importowana kolekcja listow

Zaktualizuj „Klucz dostępu” i „Tajny klucz” AWS za pomocą Szybkiego spojrzenia na środowisko.

szybki podgląd środowiska Postmana

Kliknij „Edytuj” i zaktualizuj wartość w polu „Bieżąca wartość” atrybutów „access_key” i „secret_key”. Uwaga: frontend_api_id zostanie podane w sekcji 3.1.4 tego dokumentu. Zalecamy też użycie regionu us-east-1. Jeśli jednak chcesz przeprowadzić wdrożenie w innym regionie, skopiuj udostępniony interfejs AMI na swoje konto lub samodzielnie skompiluj aplikację, korzystając z udostępnionych skryptów.

Zmienne globalne Postman

postman edytuj zmienne globalne

2. Ćwiczenia z programowania dotyczące testowania lokalnego

Za pomocą niezaszyfrowanego raportu debugowania możesz użyć lokalnego narzędzia do testowania na swoim komputerze, aby agregować dane i wygenerować raporty podsumowujące.

Etapy ćwiczenia w Codelabs

Krok 2.1. Wygeneruj raport: aktywuj raportowanie agregacji prywatnej, by wygenerować raport.

Krok 2.2 Utwórz raport zbiorczy z możliwością zagregowania danych na potrzeby debugowania: przekonwertuj zebrany raport JSON na raport w formacie AVRO.
Ten krok będzie podobny do zbierania raportów z punktów końcowych raportowania interfejsu API i konwersji raportów JSON na raporty w formacie AVRO.

Krok 2.3 Przeanalizuj klucz zasobnika z raportu debugowania: klucze zasobnika są projektowane przez specjalistów ds. technologii reklamowych. Ponieważ zasobniki są wstępnie zdefiniowane, w ramach tych ćwiczeń z programowania pobierz klucze zasobników w sposób podany.

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

Krok 2.5. Tworzenie raportów podsumowujących za pomocą lokalnego narzędzia do testowania: narzędzie do testowania lokalnego umożliwia tworzenie raportów podsumowujących w środowisku lokalnym.

Krok 2.6. Przejrzyj raport podsumowujący: przejrzyj raport podsumowujący utworzony przez narzędzie do testowania lokalnego.

2.1. Raport wyzwalacza

Otwórz stronę demonstracji Piaskownicy prywatności. Spowoduje to aktywowanie prywatnego raportu agregacji. Raport jest dostępny na chrome://private-aggregation-internals.

prywatna agregacja wewnętrzna w Chrome

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

wyślij prywatny raport zbiorczy

2.2. Tworzenie zbiorczego raportu na temat debugowania

W programie chrome://private-aggregation-internals skopiuj tekst „Treść raportu” otrzymany w punkcie końcowym [reporting-origin]/.well-known/private-aggregation/report-shared-storage.

Upewnij się, że w polu „Report Body” (Treść raportu) pole aggregation_coordinator_origin zawiera wartość https://publickeyservice.msmt.aws.privacysandboxservices.com, co oznacza, że raport jest raportem agregowanym AWS.

raport agregacji prywatnej

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

vim report.json

Wklej raport do usługi report.json i zapisz plik.

plik JSON raportu

Gdy to zrobisz, przejdź do folderu raportów i użyj polecenia aggregatable_report_converter.jar, aby utworzyć raport zbiorczy na potrzeby debugowania. Spowoduje to utworzenie w bieżącym katalogu raportu zbiorczego o nazwie report.avro.

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

2.3. Analizowanie klucza zasobnika z raportu debugowania

Usługa agregacji wymaga 2 plików do grupowania. Raport zbiorczy i wyjściowy plik domeny. Wyjściowy plik domeny zawiera klucze, które chcesz pobrać z raportów zbiorczych. Aby utworzyć plik output_domain.avro, potrzebujesz kluczy zasobnika, które można pobierać z raportów.

Klucze zasobnika są projektowane przez element wywołujący interfejs API, a w wersji demonstracyjnej znajdują się wstępnie skonstruowane przykładowe klucze zasobnika. Ponieważ w wersji demonstracyjnej włączono tryb debugowania na potrzeby agregacji prywatnej, możesz przeanalizować ładunek tekstowy na potrzeby debugowania z pola „Treść raportu”, aby pobrać klucz zasobnika. W takim przypadku klucze zasobnika tworzy jednak prezentacja Piaskownicy prywatności. Agregacja prywatna tej witryny jest w trybie debugowania, więc możesz uzyskać klucz zasobnika, korzystając z metody debug_cleartext_payload z sekcji „Treść raportu”.

Z treści raportu skopiuj debug_cleartext_payload.

debugowanie ładunku tekstowego nieczytelnego z treści raportu

Otwórz narzędzie Debuguj dekoder ładunku na potrzeby agregacji prywatnej, wklej debug_cleartext_payload w polu „INPUT” i kliknij „Decode”.

dekoder ładunku

Strona zwróci wartość dziesiętną klucza zasobnika. Poniżej znajdziesz przykładowy klucz zasobnika.

wynik dekodera ładunku

2.4. Tworzenie AVRO domeny wyjściowej

Skoro masz już klucz zasobnika, możesz skopiować jego wartość dziesiętną. Kontynuuj tworzenie output_domain.avro przy użyciu klucza zasobnika. Pamiętaj, aby zastąpić pobranym kluczem zasobnika.

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 podsumowujących za pomocą lokalnego narzędzia do testowania

Do tworzenia raportów podsumowujących użyjemy pliku LocalTestingTool_{version}.jar pobranego w sekcji 1.1. Użyj tego polecenia. Zastąp LocalTestingTool_{version}.jar wersją pobraną do narzędzia LocalTestingTool.

Aby wygenerować raport podsumowujący w lokalnym środowisku programistycznym, uruchom następujące polecenie:

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

Po uruchomieniu polecenia powinien pojawić się obraz podobny do tego poniżej. Po zakończeniu tego procesu zostanie utworzony raport output.avro.

raport podsumowujący testy lokalne avrofile

2.6 Przeglądanie raportu podsumowującego

Tworzony raport podsumowujący ma format AVRO. Aby można było odczytać te dane, musisz przekonwertować dane z AVRO na format JSON. Najlepiej kodować w przypadku technologii reklamowych, aby przekonwertować raporty AVRO z powrotem do formatu JSON.

W ramach ćwiczenia z programowania użyjemy udostępnionego narzędzia aggregatable_report_converter.jar, aby przekonwertować raport AVRO z powrotem na format JSON.

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

Spowoduje to zwrócenie raportu podobnego do tego poniżej. Wraz z raportem output.json utworzonym w tym samym katalogu.

plik z podsumowaniem przekonwertowany na format JSON

Otwórz plik JSON w wybranym edytorze, aby przejrzeć raport podsumowujący.

3. Wdrożenie usługi agregacji

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

Krok 3. Wdrożenie usługi agregacji: wdrożenie usługi agregacji w AWS
Krok 3.1. Sklonowanie repozytorium usługi agregacji
Krok 3.2. Pobierz gotowe zależności
Krok 3.3. Utwórz środowisko programistyczne
Krok 3.4. Wdrażanie usługi agregacji

3.1. Klonowanie repozytorium usługi agregacji

W środowisku lokalnym skopiuj repozytorium usługi agregacji na GitHubie.

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

3.2. Pobierz gotowe zależności

Po sklonowaniu repozytorium usługi agregacji otwórz folder Terraform repozytorium i odpowiedni folder w chmurze. Jeśli Twoim dostawcą cloud_provider jest AWS, możesz przejść do: /terraform/aws

cd <repository_root>/terraform/aws

W języku /terraform/aws uruchom polecenie download_prebuilt_dependencies.sh.

bash download_prebuilt_dependencies.sh

3.3. Tworzenie środowiska programistycznego

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

mkdir dev

Skopiuj zawartość folderu demo do folderu dev.

cp -R demo/* dev

Przenieś do folderu dev.

cd dev

Zaktualizuj plik main.tf i naciśnij i, aby przejść do edycji pliku input.

vim main.tf

Usuń znacznik komentarza z kodu w czerwonym polu. W tym celu usuń znak # i zaktualizuj nazwy zasobnika oraz kluczy.

W przypadku pliku AWS main.tf:

Główny plik tffile AWS

Kod bez komentarza powinien wyglądać tak:

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

Po zakończeniu aktualizacji zapisz zmiany i zamknij edytor, naciskając esc -> :wq!. Spowoduje to zapisanie aktualizacji w witrynie main.tf.

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

mv example.auto.tfvars dev.auto.tfvars

Zaktualizuj plik dev.auto.tfvars i naciśnij i, aby przejść do edycji pliku input.

vim dev.auto.tfvars

Zaktualizuj pola w czerwonym polu poniżej, podając prawidłowe parametry ARN AWS podane podczas wprowadzenia do usługi agregacji, środowiska i e-maila z powiadomieniem.

edytuj plik tfvarsfile w wersji deweloperskiej

Po zakończeniu aktualizacji naciśnij esc -> :wq!. Spowoduje to zapisanie pliku dev.auto.tfvars. Powinien on wyglądać podobnie do poniższego obrazu.

zaktualizowany plik tfvarsfile dev auto

3.4. Wdrażanie usługi agregacji

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

terraform init

Powinien pojawić się obraz podobny do tego:

terraforminit

Po zainicjowaniu Terraform utwórz plan wykonania Terraform. Gdzie zwraca liczbę zasobów do dodania i inne informacje dodatkowe podobne do tego na obrazie poniżej.

terraform plan

Informacje o tym znajdziesz w podsumowaniu w sekcji „Plan”. Jeśli jest to nowe wdrożenie, powinna wyświetlić się liczba zasobów do dodania – wpisz 0, aby zmienić, i 0 do zniszczenia.

Terraform

Gdy to zrobisz, możesz zastosować Terraform.

terraform apply

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

prośba terraform

Gdy terraform apply zakończy działanie, zwracane są podane niżej punkty końcowe dla funkcji createJob i getJob. Zwracany jest także frontend_api_id, który musisz zaktualizować w Postman w sekcji 1.9.

terraform applycomplete

4. Tworzenie danych wejściowych usługi agregacji

Przejdź dalej, aby utworzyć raporty AVRO do grupowania w usłudze agregacji.

Krok 4. Utworzenie danych wejściowych usługi agregacji: utwórz raporty usługi agregacji grupowane na potrzeby usługi agregacji.
Krok 4.1. Uruchom raport
Krok 4.2. Zbieranie raportów zbiorczych
Krok 4.3. Przekonwertuj raporty na AVRO
Krok 4.4. Tworzenie AVRO domeny wyjściowej

4.1. Raport wyzwalacza

Otwórz stronę demonstracyjną Piaskownicy prywatności. Spowoduje to aktywowanie prywatnego raportu agregacji. Raport jest dostępny na chrome://private-aggregation-internals.

prywatna agregacja wewnętrzna w Chrome

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

wyślij prywatny raport zbiorczy

4.2. Zbieranie raportów zbiorczych

Zbieraj raporty możliwe do zagregowania z punktów końcowych .well-known odpowiedniego interfejsu API.

  • Agregacja prywatna
    [reporting-origin] /.well-known/private-aggregation/report-shared-storage
  • Raporty atrybucji – raport zbiorczy
    [reporting-origin] /.well-known/attribution-reporting/report-aggregate-attribution

W przypadku tych ćwiczeń z programowania ręcznie utworzysz zbieranie raportów. W środowisku produkcyjnym technologie reklamowe powinny automatycznie zbierać i konwertować raporty.

W programie chrome://private-aggregation-internals skopiuj tekst „Treść raportu” otrzymany w punkcie końcowym [reporting-origin]/.well-known/private-aggregation/report-shared-storage.

Upewnij się, że w polu „Report Body” (Treść raportu) pole aggregation_coordinator_origin zawiera wartość https://publickeyservice.msmt.aws.privacysandboxservices.com, co oznacza, że raport jest raportem agregowanym AWS.

raport agregacji prywatnej

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

vim report.json

Wklej raport do usługi report.json i zapisz plik.

plik JSON raportu

4.3. Konwertowanie raportów na AVRO

Raporty odbierane z punktów końcowych .well-known mają format JSON i trzeba je przekonwertować na format raportu AVRO. Po wygenerowaniu raportu JSON przejdź do folderu raportów i użyj polecenia aggregatable_report_converter.jar, aby utworzyć raport możliwy do zagregowania na potrzeby debugowania. Spowoduje to utworzenie w bieżącym katalogu raportu zbiorczego o nazwie report.avro.

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

4.4. Tworzenie AVRO domeny wyjściowej

Aby utworzyć plik output_domain.avro, potrzebujesz kluczy zasobnika, które można pobierać z raportów.

Klucze zasobnika są projektowane przez specjalistów ds. reklam. W tym przypadku jednak klucze zasobnika tworzy prezentacja Piaskownicy prywatności. Agregacja prywatna tej witryny jest w trybie debugowania, więc możesz uzyskać klucz zasobnika, korzystając z metody debug_cleartext_payload z sekcji „Treść raportu”.

Skopiuj debug_cleartext_payload z treści raportu.

debugowanie ładunku tekstowego nieczytelnego z treści raportu

Otwórz goo.gle/ags-payload-decoder, wklej debug_cleartext_payload w polu „INPUT” i kliknij „Decode”.

dekoder ładunku

Strona zwróci wartość dziesiętną klucza zasobnika. Poniżej znajdziesz przykładowy klucz zasobnika.

wynik dekodera ładunku

Masz już klucz zasobnika, więc możesz utworzyć output_domain.avro. Pamiętaj, aby zastąpić pobranym kluczem zasobnika.

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 Przenieś raporty 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ę danych wyjściowych do zasobników raportowania S3.

Jeśli masz interfejs wiersza poleceń AWS skonfigurowany w środowisku lokalnym, skopiuj raporty do odpowiedniego zasobnika S3 i folderu raportów za pomocą poniższych poleceń.

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. Wykorzystanie usługi agregacji

Z: terraform apply otrzymasz: create_job_endpoint, get_job_endpoint i frontend_api_id. Skopiuj frontend_api_id i umieść go w globalnej zmiennej postman frontend_api_id skonfigurowanej w sekcji wymagań wstępnych 1.9.

Krok 5. Wykorzystanie usługi agregacji: użyj interfejsu Aggregation Service API, aby tworzyć raporty podsumowujące i przeglądać raporty podsumowujące.
Krok 5.1. Użycie punktu końcowego createJob do przetwarzania wsadowego
Krok 5.2. Użycie punktu końcowego getJob do pobrania stanu wsadu
Krok 5.3. Przeglądanie raportu podsumowującego

5.1. Do wsadu używam punktu końcowego createJob

W aplikacji Postman otwórz kolekcję „Piaskownica prywatności” i wybierz „createJob”.

Wybierz „Body” (Treść), a następnie „raw” (Nieprzetworzony), by umieścić żądanie w odpowiedzi.

postman createJob requestbody

Schemat ładunku createJob jest dostępny w github i wygląda podobnie do tego poniżej. Zastąp <> odpowiednimi polami.

{
  "job_request_id": "<job_request_id>",
  "input_data_blob_prefix": "<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>",
  "job_parameters": {
    "output_domain_blob_prefix": "<output_domain_folder>/<output_domain>.avro",
    "output_domain_bucket_name": "<output_domain_bucket_name>",
    "attribution_report_to": "<reporting origin of report>",
    "report_error_threshold_percentage": "10",
    "debug_run": "true"
  }
}

Gdy klikniesz „Wyślij”, zostanie utworzone zadanie z job_request_id. Po zaakceptowaniu żądania przez usługę agregacji powinna dotrzeć do Ciebie odpowiedź HTTP 202. Inne możliwe kody zwrotne znajdziesz w kodach odpowiedzi HTTP.

postman createJob requeststatus

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

Aby sprawdzić stan żądania zadania, możesz użyć punktu końcowego getJob. Wybierz „getJob” w kolekcji „Piaskownica prywatności”.

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

postman getJobrequest

Wynik polecenia getJob powinien zwracać stan żądania o stanie HTTP 200. Żądanie „Body” zawiera niezbędne informacje, takie jak job_status, return_message i error_messages (jeśli w zadaniu wystąpił błąd).

postman getJob requeststatus

Witryna raportowania wygenerowanego raportu demonstracyjnego różni się od witryny zarejestrowanej w Twoim identyfikatorze AWS, możesz więc otrzymać odpowiedź z kodem zwrotnym PRIVACY_BUDGET_AUTHORIZATION_ERROR. To normalne, ponieważ witryna źródła raportowania raportu nie odpowiada witrynie raportowania zarejestrowanej dla 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_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-news.dev"
    },
    "request_processing_started_at": "2023-12-07T22:51:06.034472697Z"
}

5.3. Przeglądanie raportu podsumowującego

Gdy otrzymasz raport podsumowujący w wyjściowym zasobniku S3, możesz go pobrać do środowiska lokalnego. Raporty podsumowujące mają format AVRO i można je przekonwertować z powrotem na plik JSON. Możesz użyć aggregatable_report_converter.jar, aby odczytać raport za pomocą następującego polecenia.

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

Zwraca on plik JSON ze zagregowanymi wartościami każdego klucza zasobnika, który wygląda podobnie do tego obrazu poniżej.

raport podsumowujący

Jeśli Twoje żądanie createJob zawiera wartość debug_run jako true, raport podsumowujący znajdziesz w folderze debugowania znajdującym się w sekcji output_data_blob_prefix. Raport ma format AVRO i można go przekonwertować za pomocą poprzedniego polecenia na format JSON.

Raport zawiera klucz zasobnika, dane bez zaszumionych danych i szum dodawany do tych danych w celu utworzenia raportu podsumowującego. Raport jest podobny do tego poniżej.

raport podsumowujący debugowanie

Adnotacje zawierają też in_reports i in_domain, co oznacza, że:

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