AWS에서 집계 서비스 작업

1. 기본 요건

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

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

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

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

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

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

자바를 사용하여 자바 jre 버전 확인\n--version

설치되어 있지 않은 경우 자바 사이트openJDK 사이트에서 다운로드하여 설치할 수 있습니다.

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

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

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

브라우저에서 chrome://flags/#privacy-sandbox-ads-apis로 이동하여 개인 정보 보호 샌드박스 API를 사용 설정합니다.

개인 정보 보호 샌드박스 chromeflag

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

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

서드 파티 쿠키 Chrome설정

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

프로덕션 환경에서 개인 정보 보호 샌드박스 API를 사용하려면 Chrome과 Android 둘 다의 등록 및 증명을 완료했는지 확인하세요.

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

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

개인 정보 보호 샌드박스 등록 재정의 chromeflag

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 (Aggregation Service AWS용)

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

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

Postmanworkspace

'빈 작업공간'을 선택하고 다음을 클릭한 후 '개인 정보 보호 샌드박스'라는 이름을 지정합니다. 'Personal'을 선택하고 'Create'를 클릭합니다.

사전 구성된 작업공간 JSON 구성전역 환경 파일을 다운로드합니다.

'가져오기' 버튼을 사용하여 JSON 파일을 '내 작업공간'으로 가져옵니다.

Postman JSONfile 가져오기

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

우체국 가져오기 컬렉션

'Environment quick Look'을 통해 AWS 'Access Key' 및 'Secret Key'를 업데이트합니다.

Postman 환경 퀵룩

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

postman 전역 변수

postman 수정 전역 변수

2. 로컬 테스트 Codelab

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

Codelab 단계

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

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 비공개 집계내부

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

비공개 집계 보고서 보내기

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

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

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

비공개 집계 보고서

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

vim report.json

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

JSONfile 보고

이러한 권한이 있으면 보고서 폴더로 이동하고 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를 복사합니다.

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

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

페이로드디코더

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

페이로드 디코더 결과

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 보고서가 생성됩니다.

로컬 테스트 요약 보고서 avrofile

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으로 변환됨

원하는 편집기에서 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 파일을 업데이트하고 i에서 input 키를 눌러 파일을 수정합니다.

vim main.tf

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

AWS main.tf의 경우:

AWS 기본 tffile

주석 처리되지 않은 코드는 다음과 같습니다.

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를 업데이트하고 i를 눌러 input 키를 눌러 파일을 수정합니다.

vim dev.auto.tfvars

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

개발 자동 tfvarsfile 수정

업데이트가 완료되면 esc -> :wq!를 누릅니다. 그러면 dev.auto.tfvars 파일이 저장되고 다음 이미지와 같이 표시됩니다.

업데이트된 dev auto tfvarsfile

3.4. 집계 서비스 배포

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

terraform init

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

테라포르마이트

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

terraform plan

다음 '계획' 요약에서 확인할 수 있습니다. 신규 배포인 경우 변경할 리소스 수가 0이고 삭제할 리소스 수가 0으로 표시됩니다.

테라폼플랜

이 작업을 완료하면 Terraform 적용을 진행할 수 있습니다.

terraform apply

Terraform으로 작업을 수행할지 확인하는 메시지가 표시되면 값에 yes을 입력합니다.

terraform applyprompt

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

terraform applycomplete

4. 집계 서비스 입력 생성

집계 서비스에서 일괄 처리를 위한 AVRO 보고서 만들기를 진행합니다.

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

4.1. 트리거 보고서

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

Chrome 비공개 집계내부

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

비공개 집계 보고서 보내기

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

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

  • 비공개 집계
    [reporting-origin] /.well-known/private-aggregation/report-shared-storage
  • 기여도 보고 - 요약 보고서
    [reporting-origin] /.well-known/attribution-reporting/report-aggregate-attribution

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

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

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

비공개 집계 보고서

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

vim report.json

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

JSONfile 보고

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를 열고 'INPUT' 상자에 debug_cleartext_payload을 붙여넣고 'INPUT'을 클릭합니다.

페이로드디코더

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

페이로드 디코더 결과

이제 버킷 키를 만들었으므로 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단계: 집계 서비스 사용량: Aggregation Service API를 사용하여 요약 보고서를 만들고 요약 보고서를 검토합니다.
5.1단계. createJob 엔드포인트를 사용하여 일괄 처리
5.2단계. getJob Endpoint를 사용하여 일괄 상태 검색
5.3단계. 요약 보고서 검토하기

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

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

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

postman createJob 요청 본문

createJob 페이로드 스키마는 github에서 제공되며 다음과 유사합니다. <>를 적절한 필드로 바꿉니다.

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

'Send'를 클릭하면 job_request_id을 사용하여 작업이 생성됩니다. 집계 서비스에서 요청을 수락하면 HTTP 202 응답을 받게 됩니다. 가능한 다른 반환 코드는 HTTP 응답 코드에서 확인할 수 있습니다.

postman createJob 요청상태

5.2. getJob Endpoint를 사용하여 일괄 상태 검색

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

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

postman getJobrequest

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

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_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. 요약 보고서 검토하기

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

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

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

요약 보고서

createJob 요청에 truedebug_run가 포함되어 있으면 output_data_blob_prefix에 있는 디버그 폴더에서 요약 보고서를 수신할 수 있습니다. 보고서는 AVRO 형식이며 이전 명령어를 사용하여 JSON으로 변환할 수 있습니다.

보고서에는 버킷 키, 노이즈 제거 측정항목, 노이즈가 제거된 측정항목에 추가되어 요약 보고서를 구성하는 노이즈가 포함됩니다. 보고서는 다음 이미지와 유사합니다.

디버그 요약 보고서

주석에는 in_reportsin_domain도 포함되어 있는데 이는 다음을 의미합니다.

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