AWS에서 집계 서비스 작업

1. 기본 요건

이 Codelab을 수행하려면 몇 가지 기본 요건이 필요합니다. 각 요구사항은 '로컬 테스트' 또는 '집계 서비스'에 필요한지 여부에 따라 표시됩니다.

1.1. 로컬 테스트 도구 다운로드 (로컬 테스트)

로컬 테스트를 사용하려면 로컬 테스트 도구를 다운로드해야 합니다. 이 도구는 암호화되지 않은 디버그 보고서에서 요약 보고서를 생성합니다.

로컬 테스트 도구는 GitHub의 Lambda JAR 보관 파일에서 다운로드할 수 있습니다. 이름은 LocalTestingTool_{version}.jar여야 합니다.

1.2. JAVA JRE가 설치되어 있는지 확인 (로컬 테스트 및 집계 서비스)

'터미널'을 열고 java --version를 사용하여 머신에 Java 또는 openJDK가 설치되어 있는지 확인합니다.

`java --version`을 사용하여 java jre 버전을 확인합니다. `java --version`을 사용하여 Java JRE 버전을 확인합니다.

설치되어 있지 않으면 Java 사이트 또는 openJDK 사이트에서 다운로드하여 설치할 수 있습니다.

1.3. 집계 가능한 보고서 변환기 다운로드 (로컬 테스트 및 집계 서비스)

개인 정보 보호 샌드박스 데모 GitHub 저장소에서 집계 가능한 보고서 변환기 사본을 다운로드할 수 있습니다.

1.4. 광고 개인 정보 보호 API 사용 설정 (로컬 테스트 및 집계 서비스)

브라우저에서 chrome://settings/adPrivacy로 이동하여 모든 광고 개인 정보 보호 API를 사용 설정합니다.

서드 파티 쿠키가 사용 설정되어 있는지 확인합니다.

브라우저에서 chrome://settings/cookies로 이동하여 '시크릿 모드에서 서드 파티 쿠키 차단'을 선택합니다.

서드 파티 쿠키 Chrome 설정 서드 파티 쿠키 Chrome 설정

1.5. 웹 및 Android 등록 (집계 서비스)

프로덕션 환경에서 개인 정보 보호 샌드박스 API를 사용하려면 Chrome과 Android 모두에 대해 등록 및 증명을 완료해야 합니다.

로컬 테스트의 경우 Chrome 플래그 및 CLI 스위치를 사용하여 등록을 사용 중지할 수 있습니다.

데모에 Chrome 플래그를 사용하려면 chrome://flags/#privacy-sandbox-enrollment-overrides로 이동하여 사이트로 재정의를 업데이트합니다. Google 데모 사이트를 사용하는 경우 업데이트가 필요하지 않습니다.

개인 정보 보호 샌드박스 등록 재정의 Chrome 플래그 개인 정보 보호 샌드박스 등록 재정의 Chrome 플래그입니다.

1.6. 집계 서비스 온보딩 (집계 서비스)

집계 서비스를 사용하려면 코디네이터에 온보딩해야 합니다. 보고 사이트 주소, AWS 계정 ID 및 기타 정보를 입력하여 집계 서비스 온보딩 양식을 작성합니다.

1.7. 클라우드 제공업체 (집계 서비스)

집계 서비스에는 클라우드 환경을 사용하는 신뢰할 수 있는 실행 환경이 필요합니다. 집계 서비스는 Amazon Web Services (AWS) 및 Google Cloud (GCP)에서 지원됩니다. 이 Codelab에서는 AWS 통합만 다룹니다.

AWS는 Nitro Enclaves라는 신뢰할 수 있는 실행 환경을 제공합니다. AWS 계정이 있는지 확인하고 AWS CLI 설치 및 업데이트 안내에 따라 AWS CLI 환경을 설정합니다.

AWS CLI가 새로 설치된 경우 CLI 구성 안내를 사용하여 AWS CLI를 구성할 수 있습니다.

1.7.1. AWS S3 버킷 만들기

Terraform 상태를 저장할 AWS S3 버킷과 보고서 및 요약 보고서를 저장할 또 다른 S3 버킷을 만듭니다. 제공된 CLI 명령어를 사용할 수 있습니다. <>의 필드를 적절한 변수로 바꿉니다.

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. 사용자 액세스 키 만들기

AWS 가이드를 사용하여 사용자 액세스 키를 만듭니다. 이는 AWS에서 생성된 createJobgetJob API 엔드포인트를 호출하는 데 사용됩니다.

