Praca z usługą agregacji w AWS

1. Wymagania wstępne

Aby wykonać te ćwiczenia w Codelabs, musisz spełnić kilka wymagań wstępnych. Każde wymaganie jest odpowiednio oznaczone, czy jest wymagane w przypadku „testów lokalnych” czy „usługi agregacji”.

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

Aby przeprowadzić testy lokalne, trzeba będzie pobrać narzędzie 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 GitHubie. Powinna ona mieć nazwę LocalTestingTool_{version}.jar.

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

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

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

Jeśli nie, możesz ją pobrać i zainstalować ze strony Java lub openJDK.

1.3. Pobierz konwerter raportów agregowanych (usługa testowania lokalnego i agregacji)

Możesz pobrać kopię konwertera raportów agregowanych z repozytorium wersji demonstracyjnych 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 stronę chrome://flags/#privacy-sandbox-ads-apis i włącz interfejsy API Piaskownicy prywatności.

Chromeflag w piaskownicy prywatności

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 plików cookie innych firm

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

Aby używać interfejsów API Piaskownicy prywatności w środowisku produkcyjnym, musisz przeprowadzić rejestrację i atest zarówno w Chrome, jak i w Androidzie.

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 korzystasz z witryny demonstracyjnej, nie musisz niczego aktualizować.

chromeflag zastępowania rejestracji w Piaskownicy prywatności

1.6. Wprowadzenie do usługi agregacji (usługa agregacji)

Usługa agregacji wymaga wprowadzenia koordynatorów, aby mogli z niej korzystać. Wypełnij formularz wprowadzenia do 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 wykorzystującego środowisko w chmurze. Usługa agregacji jest obsługiwana w usługach Amazon Web Services (AWS) i Google Cloud (GCP). To ćwiczenia z programowania obejmuje tylko integrację z AWS.

AWS udostępnia zaufane środowisko wykonawcze zwane enklawami Nitro. Sprawdź, czy masz konto AWS i postępuj zgodnie z instrukcjami instalacji i aktualizacji interfejsu wiersza poleceń AWS, aby skonfigurować środowisko AWS CLI.

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

1.7.1. Utwórz zasobnik AWS S3

Utwórz zasobnik AWS S3 do przechowywania stanu Terraform i 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 po 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 do wdrożenia tej usługi. W przypadku tych ćwiczeń z programowania użytkownik musi mieć dostęp administracyjny, aby zapewnić pełne uprawnienia do wdrożenia.

1.8 Terraform (usługa agregacji)

W tym ćwiczeniu z programowania wdrożysz usługę agregacji za pomocą 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 plik i przenieś plik binarny Terraform do pliku /usr/local/bin.

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

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

terraform -v

1.9. Postman (dla usługi agregacji AWS)

W tym ćwiczeniu z programowania do zarządzania prośbami używaj usługi Postman.

Utwórz obszar roboczy. Aby to zrobić, 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 skonfigurowane pliki konfiguracji JSON i środowiska globalnego dla obszaru roboczego.

Zaimportuj pliki JSON do sekcji „Mój obszar roboczy” za pomocą przycisku „Importuj”.

importuj pliki JSON usługi Postman

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

usługa importowana przez Postman

Zaktualizuj wartości „Access Key” (Klucz dostępu) i „Secret Key” (Klucz tajny) za pomocą funkcji „Szybkie spojrzenie na środowisko”.

Szybki podgląd środowiska Postman

Kliknij „Edit” (Edytuj) i zaktualizuj wartość „Bieżąca wartość” parametrów „access_key” i „secret_key”. Pamiętaj, że frontend_api_id znajdziesz 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 opublikowaną wersję AMI na swoje konto lub samodzielnie utwórz kompilację, korzystając z dostarczonych skryptów.

zmienne globalne postman

postman edytuj zmienne globalne

2. Ćwiczenie z programowania dotyczące testowania lokalnego

Za pomocą lokalnego narzędzia do testowania na komputerze możesz przeprowadzać agregacje i generować raporty podsumowujące na podstawie niezaszyfrowanych raportów debugowania.

Etapy ćwiczeń z programowania

Krok 2.1. Raport wyzwalacza: aktywuj raport prywatnej agregacji, aby móc zbierać ten raport.

