1. Điều kiện tiên quyết
Để tham gia lớp học lập trình này, bạn cần đáp ứng một số điều kiện tiên quyết. Mỗi yêu cầu được đánh dấu tương ứng cho biết yêu cầu đó là bắt buộc đối với "Kiểm thử cục bộ" hay "Dịch vụ tổng hợp".
1.1. Tải Công cụ kiểm thử cục bộ xuống (Kiểm thử cục bộ)
Bạn cần tải Công cụ kiểm thử cục bộ xuống để kiểm thử cục bộ. Công cụ này sẽ tạo báo cáo tóm tắt từ các báo cáo gỡ lỗi chưa mã hoá.
Bạn có thể tải công cụ Kiểm thử cục bộ xuống trong Kho lưu trữ JAR Lambda trong GitHub. Bạn nên đặt tên là LocalTestingTool_{version}.jar
.
1.2. Đảm bảo bạn đã cài đặt JAVA JRE (Dịch vụ tổng hợp và kiểm thử cục bộ)
Mở "Terminal" (Dòng lệnh) và sử dụng java --version
để kiểm tra xem máy của bạn đã cài đặt Java hay openJDK hay chưa.
Nếu chưa cài đặt, bạn có thể tải xuống và cài đặt từ trang web Java hoặc trang web openJDK.
1.3. Tải Trình chuyển đổi báo cáo tổng hợp (Dịch vụ thử nghiệm cục bộ và tổng hợp)
Bạn có thể tải một bản sao của trình chuyển đổi báo cáo tổng hợp xuống từ Kho lưu trữ GitHub của bản minh hoạ Hộp cát về quyền riêng tư.
1.4. Bật API quyền riêng tư trong quảng cáo (Dịch vụ tổng hợp và kiểm thử cục bộ)
Trên trình duyệt, hãy chuyển đến chrome://settings/adPrivacy
rồi bật tất cả API Quyền riêng tư trong quảng cáo.
Đảm bảo rằng bạn đã bật cookie của bên thứ ba.
Trên trình duyệt, hãy chuyển đến chrome://settings/cookies
rồi chọn "Chặn cookie của bên thứ ba ở chế độ ẩn danh".
1.5. Đăng ký trên web và Android (Dịch vụ tổng hợp)
Để sử dụng các API Hộp cát về quyền riêng tư trong môi trường phát hành công khai, hãy đảm bảo rằng bạn đã hoàn tất quy trình đăng ký và chứng thực cho cả Chrome và Android.
Để kiểm thử cục bộ, bạn có thể tắt chế độ đăng ký bằng cách sử dụng cờ chrome và nút chuyển CLI.
Để sử dụng cờ Chrome cho bản minh hoạ của chúng tôi, hãy chuyển đến chrome://flags/#privacy-sandbox-enrollment-overrides
và cập nhật chế độ ghi đè bằng trang web của bạn hoặc nếu bạn sẽ sử dụng trang web minh hoạ của chúng tôi, thì bạn không cần cập nhật.
1.6. Giới thiệu về Dịch vụ tổng hợp (Dịch vụ tổng hợp)
Dịch vụ tổng hợp yêu cầu người điều phối phải tham gia để có thể sử dụng dịch vụ. Hoàn tất Biểu mẫu tham gia Dịch vụ tổng hợp bằng cách cung cấp địa chỉ trang web báo cáo, Mã tài khoản AWS và các thông tin khác.
1.7. Nhà cung cấp dịch vụ đám mây (Dịch vụ tổng hợp)
Dịch vụ tổng hợp yêu cầu sử dụng Môi trường thực thi đáng tin cậy sử dụng môi trường đám mây. Dịch vụ tổng hợp được hỗ trợ trên Amazon Web Services (AWS) và Google Cloud (GCP). Lớp học lập trình này sẽ chỉ đề cập đến việc tích hợp AWS.
AWS cung cấp một Môi trường thực thi đáng tin cậy có tên là Nitro Enclaves. Đảm bảo bạn có tài khoản AWS và làm theo hướng dẫn cài đặt và cập nhật AWS CLI để thiết lập môi trường AWS CLI.
Nếu AWS CLI của bạn là mới, bạn có thể định cấu hình AWS CLI bằng Hướng dẫn định cấu hình CLI.
1.7.1. Tạo bộ chứa AWS S3
Tạo một vùng chứa S3 của AWS để lưu trữ trạng thái Terraform và một vùng chứa S3 khác để lưu trữ báo cáo và báo cáo tóm tắt. Bạn có thể sử dụng lệnh CLI được cung cấp. Thay thế trường trong <>
thành các biến thích hợp.
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. Tạo khoá truy cập của người dùng
Tạo khoá truy cập của người dùng bằng hướng dẫn của AWS. Mã này sẽ được dùng để gọi các điểm cuối API createJob
và getJob
được tạo trên AWS.
1.7.3. Quyền của người dùng và nhóm trên AWS
Để triển khai Dịch vụ tổng hợp trên AWS, bạn cần cấp một số quyền nhất định cho người dùng dùng để triển khai dịch vụ. Đối với lớp học lập trình này, hãy đảm bảo người dùng có Quyền quản trị để có đầy đủ quyền trong quá trình triển khai.
1.8. Terraform (Dịch vụ tổng hợp)
Lớp học lập trình này sử dụng Terraform để triển khai Dịch vụ tổng hợp. Đảm bảo rằng bạn đã cài đặt tệp nhị phân Terraform vào môi trường cục bộ.
Tải tệp nhị phân Terraform xuống môi trường cục bộ.
Sau khi tải tệp nhị phân Terraform xuống, hãy giải nén tệp và di chuyển tệp nhị phân Terraform vào /usr/local/bin
.
cp <directory>/terraform /usr/local/bin
Kiểm tra để đảm bảo Terraform có trên classpath.
terraform -v
1.9. Postman (Dành cho Dịch vụ tổng hợp AWS)
Trong lớp học lập trình này, hãy sử dụng Postman để quản lý yêu cầu.
Tạo không gian làm việc bằng cách chuyển đến mục điều hướng trên cùng "Không gian làm việc" rồi chọn "Tạo không gian làm việc".
Chọn "Blank workspace" (Không gian làm việc trống), nhấp vào Next (Tiếp theo) rồi đặt tên là "Privacy Sandbox" (Hộp cát về quyền riêng tư). Chọn "Cá nhân" rồi nhấp vào "Tạo".
Tải tệp cấu hình JSON và Môi trường toàn cục của không gian làm việc được định cấu hình sẵn xuống.
Nhập tệp JSON vào "Không gian làm việc của tôi" bằng nút "Nhập".
Thao tác này sẽ tạo bộ sưu tập Hộp cát về quyền riêng tư cho bạn cùng với các yêu cầu HTTP createJob
và getJob
.
Cập nhật "Khoá truy cập" và "Khoá bí mật" của AWS thông qua tính năng "Xem nhanh môi trường".
Nhấp vào "Chỉnh sửa" rồi cập nhật "Giá trị hiện tại" của cả "access_key" và "secret_key". Xin lưu ý rằng frontend_api_id
sẽ được cung cấp trong phần 3.1.4 của tài liệu này. Bạn nên sử dụng khu vực us-east-1. Tuy nhiên, nếu bạn muốn triển khai ở một khu vực khác, hãy nhớ sao chép AMI đã phát hành vào tài khoản của bạn hoặc tự tạo bằng tập lệnh được cung cấp.
2. Lớp học lập trình về kiểm thử cục bộ
Bạn có thể sử dụng công cụ kiểm thử cục bộ trên máy để tổng hợp và tạo báo cáo tóm tắt bằng các báo cáo gỡ lỗi chưa mã hoá.
Các bước trong lớp học lập trình
Bước 2.1. Kích hoạt báo cáo: Kích hoạt tính năng báo cáo Tổng hợp riêng tư để có thể thu thập báo cáo.
Bước 2.2. Tạo báo cáo tổng hợp gỡ lỗi: Chuyển đổi báo cáo JSON đã thu thập thành báo cáo định dạng AVRO.
Bước này sẽ tương tự như khi công nghệ quảng cáo thu thập báo cáo từ các điểm cuối báo cáo API và chuyển đổi báo cáo JSON thành báo cáo định dạng AVRO.
Bước 2.3. Phân tích cú pháp khoá nhóm từ báo cáo gỡ lỗi: Khoá nhóm do các công nghệ quảng cáo thiết kế. Trong lớp học lập trình này, vì các bộ chứa được xác định trước, hãy truy xuất khoá bộ chứa như đã cung cấp.
Bước 2.4. Tạo miền đầu ra AVRO: Sau khi truy xuất khoá bộ chứa, hãy tạo tệp AVRO của miền đầu ra.
Bước 2.5. Tạo báo cáo tóm tắt bằng Công cụ kiểm thử cục bộ: Sử dụng Công cụ kiểm thử cục bộ để tạo Báo cáo tóm tắt trong Môi trường cục bộ.
Bước 2.6. Xem lại báo cáo tóm tắt: Xem lại Báo cáo tóm tắt do Công cụ kiểm thử cục bộ tạo.
2.1. Báo cáo điều kiện kích hoạt
Truy cập vào trang web minh hoạ hộp cát về quyền riêng tư. Thao tác này sẽ kích hoạt một báo cáo tổng hợp riêng tư. Bạn có thể xem báo cáo tại chrome://private-aggregation-internals
.
Nếu báo cáo của bạn có trạng thái "Đang chờ xử lý", bạn có thể chọn báo cáo đó rồi nhấp vào "Gửi báo cáo đã chọn".
2.2. Tạo báo cáo tổng hợp gỡ lỗi
Trong chrome://private-aggregation-internals
, hãy sao chép "Report Body" (Phần nội dung báo cáo) nhận được trong điểm cuối [reporting-origin]/.well-known/private-aggregation/report-shared-storage
.
Đảm bảo rằng trong phần "Nội dung báo cáo", aggregation_coordinator_origin
chứa https://publickeyservice.msmt.aws.privacysandboxservices.com
, nghĩa là báo cáo là báo cáo tổng hợp của AWS.
Đặt "Nội dung báo cáo" JSON trong tệp JSON. Trong ví dụ này, bạn có thể sử dụng vim. Tuy nhiên, bạn có thể sử dụng bất kỳ trình chỉnh sửa văn bản nào bạn muốn.
vim report.json
Dán báo cáo vào report.json
rồi lưu tệp.
Sau khi có dữ liệu đó, hãy chuyển đến thư mục báo cáo và sử dụng aggregatable_report_converter.jar
để tạo báo cáo tổng hợp gỡ lỗi. Thao tác này sẽ tạo một báo cáo tổng hợp có tên là report.avro
trong thư mục hiện tại của bạn.
java -jar aggregatable_report_converter.jar \
--request_type convertToAvro \
--input_file report.json \
--debug
2.3. Phân tích cú pháp khoá bộ chứa từ báo cáo gỡ lỗi
Dịch vụ tổng hợp yêu cầu hai tệp khi tạo lô. Báo cáo tổng hợp và tệp miền đầu ra. Tệp miền đầu ra chứa các khoá mà bạn muốn truy xuất từ các báo cáo tổng hợp. Để tạo tệp output_domain.avro
, bạn cần có các khoá bộ chứa có thể truy xuất từ báo cáo.
Khoá nhóm được thiết kế bởi phương thức gọi của API và bản minh hoạ chứa các khoá nhóm mẫu được tạo sẵn. Vì bản minh hoạ đã bật chế độ gỡ lỗi cho tính năng Tổng hợp riêng tư, nên bạn có thể phân tích cú pháp tải trọng văn bản thô gỡ lỗi từ "Report Body" (Phần nội dung báo cáo) để truy xuất khoá bộ chứa. Tuy nhiên, trong trường hợp này, minh hoạ hộp cát về quyền riêng tư của trang web sẽ tạo khoá bộ chứa. Vì tính năng tổng hợp riêng tư cho trang web này đang ở chế độ gỡ lỗi, nên bạn có thể sử dụng debug_cleartext_payload
từ "Phần nội dung báo cáo" để lấy khoá bộ chứa.
Sao chép debug_cleartext_payload
từ phần nội dung báo cáo.
Mở công cụ Gỡ lỗi bộ giải mã tải trọng cho tính năng Tổng hợp riêng tư rồi dán debug_cleartext_payload
vào hộp "INPUT" (ĐẦU VÀO) và nhấp vào "Decode" (Giải mã).
Trang này trả về giá trị thập phân của khoá bộ chứa. Sau đây là khoá bộ chứa mẫu.
2.4. Tạo miền đầu ra AVRO
Bây giờ, chúng ta đã có khoá bộ chứa, hãy tiếp tục sao chép giá trị thập phân của khoá bộ chứa. Tiếp tục tạo output_domain.avro
bằng khoá bộ chứa. Hãy nhớ thay thế
bằng khoá bộ chứa mà bạn đã truy xuất.
java -jar aggregatable_report_converter.jar \
--request_type createDomainAvro \
--bucket_key <bucket key>
Tập lệnh này sẽ tạo tệp output_domain.avro
trong thư mục hiện tại của bạn.
2.5. Tạo báo cáo tóm tắt bằng Công cụ kiểm thử cục bộ
Chúng ta sẽ sử dụng LocalTestingTool_{version}.jar
đã tải xuống trong Phần 1.1 để tạo báo cáo tóm tắt. Sử dụng lệnh sau. Bạn nên thay thế LocalTestingTool_{version}.jar
bằng phiên bản đã tải xuống cho LocalTestingTool.
Chạy lệnh sau để tạo báo cáo tóm tắt trong môi trường phát triển cục bộ:
java -jar LocalTestingTool_{version}.jar \
--input_data_avro_file report.avro \
--domain_avro_file output_domain.avro \
--output_directory .
Bạn sẽ thấy nội dung tương tự như hình ảnh sau khi chạy lệnh. Một báo cáo output.avro
sẽ được tạo sau khi quá trình này hoàn tất.
2.6. Xem xét báo cáo tóm tắt
Báo cáo tóm tắt được tạo ở định dạng AVRO. Để có thể đọc dữ liệu này, bạn cần chuyển đổi dữ liệu này từ định dạng AVRO sang định dạng JSON. Lý tưởng nhất là công nghệ quảng cáo phải lập trình để chuyển đổi báo cáo AVRO trở lại JSON.
Trong lớp học lập trình này, chúng ta sẽ sử dụng công cụ aggregatable_report_converter.jar
được cung cấp để chuyển đổi báo cáo AVRO trở lại JSON.
java -jar aggregatable_report_converter.jar \
--request_type convertToJson \
--input_file output.avro
Thao tác này sẽ trả về một báo cáo tương tự như hình sau. Cùng với một báo cáo output.json
được tạo trong cùng một thư mục.
Mở tệp JSON trong trình chỉnh sửa mà bạn chọn để xem báo cáo tóm tắt.
3. Triển khai Dịch vụ tổng hợp
Để triển khai Dịch vụ tổng hợp, hãy làm theo các bước sau:
Bước 3. Triển khai Dịch vụ tổng hợp: Triển khai Dịch vụ tổng hợp trên AWS
Bước 3.1. Sao chép Kho lưu trữ dịch vụ tổng hợp
Bước 3.2. Tải các phần phụ thuộc tạo sẵn xuống
Bước 3.3. Tạo môi trường phát triển
Bước 3.4. Triển khai Dịch vụ tổng hợp
3.1. Sao chép kho lưu trữ Dịch vụ tổng hợp
Trong môi trường cục bộ, hãy sao chép kho lưu trữ GitHub của Dịch vụ tổng hợp.
git clone https://github.com/privacysandbox/aggregation-service.git
3.2. Tải các phần phụ thuộc tạo sẵn xuống
Sau khi bạn sao chép kho lưu trữ Dịch vụ tổng hợp, hãy chuyển đến thư mục Terraform của kho lưu trữ và đến thư mục đám mây tương ứng. Nếu cloud_provider là AWS, bạn có thể chuyển sang
cd <repository_root>/terraform/aws
Trong
, hãy thực thi download_prebuilt_dependencies.sh
.
bash download_prebuilt_dependencies.sh
3.3. Tạo môi trường phát triển
Tạo môi trường phát triển trong
. Tạo một thư mục có tên là dev
.
mkdir dev
Sao chép nội dung của thư mục demo
vào thư mục dev
.
cp -R demo/* dev
Di chuyển vào thư mục dev
.
cd dev
Cập nhật tệp main.tf
và nhấn i
cho input
để chỉnh sửa tệp.
vim main.tf
Bỏ ghi chú mã trong hộp màu đỏ bằng cách xoá # và cập nhật tên bộ chứa và khoá.
Đối với AWS main.tf:
Mã không có chú thích sẽ có dạng như sau.
backend "s3" {
bucket = "<tf_state_bucket_name>"
key = "<environment_name>.tfstate"
region = "us-east-1"
}
Sau khi cập nhật xong, hãy lưu nội dung cập nhật và thoát trình chỉnh sửa bằng cách nhấn tổ hợp phím esc
-> :wq!
. Thao tác này sẽ lưu nội dung cập nhật trên main.tf
.
Tiếp theo, hãy đổi tên example.auto.tfvars
thành dev.auto.tfvars
.
mv example.auto.tfvars dev.auto.tfvars
Cập nhật dev.auto.tfvars
và nhấn i
cho input
để chỉnh sửa tệp.
vim dev.auto.tfvars
Cập nhật các trường trong hộp màu đỏ theo hình ảnh bằng các tham số ARN AWS chính xác được cung cấp trong email giới thiệu, môi trường và thông báo về Dịch vụ tổng hợp.
Sau khi cập nhật xong, hãy nhấn vào esc
-> :wq!
. Thao tác này sẽ lưu tệp dev.auto.tfvars
và tệp này sẽ có dạng như hình sau.
3.4. Triển khai Dịch vụ tổng hợp
Để triển khai Dịch vụ tổng hợp, trong cùng thư mục
, hãy khởi chạy Terraform.
terraform init
Thao tác này sẽ trả về kết quả tương tự như hình ảnh sau:
Sau khi khởi chạy Terraform, hãy tạo kế hoạch thực thi Terraform. Hàm này trả về số lượng tài nguyên cần thêm và thông tin bổ sung khác tương tự như hình ảnh sau.
terraform plan
Bạn có thể xem phần tóm tắt "Kế hoạch" trong phần sau. Nếu đây là lần triển khai mới, bạn sẽ thấy số lượng tài nguyên sẽ được thêm là 0 để thay đổi và 0 để huỷ bỏ.
Sau khi hoàn tất, bạn có thể tiến hành áp dụng Terraform.
terraform apply
Sau khi được nhắc xác nhận thực hiện các hành động của Terraform, hãy nhập yes
vào giá trị.
Sau khi terraform apply
hoàn tất, các điểm cuối sau đây cho createJob
và getJob
sẽ được trả về. frontend_api_id
mà bạn cần cập nhật trong Postman trong phần 1.9 cũng được trả về.
4. Tạo dữ liệu đầu vào cho Dịch vụ tổng hợp
Tiếp tục tạo báo cáo AVRO để tạo lô trong Dịch vụ tổng hợp.
Bước 4. Tạo dữ liệu đầu vào cho Dịch vụ tổng hợp: Tạo các báo cáo Dịch vụ tổng hợp được phân lô cho Dịch vụ tổng hợp.
Bước 4.1. Báo cáo điều kiện kích hoạt
Bước 4.2. Thu thập báo cáo tổng hợp
Bước 4.3. Chuyển đổi báo cáo sang AVRO
Bước 4.4. Tạo miền đầu ra AVRO
4.1. Báo cáo điều kiện kích hoạt
Truy cập vào trang web minh hoạ Hộp cát về quyền riêng tư. Thao tác này sẽ kích hoạt một báo cáo tổng hợp riêng tư. Bạn có thể xem báo cáo tại chrome://private-aggregation-internals
.
Nếu báo cáo của bạn có trạng thái "Đang chờ xử lý", bạn có thể chọn báo cáo đó rồi nhấp vào "Gửi báo cáo đã chọn".
4.2. Thu thập báo cáo tổng hợp
Thu thập báo cáo tổng hợp từ các điểm cuối .well-known
của API tương ứng.
- Tổng hợp riêng tư
[reporting-origin] /.well-known/private-aggregation/report-shared-storage
- Báo cáo phân bổ – Báo cáo tóm tắt
[reporting-origin] /.well-known/attribution-reporting/report-aggregate-attribution
Trong lớp học lập trình này, bạn sẽ thu thập báo cáo theo cách thủ công. Trong môi trường sản xuất, các công nghệ quảng cáo dự kiến sẽ thu thập và chuyển đổi báo cáo theo phương thức lập trình.
Trong chrome://private-aggregation-internals
, hãy sao chép "Report Body" (Phần nội dung báo cáo) nhận được trong điểm cuối [reporting-origin]/.well-known/private-aggregation/report-shared-storage
.
Đảm bảo rằng trong phần "Nội dung báo cáo", aggregation_coordinator_origin
chứa https://publickeyservice.msmt.aws.privacysandboxservices.com
, nghĩa là báo cáo là báo cáo tổng hợp của AWS.
Đặt "Nội dung báo cáo" JSON trong tệp JSON. Trong ví dụ này, bạn có thể sử dụng vim. Tuy nhiên, bạn có thể sử dụng bất kỳ trình chỉnh sửa văn bản nào bạn muốn.
vim report.json
Dán báo cáo vào report.json
rồi lưu tệp.
4.3. Chuyển đổi báo cáo sang AVRO
Báo cáo nhận được từ các điểm cuối .well-known
ở định dạng JSON và cần được chuyển đổi sang định dạng báo cáo AVRO. Sau khi có báo cáo JSON, hãy chuyển đến thư mục báo cáo và sử dụng aggregatable_report_converter.jar
để tạo báo cáo gộp gỡ lỗi. Thao tác này sẽ tạo một báo cáo tổng hợp có tên là report.avro
trong thư mục hiện tại của bạn.
java -jar aggregatable_report_converter.jar \
--request_type convertToAvro \
--input_file report.json
4.4. Tạo miền đầu ra AVRO
Để tạo tệp output_domain.avro
, bạn cần có các khoá bộ chứa có thể truy xuất từ báo cáo.
Khoá nhóm do công nghệ quảng cáo thiết kế. Tuy nhiên, trong trường hợp này, trang web Bản minh hoạ Hộp cát về quyền riêng tư sẽ tạo khoá nhóm. Vì tính năng tổng hợp riêng tư cho trang web này đang ở chế độ gỡ lỗi, nên bạn có thể sử dụng debug_cleartext_payload
từ "Phần nội dung báo cáo" để lấy khoá bộ chứa.
Hãy tiếp tục sao chép debug_cleartext_payload
từ nội dung báo cáo.
Mở goo.gle/ags-payload-decoder rồi dán debug_cleartext_payload
vào hộp "INPUT" (ĐẦU VÀO) rồi nhấp vào "Decode" (Giải mã).
Trang này trả về giá trị thập phân của khoá bộ chứa. Sau đây là khoá bộ chứa mẫu.
Bây giờ, chúng ta đã có khoá bộ chứa, hãy tiếp tục tạo output_domain.avro
. Hãy nhớ thay thế
bằng khoá bộ chứa mà bạn đã truy xuất.
java -jar aggregatable_report_converter.jar \
--request_type createDomainAvro \
--bucket_key <bucket key>
Tập lệnh này sẽ tạo tệp output_domain.avro
trong thư mục hiện tại của bạn.
4.5. Di chuyển báo cáo sang bộ chứa AWS
Sau khi tạo báo cáo AVRO (từ phần 3.2.3) và miền đầu ra (từ phần 3.2.4), hãy tiếp tục di chuyển báo cáo và miền đầu ra vào các bộ chứa S3 báo cáo.
Nếu bạn đã thiết lập AWS CLI trên môi trường cục bộ, hãy sử dụng các lệnh sau để sao chép báo cáo vào bộ chứa S3 và thư mục báo cáo tương ứng.
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. Mức sử dụng Dịch vụ tổng hợp
Từ terraform apply
, bạn sẽ được trả về create_job_endpoint
, get_job_endpoint
và frontend_api_id
. Sao chép frontend_api_id
và đặt biến này vào biến toàn cục frontend_api_id
của Postman mà bạn đã thiết lập trong phần điều kiện tiên quyết 1.9.
Bước 5. Sử dụng Dịch vụ tổng hợp: Sử dụng API Dịch vụ tổng hợp để tạo báo cáo tóm tắt và xem xét báo cáo tóm tắt.
Bước 5.1. Sử dụng Điểm cuối createJob để tạo lô
Bước 5.2. Sử dụng Điểm cuối getJob để truy xuất trạng thái lô
Bước 5.3. Xem xét Báo cáo tóm tắt
5.1. Sử dụng điểm cuối createJob
để tạo lô
Trong Postman, hãy mở tập hợp "Privacy Sandbox" (Hộp cát về quyền riêng tư) rồi chọn "createJob" (tạo công việc).
Chọn "Body" (Phần nội dung) rồi chọn "raw" (Thô) để đặt tải trọng yêu cầu.
Bạn có thể xem giản đồ tải trọng createJob
trong github và giản đồ này có dạng như sau. Thay thế <>
bằng các trường thích hợp.
{
"job_request_id": "<job_request_id>",
"input_data_blob_prefix": "<report_folder>/<report_name>.avro",
"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>", // Only one of attribution_report_to or reporting_site is required as of v2.7.0
"report_error_threshold_percentage": "10",
"debug_run": "true"
}
}
Sau khi bạn nhấp vào "Send" (Gửi), thao tác này sẽ tạo công việc bằng job_request_id
. Bạn sẽ nhận được phản hồi HTTP 202 sau khi Dịch vụ tổng hợp chấp nhận yêu cầu. Bạn có thể tìm thấy các mã trả về khác trong Mã phản hồi HTTP
5.2. Sử dụng Điểm cuối getJob để truy xuất trạng thái lô
Để kiểm tra trạng thái của yêu cầu công việc, bạn có thể sử dụng điểm cuối getJob
. Chọn "getJob" trong bộ sưu tập "Privacy Sandbox" (Hộp cát về quyền riêng tư).
Trong phần "Params" (Thông số), hãy cập nhật giá trị job_request_id thành job_request_id
đã được gửi trong yêu cầu createJob
.
Kết quả của getJob
sẽ trả về trạng thái của yêu cầu công việc với trạng thái HTTP là 200. Yêu cầu "Body" (Phần nội dung) chứa thông tin cần thiết như job_status
, return_message
và error_messages
(nếu công việc gặp lỗi).
Vì trang web báo cáo của báo cáo minh hoạ được tạo khác với trang web đã tham gia của bạn trên mã nhận dạng AWS, nên bạn có thể nhận được phản hồi có return_code PRIVACY_BUDGET_AUTHORIZATION_ERROR
. Điều này là bình thường vì trang web nguồn báo cáo của báo cáo không khớp với trang web báo cáo đã được thêm vào mã nhận dạng 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",
"reporting_site": "<domain of reporting origin(s) of report>", // Only one of attribution_report_to or reporting_site is required as of v2.7.0
},
"request_processing_started_at": "2023-12-07T22:51:06.034472697Z"
}
5.3. Xem xét Báo cáo tóm tắt
Sau khi nhận được báo cáo tóm tắt trong Vùng chứa S3 đầu ra, bạn có thể tải báo cáo này xuống môi trường cục bộ. Báo cáo tóm tắt ở định dạng AVRO và có thể được chuyển đổi trở lại thành JSON. Bạn có thể sử dụng aggregatable_report_converter.jar
để đọc báo cáo bằng lệnh sau.
java -jar aggregatable_report_converter.jar \
--request_type convertToJson \
--input_file <summary_report_avro>
Thao tác này sẽ trả về một JSON gồm các giá trị tổng hợp của mỗi khoá bộ chứa tương tự như hình ảnh sau.
Nếu yêu cầu createJob
của bạn bao gồm debug_run
dưới dạng true
, thì bạn có thể nhận được báo cáo tóm tắt trong thư mục gỡ lỗi nằm trong output_data_blob_prefix
. Báo cáo ở định dạng AVRO và có thể được chuyển đổi thành JSON bằng lệnh trước đó.
Báo cáo này chứa khoá nhóm, chỉ số chưa bị nhiễu và nhiễu được thêm vào chỉ số chưa bị nhiễu để tạo thành báo cáo tóm tắt. Báo cáo này có dạng tương tự như hình ảnh sau.
Chú thích cũng chứa in_reports
và in_domain
, có nghĩa là:
- in_reports – khoá nhóm có trong các báo cáo tổng hợp.
- in_domain – khoá bộ chứa có sẵn bên trong tệp AVRO output_domain.