1.7.3. AWS 사용자 및 그룹 권한

AWS에 집계 서비스를 배포하려면 서비스를 배포하는 데 사용되는 사용자에게 특정 권한을 제공해야 합니다. 이 Codelab에서는 사용자가 관리자 액세스 권한을 보유하여 배포에서 모든 권한을 보유하고 있는지 확인합니다.

1.8. Terraform (집계 서비스)

이 Codelab에서는 Terraform을 사용하여 집계 서비스를 배포합니다. Terraform 바이너리가 로컬 환경에 설치되어 있는지 확인합니다.

Terraform 바이너리를 로컬 환경에 다운로드합니다.

Terraform 바이너리가 다운로드되면 파일을 추출하고 Terraform 바이너리를 /usr/local/bin로 이동합니다.

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

Terraform이 클래스 경로에서 사용 가능한지 확인합니다.

terraform -v

1.9. Postman (집계 서비스 AWS용)

이 Codelab에서는 요청 관리를 위해 Postman을 사용합니다.

상단 탐색 항목의 '작업공간'으로 이동하여 '작업공간 만들기'를 선택하여 작업공간을 만듭니다.

Postman 작업공간 Postman 작업공간

'빈 작업공간'을 선택하고 다음을 클릭한 다음 'Privacy Sandbox'라고 이름을 지정합니다. '개인'을 선택하고 '만들기'를 클릭합니다.

사전 구성된 워크스페이스 JSON 구성전역 환경 파일을 다운로드합니다.

'가져오기' 버튼을 사용하여 JSON 파일을 '내 워크스페이스'로 가져옵니다.

Postman JSON 파일을 가져옵니다. Postman JSON 파일을 가져옵니다.

이렇게 하면 createJobgetJob HTTP 요청과 함께 개인 정보 보호 샌드박스 컬렉션이 생성됩니다.

Postman 가져온 컬렉션입니다. Postman 가져온 컬렉션입니다.

'환경 둘러보기'를 통해 AWS '액세스 키' 및 '보안 비밀 키'를 업데이트합니다.

Postman 환경 간단히 살펴보기 Postman 환경을 빠르게 살펴봅니다.

'수정'을 클릭하고 'access_key'와 'secret_key'의 '현재 값'을 업데이트합니다. frontend_api_id는 이 문서의 섹션 3.1.4에 제공됩니다. us-east-1 리전을 사용하는 것이 좋습니다. 하지만 다른 리전에 배포하려면 출시된 AMI를 계정에 복사하거나 제공된 스크립트를 사용하여 자체 빌드를 실행해야 합니다.

Postman 전역 변수 Postman 전역 변수입니다. Postman 전역 변수 수정 Postman 전역 변수 수정

2. 로컬 테스트 Codelab

머신에서 로컬 테스트 도구를 사용하여 집계를 실행하고 암호화되지 않은 디버그 보고서를 사용하여 요약 보고서를 생성할 수 있습니다.

Codelab 단계

2.1단계. 보고서 트리거: 보고서를 수집할 수 있도록 Private Aggregation 보고를 트리거합니다.

2.2단계. 디버그 집계 가능 보고서 만들기: 수집된 JSON 보고서를 AVRO 형식 보고서로 변환합니다.
이 단계는 광고 기술이 API 보고 엔드포인트에서 보고서를 수집하고 JSON 보고서를 AVRO 형식 보고서로 변환하는 경우와 유사합니다.

2.3단계. 디버그 보고서에서 버킷 키 파싱: 버킷 키는 광고 기술에서 설계합니다. 이 Codelab에서는 버킷이 미리 정의되어 있으므로 제공된 대로 버킷 키를 가져옵니다.

2.4단계. 출력 도메인 AVRO 생성: 버킷 키를 가져온 후 출력 도메인 AVRO 파일을 만듭니다.

2.5단계. 로컬 테스트 도구를 사용하여 요약 보고서 만들기: 로컬 환경에서 요약 보고서를 만들 수 있도록 로컬 테스트 도구를 사용합니다.

2.6단계. 요약 보고서 검토: 로컬 테스트 도구에서 생성된 요약 보고서를 검토합니다.

2.1. 트리거 보고서

개인 정보 보호 샌드박스 데모 사이트로 이동합니다. 이렇게 하면 비공개 집계 보고서가 트리거됩니다. chrome://private-aggregation-internals에서 보고서를 확인할 수 있습니다.

Chrome 비공개 집계 내부입니다. Chrome 비공개 집계 내부입니다.