Krok 2.2. Utwórz raport agregujący na potrzeby debugowania: przekonwertuj zebrany raport JSON na raport w formacie AVRO.
Ten krok będzie podobny do sytuacji, gdy technicy reklamowe będą zbierać raporty z punktów końcowych raportowania interfejsu API i przekształcić raporty 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 tego ćwiczenia w Codelabs możesz pobrać klucze zasobnika w podanej postaci.

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ą narzędzia do testowania lokalnego: korzystając z narzędzia do testowania lokalnego, możesz tworzyć raporty podsumowujące w środowisku lokalnym.

Krok 2.6. Przeglądanie raportu podsumowującego: przejrzyj raport podsumowujący utworzony przez narzędzie do testowania lokalnego.

2.1. Raport wyzwalacza

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

agregacja prywatna w Chrome

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

wyślij prywatny raport zbiorczy

2.2. Utwórz raport agregujący na potrzeby debugowania

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

Sprawdź, czy w treści raportu element aggregation_coordinator_origin zawiera wartość https://publickeyservice.msmt.aws.privacysandboxservices.com, co oznacza, że raport jest raportem agregowanym przez AWS.

raport agregacji prywatnej

Umieść pole JSON „Report Body” (Treść raportu) w pliku JSON. W tym przykładzie można użyć pliku vim. Możesz jednak skorzystać z dowolnego edytora tekstu.

vim report.json

Wklej raport w usłudze report.json i zapisz plik.

Plik JSON z raportem

Następnie otwórz folder raportu i użyj pola aggregatable_report_converter.jar, aby utworzyć raport agregowany na potrzeby debugowania. Spowoduje to utworzenie w bieżącym katalogu raportu agregowanego o nazwie report.avro.

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

2.3. Analiza klucza zasobnika z raportu debugowania

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

Klucze zasobnika są projektowane przez element wywołujący interfejs API, a wersja demonstracyjna zawiera gotowe przykładowe klucze zasobnika. Ponieważ w wersji demonstracyjnej został włączony tryb debugowania agregacji prywatnej, możesz przeanalizować ładunek nieszyfrowany debugowania z sekcji „Treść raportu”, aby pobrać klucz zasobnika. W takim przypadku jednak klucze zasobnika tworzy demonstracja Piaskownicy prywatności w witrynie. Ponieważ agregacja prywatna dla tej witryny działa w trybie debugowania, do uzyskania klucza zasobnika możesz użyć parametru debug_cleartext_payload z sekcji „Treść raportu”.

Skopiuj debug_cleartext_payload z treści raportu.

debugowanie ładunku nieszyfrowanego tekstu z treści raportu

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

dekoder ładunku

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

wynik dekodera ładunku

2.4. Utwórz AVRO domeny wyjściowej

Teraz, gdy mamy już klucz zasobnika, skopiuj jego wartość dziesiętną. Przejdź do tworzenia obiektu output_domain.avro za pomocą 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ą narzędzia do testowania lokalnego

Na podstawie pliku LocalTestingTool_{version}.jar, który został pobrany w sekcji 1.1, do utworzenia raportów podsumowujących użyjemy tych danych. Użyj tego polecenia. Zastąp LocalTestingTool_{version}.jar wersją pobraną na potrzeby narzędzia 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 uruchomieniu polecenia zobaczysz obraz podobny do tego poniżej. Po zakończeniu zostanie utworzony raport output.avro.

plik avrofile z raportem z podsumowaniem testów lokalnych

2.6 Sprawdzanie raportu podsumowującego

Tworzony raport podsumowujący ma format AVRO. Aby móc odczytać te dane, musisz przekonwertować je z AVRO na format JSON. Najlepiej byłoby, gdyby technologie reklamowe były kodowane tak, aby konwertować raporty AVRO z powrotem do formatu JSON.

W naszych ćwiczeniach z programowania 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

Spowoduje to wyświetlenie raportu podobnego do tego na obrazie poniżej. Wraz z raportem output.json utworzonym w tym samym katalogu.

podsumowanie pliku avro przekonwertowanego do formatujson