보고서가 '대기 중' 상태인 경우 보고서를 선택하고 '선택한 보고서 보내기'를 클릭하면 됩니다.

비공개 집계 보고서를 전송합니다. 비공개 집계 보고서를 전송합니다.

2.2. 디버그 집계 가능 보고서 만들기

chrome://private-aggregation-internals에서 [reporting-origin]/.well-known/private-aggregation/report-shared-storage 엔드포인트에서 수신된 'Report Body'를 복사합니다.

'보고서 본문'에서 aggregation_coordinator_originhttps://publickeyservice.msmt.aws.privacysandboxservices.com이 포함되어 있는지 확인합니다. 이는 보고서가 AWS 집계 가능 보고서임을 의미합니다.

비공개 집계 보고서 비공개 집계 보고서입니다.

JSON 파일에 JSON '보고서 본문'을 배치합니다. 이 예시에서는 vim을 사용할 수 있습니다. 하지만 원하는 텍스트 편집기를 사용할 수 있습니다.

vim report.json

보고서를 report.json에 붙여넣고 파일을 저장합니다.

보고서 JSON 파일입니다. 신고 JSON 파일

이 정보를 확보한 후 보고서 폴더로 이동하여 aggregatable_report_converter.jar를 사용하여 디버그 집계 가능 보고서를 만듭니다. 그러면 현재 디렉터리에 집계 가능한 보고서 report.avro가 생성됩니다.

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

2.3. 디버그 보고서에서 버킷 키 파싱

집계 서비스는 일괄 처리 시 두 개의 파일이 필요합니다. 집계 가능한 보고서와 출력 도메인 파일 출력 도메인 파일에는 집계 가능한 보고서에서 가져오려는 키가 포함되어 있습니다. output_domain.avro 파일을 만들려면 보고서에서 가져올 수 있는 버킷 키가 필요합니다.

버킷 키는 API 호출자가 설계하며 demo에는 사전 구성된 예시 버킷 키가 포함되어 있습니다. 데모에서 비공개 집계의 디버그 모드를 사용 설정했으므로 '보고서 본문'에서 디버그 일반 텍스트 페이로드를 파싱하여 버킷 키를 가져올 수 있습니다. 하지만 이 경우 사이트 개인 정보 보호 샌드박스 데모가 버킷 키를 만듭니다. 이 사이트의 비공개 집계가 디버그 모드에 있으므로 '보고서 본문'의 debug_cleartext_payload을 사용하여 버킷 키를 가져올 수 있습니다.

보고서 본문에서 debug_cleartext_payload를 복사합니다.

보고서 본문에서 일반 텍스트 페이로드 디버그 보고서 본문에서 일반 텍스트 페이로드 디버그

비공개 집계를 위한 디버그 페이로드 디코더 도구를 열고 debug_cleartext_payload를 'INPUT' 상자에 붙여넣고 'Decode'를 클릭합니다.

페이로드 디코더입니다. 페이로드 디코더.

페이지는 버킷 키의 십진수 값을 반환합니다. 다음은 샘플 버킷 키입니다.

페이로드 디코더 결과입니다. 페이로드 디코더 결과입니다.

2.4. 출력 도메인 AVRO 만들기

이제 버킷 키가 있으므로 버킷 키의 십진수 값을 복사합니다. 버킷 키를 사용하여 output_domain.avro를 만듭니다. 을 가져온 버킷 키로 바꿨는지 확인합니다.

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

스크립트는 현재 폴더에 output_domain.avro 파일을 만듭니다.

2.5. 로컬 테스트 도구를 사용하여 요약 보고서 만들기

1.1절에서 다운로드한 LocalTestingTool_{version}.jar를 사용하여 요약 보고서를 만듭니다. 다음 명령어를 사용합니다. LocalTestingTool_{version}.jar을 LocalTestingTool용으로 다운로드한 버전으로 바꿔야 합니다.

다음 명령어를 실행하여 로컬 개발 환경에서 요약 보고서를 생성합니다.

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

명령어를 실행하면 다음과 비슷한 이미지가 표시됩니다. 이 작업이 완료되면 보고서 output.avro가 생성됩니다.

로컬 테스트 요약 보고서 avro 파일입니다. 로컬 테스트 요약 보고서 avro 파일입니다.

2.6. 요약 보고서 검토

생성된 요약 보고서는 AVRO 형식입니다. 이 값을 읽으려면 AVRO에서 JSON 형식으로 변환해야 합니다. 광고 기술은 AVRO 보고서를 다시 JSON으로 변환하도록 코딩해야 합니다.

Codelab에서는 제공된 aggregatable_report_converter.jar 도구를 사용하여 AVRO 보고서를 JSON으로 다시 변환합니다.

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

그러면 다음 이미지와 비슷한 보고서가 반환됩니다. 같은 디렉터리에 생성된 보고서 output.json

요약 avro 파일이 json으로 변환되었습니다. 요약 avro 파일이 json으로 변환되었습니다.

원하는 편집기에서 JSON 파일을 열어 요약 보고서를 검토합니다.

3. 집계 서비스 배포

집계 서비스를 배포하려면 다음 단계를 따르세요.

3단계: 집계 서비스 배포: AWS에 집계 서비스 배포
3.1단계. 집계 서비스 저장소 클론
3.2단계 사전 빌드된 종속 항목 다운로드
3.3단계 개발 환경 만들기
3.4단계 집계 서비스 배포

3.1. 집계 서비스 저장소 클론

로컬 환경에서 집계 서비스 GitHub 저장소를 클론합니다.

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

3.2. 사전 빌드된 종속 항목 다운로드

집계 서비스 저장소를 클론한 후 저장소의 Terraform 폴더와 해당 클라우드 폴더로 이동합니다. cloud_provider가 AWS인 경우 /terraform/aws로 진행합니다.

cd <repository_root>/terraform/aws

/terraform/aws에서 download_prebuilt_dependencies.sh을 실행합니다.

bash download_prebuilt_dependencies.sh

3.3. 개발 환경 만들기

/terraform/aws/environments에서 개발 환경을 만듭니다. dev이라는 폴더를 만듭니다.

mkdir dev

demo 폴더 콘텐츠를 dev 폴더에 복사합니다.