Otwórz plik JSON w wybranym edytorze, aby wyświetlić 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: Wdróż usługę agregacji w AWS
Krok 3.1. Sklonuj 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 dostawcą cloud_provider jest AWS, możesz przejść do: /terraform/aws

cd <repository_root>/terraform/aws

W /terraform/aws wykonaj 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 uzyskać input, aby go edytować.

vim main.tf

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

W przypadku AWS main.tf:

Główny plik tf 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, klikając esc -> :wq!. Spowoduje to zapisanie aktualizacji main.tf.

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

mv example.auto.tfvars dev.auto.tfvars

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

vim dev.auto.tfvars

Zaktualizuj pola w czerwonym polu po obrazie za pomocą prawidłowych parametrów AWS ARN podanych podczas wprowadzania do usługi agregacji, środowiska i e-maila z powiadomieniem.

edytuj plik deweloper automatycznie tfvarsfile

Po zakończeniu aktualizacji naciśnij esc -> :wq!. Spowoduje to zapisanie pliku dev.auto.tfvars. Powinien on wyglądać mniej więcej tak: obraz poniżej.

zaktualizowany plik dev automatyczny plik tfvarsfile

3.4. Wdrażanie usługi agregacji

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

terraform init

Powinno to spowodować wyświetlenie obrazu podobnego do tego:

terraforminit

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

terraform plan

Możesz to sprawdzić w podsumowaniu „Abonament”. Jeśli jest to nowe wdrożenie, zobaczysz liczbę zasobów, które zostaną dodane. Wartość 0 w przypadku zmiany i 0 – zniszczenie.

Terraform

Po wykonaniu tych czynności możesz przejść do zastosowania Terraform.

terraform apply

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

terraform applyprompt

Gdy zakończy się działanie terraform apply, zwracane są poniższe punkty końcowe dla createJob i getJob. Zwrócony zostanie też frontend_api_id, który musisz zaktualizować w Postman (patrz sekcja 1.9).

terraform applycomplete

4. Tworzenie danych wejściowych w usłudze agregacji

Przejdź dalej do tworzenia raportów AVRO do grupowania w usłudze agregacji.

Krok 4. Tworzenie danych wejściowych w usłudze agregacji: utwórz raporty usługi agregacji, które będą grupowane na potrzeby tej usługi.
Krok 4.1 Raport wyzwalacza
Krok 4.2. Zbieranie raportów agregowanych
Krok 4.3 Przekonwertuj raporty na format AVRO
Krok 4.4 Utwórz AVRO domeny wyjściowej

4.1. Raport wyzwalacza

Otwórz stronę pokazową Piaskownicy prywatności. Spowoduje to wygenerowanie prywatnego raportu zbiorczego. Raport jest dostępny na stronie chrome://private-aggregation-internals.

agregacja prywatna w Chrome

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

wyślij prywatny raport zbiorczy

4.2. Zbieranie raportów agregowanych

Zbieraj raporty zbiorcze z punktów końcowych .well-known odpowiedniego interfejsu API.

  • Agregacja prywatna
    [reporting-origin] /.well-known/private-aggregation/report-shared-storage
  • Attribution Reporting – raport podsumowujący
    [reporting-origin] /.well-known/attribution-reporting/report-aggregate-attribution

W ramach tych ćwiczeń z programowania gromadzisz raporty ręcznie. Na etapie produkcji specjaliści od technologii reklamowych muszą automatycznie zbierać i konwertować raporty.

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

Sprawdź, czy w treści raportu element aggregation_coordinator_origin zawiera wartość https://publickeyservice.msmt.aws.privacysandboxservices.com, co oznacza, że raport jest raportem agregowanym przez AWS.

raport agregacji prywatnej

Umieść pole JSON „Report Body” (Treść raportu) w pliku JSON. W tym przykładzie można użyć pliku vim. Możesz jednak skorzystać z dowolnego edytora tekstu.

vim report.json

Wklej raport w usłudze report.json i zapisz plik.

Plik JSON z raportem

4.3. Konwertuj raporty na format AVRO

Raporty otrzymywane z punktów końcowych .well-known mają format JSON i trzeba je przekonwertować na format raportu AVRO. Gdy otrzymasz raport JSON, przejdź do folderu raportu i użyj pola aggregatable_report_converter.jar, aby utworzyć raport agregowany na potrzeby debugowania. Spowoduje to utworzenie w bieżącym katalogu raportu agregowanego o nazwie report.avro.

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