cp -R demo/* dev

dev 폴더로 이동합니다.

cd dev

main.tf 파일을 업데이트하고 inputi을 눌러 파일을 수정합니다.

vim main.tf

#을 삭제하고 버킷 및 키 이름을 업데이트하여 빨간색 상자의 코드 주석 처리를 해제합니다.

AWS main.tf의 경우:

AWS main.tf 파일 AWS main.tf 파일

주석 처리가 삭제된 코드는 다음과 같습니다.

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

업데이트가 완료되면 esc -> :wq!를 눌러 업데이트를 저장하고 편집기를 종료합니다. 이렇게 하면 main.tf에 업데이트가 저장됩니다.

그런 다음 example.auto.tfvars 이름을 dev.auto.tfvars로 바꿉니다.

mv example.auto.tfvars dev.auto.tfvars

dev.auto.tfvars를 업데이트하고 input가 파일을 수정하도록 i를 누릅니다.

vim dev.auto.tfvars

다음 이미지의 빨간색 상자에 있는 필드를 집계 서비스 온보딩, 환경, 알림 이메일 중에 제공된 올바른 AWS ARN 매개변수로 업데이트합니다.

개발 자동 tfvars 파일을 수정합니다. 개발 자동 tfvars 파일을 수정합니다.

업데이트가 완료되면 esc -> :wq!를 누릅니다. 이렇게 하면 dev.auto.tfvars 파일이 저장되며 다음과 같은 이미지가 표시됩니다.

개발 자동 tfvars 파일이 업데이트되었습니다. 개발 자동 tfvars 파일이 업데이트되었습니다.

3.4. 집계 서비스 배포

집계 서비스를 배포하려면 동일한 폴더 /terraform/aws/environments/dev에서 Terraform을 초기화합니다.

terraform init

그러면 다음 이미지와 비슷한 결과가 반환됩니다.

Terraform init Terraform init.

Terraform이 초기화되면 Terraform 실행 계획을 만듭니다. 다음 이미지와 같이 추가할 리소스 수와 기타 추가 정보를 반환합니다.

terraform plan

다음에서 '요금제' 요약을 확인할 수 있습니다. 새로 배포하는 경우 변경할 리소스와 삭제할 리소스가 0인 추가할 리소스 수가 표시됩니다.

Terraform 계획 Terraform 계획

이 단계를 완료한 후 Terraform을 적용할 수 있습니다.

terraform apply

Terraform에서 작업을 실행할지 확인하라는 메시지가 표시되면 값에 yes를 입력합니다.

Terraform 적용 프롬프트 Terraform 적용 프롬프트

terraform apply가 완료되면 createJobgetJob의 다음 엔드포인트가 반환됩니다. 섹션 1.9의 Postman에서 업데이트해야 하는 frontend_api_id도 반환됩니다.

Terraform 적용이 완료되었습니다. Terraform 적용이 완료되었습니다.

4. 집계 서비스 입력 생성

집계 서비스에서 일괄 처리를 위한 AVRO 보고서를 만듭니다.

4단계: 집계 서비스 입력 생성: 집계 서비스를 위해 일괄 처리된 집계 서비스 보고서를 만듭니다.
4.1단계. 트리거 보고서
4.2단계 집계 가능한 보고서 수집
4.3단계 보고서를 AVRO로 변환
4.4단계 출력 도메인 AVRO 만들기

4.1. 트리거 보고서

개인 정보 보호 샌드박스 데모 사이트로 이동합니다. 이렇게 하면 비공개 집계 보고서가 트리거됩니다. chrome://private-aggregation-internals에서 보고서를 확인할 수 있습니다.

Chrome 비공개 집계 내부입니다. Chrome 비공개 집계 내부입니다.

보고서가 '대기 중' 상태인 경우 보고서를 선택하고 '선택한 보고서 보내기'를 클릭하면 됩니다. '

비공개 집계 보고서를 전송합니다. 비공개 집계 보고서를 전송합니다.

4.2. 집계 가능한 보고서 수집

해당 API의 .well-known 엔드포인트에서 집계 가능한 보고서를 수집합니다.

  • Private Aggregation
    [reporting-origin] /.well-known/private-aggregation/report-shared-storage
  • Attribution Reporting - Summary Report(기여 분석 보고 - 요약 보고서)
    [reporting-origin] /.well-known/attribution-reporting/report-aggregate-attribution

이 Codelab에서는 보고서 수집을 수동으로 실행합니다. 프로덕션에서는 광고 기술이 프로그래매틱 방식으로 보고서를 수집하고 변환해야 합니다.

chrome://private-aggregation-internals에서 [reporting-origin]/.well-known/private-aggregation/report-shared-storage 엔드포인트에서 수신된 'Report Body'를 복사합니다.

'보고서 본문'에서 aggregation_coordinator_originhttps://publickeyservice.msmt.aws.privacysandboxservices.com이 포함되어 있는지 확인합니다. 이는 보고서가 AWS 집계 가능 보고서임을 의미합니다.

비공개 집계 보고서 비공개 집계 보고서입니다.

JSON 파일에 JSON '보고서 본문'을 배치합니다. 이 예시에서는 vim을 사용할 수 있습니다. 하지만 원하는 텍스트 편집기를 사용할 수 있습니다.

vim report.json

보고서를 report.json에 붙여넣고 파일을 저장합니다.

보고서 JSON 파일입니다. 신고 JSON 파일

4.3. 보고서를 AVRO로 변환

.well-known 엔드포인트에서 수신된 보고서는 JSON 형식이며 AVRO 보고서 형식으로 변환해야 합니다. JSON 보고서가 있으면 보고서 폴더로 이동하여 aggregatable_report_converter.jar를 사용하여 디버그 집계 가능 보고서를 만드세요. 그러면 현재 디렉터리에 집계 가능한 보고서 report.avro가 생성됩니다.

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

4.4. 출력 도메인 AVRO 만들기

output_domain.avro 파일을 만들려면 보고서에서 가져올 수 있는 버킷 키가 필요합니다.

버킷 키는 광고 기술에서 설계합니다. 하지만 이 경우 사이트 개인 정보 보호 샌드박스 데모에서 버킷 키를 만듭니다. 이 사이트의 비공개 집계가 디버그 모드에 있으므로 '보고서 본문'의 debug_cleartext_payload을 사용하여 버킷 키를 가져올 수 있습니다.

보고서 본문에서 debug_cleartext_payload를 복사합니다.

보고서 본문에서 일반 텍스트 페이로드 디버그 보고서 본문에서 일반 텍스트 페이로드 디버그

goo.gle/ags-payload-decoder를 열고 debug_cleartext_payload를 'INPUT' 상자에 붙여넣고 'Decode'를 클릭합니다.

페이로드 디코더입니다. 페이로드 디코더.

페이지는 버킷 키의 십진수 값을 반환합니다. 다음은 샘플 버킷 키입니다.

페이로드 디코더 결과입니다. 페이로드 디코더 결과입니다.

이제 버킷 키가 있으므로 output_domain.avro를 만듭니다. 을 가져온 버킷 키로 바꿨는지 확인합니다.

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

스크립트는 현재 폴더에 output_domain.avro 파일을 만듭니다.

4.5. 보고서를 AWS 버킷으로 이동

AVRO 보고서 (3.2.3절)와 출력 도메인 (3.2.4절)이 생성되면 보고서와 출력 도메인을 보고 S3 버킷으로 이동합니다.

로컬 환경에 AWS CLI가 설정되어 있는 경우 다음 명령어를 사용하여 보고서를 해당 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. 집계 서비스 사용

terraform apply에서 create_job_endpoint, get_job_endpoint, frontend_api_id이 반환됩니다. frontend_api_id를 복사하여 필수 섹션 1.9에서 설정한 Postman 전역 변수 frontend_api_id에 배치합니다.

5단계: 집계 서비스 사용: 집계 서비스 API를 사용하여 요약 보고서를 생성하고 요약 보고서를 검토합니다.
5.1단계. createJob 엔드포인트를 사용하여 일괄 처리
5.2단계 getJob 엔드포인트를 사용하여 일괄 상태 가져오기
5.3단계 요약 보고서 검토

5.1. createJob 엔드포인트를 사용하여 일괄 처리

Postman에서 'Privacy Sandbox' 컬렉션을 열고 'createJob'을 선택합니다.

'Body'를 선택하고 'raw'를 선택하여 요청 페이로드를 배치합니다.

Postman createJob 요청 본문 postman createJob 요청 본문

createJob 페이로드 스키마는 github에서 확인할 수 있으며 다음과 유사합니다. <>을 적절한 필드로 바꿉니다.

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

'보내기'를 클릭하면 job_request_id로 작업이 생성됩니다. 요청이 집계 서비스에 의해 수락되면 HTTP 202 응답이 수신됩니다. 가능한 다른 반환 코드는 HTTP 응답 코드를 참고하세요.

Postman createJob 요청 상태 postman createJob 요청 상태

5.2. getJob 엔드포인트를 사용하여 일괄 상태 가져오기

작업 요청의 상태를 확인하려면 getJob 엔드포인트를 사용하면 됩니다. '개인 정보 보호 샌드박스' 컬렉션에서 'getJob'을 선택합니다.

'Params'에서 job_request_id 값을 createJob 요청에서 전송된 job_request_id로 업데이트합니다.

postman getJob 요청 postman getJob 요청

getJob의 결과는 HTTP 상태가 200인 작업 요청의 상태를 반환해야 합니다. 요청 '본문'에는 job_status, return_message, error_messages과 같은 필수 정보가 포함됩니다 (작업에 오류가 발생한 경우).

postman getJob 요청 상태 postman getJob 요청 상태

생성된 데모 보고서의 보고 사이트가 AWS ID에 온보딩된 사이트와 다르므로 PRIVACY_BUDGET_AUTHORIZATION_ERROR return_code가 포함된 응답이 표시될 수 있습니다. 보고서의'보고 출처' 사이트가 AWS ID에 온보딩된 보고 사이트와 일치하지 않으므로 이는 정상입니다.

{
      "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. 요약 보고서 검토

출력 S3 버킷에서 요약 보고서를 받으면 로컬 환경에 다운로드할 수 있습니다. 요약 보고서는 AVRO 형식이며 JSON으로 다시 변환할 수 있습니다. 다음 명령어를 사용하여 aggregatable_report_converter.jar로 보고서를 읽을 수 있습니다.

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

그러면 다음 이미지와 유사한 각 버킷 키의 집계된 값이 포함된 JSON이 반환됩니다.

요약 보고서 요약 보고서

createJob 요청에 debug_runtrue로 포함된 경우 output_data_blob_prefix에 있는 디버그 폴더에서 요약 보고서를 확인할 수 있습니다. 보고서는 AVRO 형식이며 이전 명령어를 사용하여 JSON으로 변환할 수 있습니다.

보고서에는 버킷 키, 노이즈가 추가되지 않은 측정항목, 노이즈가 추가되지 않은 측정항목에 추가되어 요약 보고서를 형성하는 노이즈가 포함됩니다. 보고서는 다음 이미지와 비슷합니다.

디버그 요약 보고서 디버그 요약 보고서

주석에는 in_reportsin_domain도 포함됩니다. 이는 다음을 의미합니다.

  • in_reports - 버킷 키를 집계 가능한 보고서 내에서 사용할 수 있습니다.
  • in_domain - 버킷 키는 output_domain AVRO 파일 내에서 사용할 수 있습니다.