4.4. Utwórz AVRO domeny wyjściowej

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

Klucze zasobnika zostały zaprojektowane przez specjalistów z branży reklamowej. Jednak w tym przypadku je tworzy prezentacja Piaskownicy prywatności na stronie. Ponieważ agregacja prywatna dla tej witryny działa w trybie debugowania, do uzyskania klucza zasobnika możesz użyć parametru debug_cleartext_payload z sekcji „Treść raportu”.

Skopiuj identyfikator debug_cleartext_payload z treści raportu.

debugowanie ładunku nieszyfrowanego tekstu z treści raportu

Otwórz stronę goo.gle/ags-payload-decoder i wklej debug_cleartext_payload w polu „INPUT”, a następnie kliknij „Decode” (Dekoduj).

dekoder ładunku

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

wynik dekodera ładunku

Masz już klucz zasobnika, możesz więc 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. 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 zasobników raportowania S3.

Jeśli interfejs wiersza poleceń AWS jest 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

Jeśli chodzi o terraform apply, otrzymujesz create_job_endpoint, get_job_endpoint i frontend_api_id. Skopiuj identyfikator frontend_api_id i umieść go w globalnej zmiennej Postmana frontend_api_id skonfigurowanego w sekcji wstępnej 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 przesyłania zbiorczego
Krok 5.2. Użycie punktu końcowego getJob do pobrania stanu wsadu
Krok 5.3. Przeglądanie raportu Podsumowanie

5.1. Wykorzystuję punkt końcowy createJob do grupowania

W Postman otwórz kolekcję „Privacy Sandbox” (Piaskownica prywatności) i wybierz „createJob”.

Wybierz „Body” (Treść), a następnie „raw”, aby umieścić ładunek żądania.

postman createJob requestbody

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_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"
  }
}

Po kliknięciu „Wyślij” zostanie utworzone zadanie z zasadą job_request_id. Po zaakceptowaniu żądania przez usługę agregacji otrzymasz odpowiedź HTTP 202. Inny możliwy kod zwrotu 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 „Parametry” zaktualizuj wartość application_request_id o wartość job_request_id, która została wysłana w żądaniu createJob.

postman getJobrequest

getJob zwraca stan żądania zadania ze stanem 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

Ponieważ witryna raportowania wygenerowanego raportu demonstracyjnego różni się od witryny zarejestrowanej w Twoim identyfikatorze AWS, możesz otrzymać odpowiedź z kodem zwrotnym PRIVACY_BUDGET_AUTHORIZATION_ERROR. Jest to normalne, ponieważ witryna źródła raportowania raportów nie odpowiada witrynie raportującej 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-dsp.dev"
    },
    "request_processing_started_at": "2023-12-07T22:51:06.034472697Z"
}

5.3. Przeglądanie raportu Podsumowanie

Gdy otrzymasz raport podsumowujący do wyjściowego zasobnika S3, możesz go pobrać do środowiska lokalnego. Raporty podsumowujące są w formacie AVRO i można je przekonwertować z powrotem na plik JSON. Aby odczytać raport, użyj pola aggregatable_report_converter.jar, korzystając z poniższego polecenia.

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

Zwracany jest plik JSON zawierający zagregowane wartości każdego klucza zasobnika. Wygląda on podobnie do tego na ilustracji poniżej.

raport podsumowujący

Jeśli żądanie createJob zawiera parametr debug_run jako true, raport podsumowujący możesz otrzymać w folderze debugowania, który znajduje się w folderze output_data_blob_prefix. Raport ma format AVRO i można go przekonwertować za pomocą poprzedniego polecenia na plik JSON.

Raport zawiera klucz zasobnika, niezaszumione dane i szum dodany do niezaszumionych danych w celu utworzenia raportu podsumowującego. Raport jest podobny do tego obrazu.

raport podsumowujący debugowanie

Zawierają one również in_reports i in_domain, co oznacza, że:

  • in_reports – klucz zasobnika jest dostępny w raportach agregowanych.
  • in_domain – klucz zasobnika jest dostępny w pliku AVRO wyjściowej domeny.