Sử dụng Dịch vụ tổng hợp trên AWS

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. Từng yêu cầu đều được đánh dấu tương ứng, tức 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 tra cục bộ xuống (Kiểm tra cục bộ)

Kiểm tra cục bộ sẽ yêu cầu tải xuống Công cụ kiểm tra 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 Lưu trữ JAR của Lambda trong GitHub. Lớp này phải được đặt tên là LocalTestingTool_{version}.jar.

1.2. Đảm bảo bạn đã cài đặt JAVA JRE (Dịch vụ kiểm thử và tổng hợp cục bộ)

Mở "Terminal" rồi dùng java --version để kiểm tra xem máy của bạn đã cài đặt Java hoặc openJDK hay chưa.

kiểm tra phiên bản java jre bằng java\n--phiên bản

Nếu chưa cài đặt, bạn có thể tải xuống và cài đặt qua 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 xuống (Dịch vụ kiểm tra và tổng hợp cục bộ)

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 minh hoạ cho Hộp cát về quyền riêng tư.

1.4. Bật API Hộp cát về quyền riêng tư (Dịch vụ thử nghiệm và tổng hợp cục bộ)

Trên trình duyệt, hãy truy cập vào chrome://flags/#privacy-sandbox-ads-apis rồi bật các API Hộp cát về quyền riêng tư.

cờ chrome trong hộp cát về quyền riêng tư

Đảm bảo bạn đã bật Cookie của bên thứ 3.

Trên trình duyệt, hãy truy cập chrome://settings/cookies rồi chọn "Chặn cookie của bên thứ ba ở Chế độ ẩn danh".

cài đặt Chrome cho cookie của bên thứ ba

1.5. Đăng ký web và Android (Dịch vụ tổng hợp)

Để sử dụng API Hộp cát về quyền riêng tư trong môi trường phát hành chính thức, 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.

Đối với kiểm thử cục bộ, bạn có thể tắt tính năng đăng ký bằ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 đè cho 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.

ghi đè đăng ký hộp cát về quyền riêng tư chromeflag

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 điều phối viên tham gia để có thể sử dụng dịch vụ. Hoàn tất Biểu mẫu giới thiệu 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. Môi trường này sử dụng một 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 rằng 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 của bạn.

Nếu là AWS CLI mới, bạn có thể định cấu hình AWS CLI bằng cách làm theo hướng dẫn về Cấu hình CLI.

1.7.1. Tạo bộ chứa AWS S3

Tạo một Bộ chứa AWS S3 để lưu trữ trạng thái Terraform và một bộ 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 phù 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 cho người dùng

Tạo khoá truy cập cho người dùng theo hướng dẫn về AWS. API này sẽ được dùng để gọi các điểm cuối API createJobgetJob được tạo trên AWS.

1.7.3. Quyền của người dùng và nhóm AWS

Để triển khai Dịch vụ tổng hợp trên AWS, bạn cần cung cấp một số quyền nhất định cho người dùng dùng để triển khai dịch vụ này. Đố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ị để đảm bảo có toàn quyền khi 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 cài đặt tệp nhị phân Teraform vào môi trường cục bộ của bạn.

Tải tệp nhị phân Teraform 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 rằng Terraform có trên classpath.

terraform -v

1.9. Postman (Đối với dịch vụ tổng hợp AWS)

Đối với lớp học lập trình này, hãy sử dụng Postman để quản lý yêu cầu.

Hãy tạo một 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".

không gian làm việc của Postman

Chọn "Không gian làm việc trống", nhấp vào tiếp theo rồi đặt tên là "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 các tệp cấu hình JSONMôi trường toàn cầu xuống trong không gian làm việc được định cấu hình sẵn.

Nhập tệp JSON vào "Không gian làm việc của tôi" bằng nút "Nhập".

nhập JSONfileman Postman

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 createJobgetJob.

bộ sưu tập đã nhập của người bưu điện

Cập nhật "Access Key" (Khoá truy cập) và "Secret Key" (Khoá bí mật) của AWS thông qua phần "Environment Quick Look" (Tìm hiểu nhanh về môi trường).

giao diện nhanh về môi trường người đưa thư

Nhấp vào "Edit" (Chỉnh sửa) và cập nhật "Current Value" (Giá trị hiện tại) của cả "access_key" và "secret_key". 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. Chúng tôi cũng khuyên bạn nên sử dụng khu vực us-east-1. Tuy nhiên, nếu 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 mình hoặc tự tạo bằng tập lệnh được cung cấp.

biến toàn cục của Postman

Chỉnh sửa biến toàn cầu của người đưa thư

2. Lớp học lập trình kiểm thử cục bộ

Bạn có thể sử dụng công cụ kiểm tra cục bộ trên máy của mình để tổng hợp và tạo báo cáo tóm tắt bằng cách sử dụng báo cáo gỡ lỗi chưa mã hoá.

Các bước của lớp học lập trình

Bước 2.1. Báo cáo điều kiện kích hoạt: Kích hoạt 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 có đị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 của API và chuyển đổi báo cáo JSON sang báo cáo theo định dạng AVRO.

Bước 2.3. Phân tích cú pháp khoá bộ chứa từ báo cáo gỡ lỗi: Khoá bộ chứa 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 nên hãy truy xuất khoá bộ chứa như được cung cấp.

Bước 2.4. Tạo miền đầu ra AVRO: Sau khi truy xuất các 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 tra cục bộ: Sử dụng Công cụ kiểm tra cục bộ để có thể 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 tra cục bộ tạo.

2.1. Báo cáo điều kiện kích hoạt

Truy cập trang web bản 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 này tại chrome://private-aggregation-internals.

tập hợp nội bộ riêng tư trên Chrome

Nếu báo cáo của bạn ở trạng thái "Đang chờ xử lý", bạn có thể chọn báo cáo và nhấp vào "Gửi báo cáo đã chọn".

gửi báo cáo tổng hợp riêng tư

2.2. Tạo báo cáo tổng hợp gỡ lỗi

Trong chrome://private-aggregation-internals, sao chép "Nội dung báo cáo" nhận được trong điểm cuối [reporting-origin]/.well-known/private-aggregation/report-shared-storage.

Hãy đảm bảo rằng trong "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 này là một báo cáo tổng hợp AWS.

báo cáo tổng hợp riêng tư

Đặt "Nội dung báo cáo" JSON vào một tệp JSON. Trong ví dụ này, bạn có thể sử dụng vim. Tuy nhiên, bạn có thể dùng bất kỳ trình soạn thảo văn bản nào mình muốn.

vim report.json

Dán báo cáo vào report.json rồi lưu tệp.

báo cáo JSONfile

Sau khi tạo xong, hãy chuyển đến thư mục báo cáo rồi 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 trong báo cáo gỡ lỗi

Dịch vụ tổng hợp yêu cầu 2 tệp khi phân 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á bạn muốn truy xuất từ báo cáo tổng hợp. Để tạo tệp output_domain.avro, bạn cần có khoá bộ chứa có thể truy xuất được từ báo cáo.

Khoá bộ chứa đượ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á bộ chứa 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ừ "Nội dung báo cáo" để truy xuất khoá bộ chứa. Tuy nhiên, trong trường hợp này, bản minh hoạ hộp cát về quyền riêng tư của trang web sẽ tạo khoá bộ chứa. Vì dữ liệu tổng hợp riêng tư của trang web này đang ở chế độ gỡ lỗi, nên bạn có thể sử dụng debug_cleartext_payload trong "Nội dung báo cáo" để lấy khoá bộ chứa.

Sao chép debug_cleartext_payload từ nội dung báo cáo.

gỡ lỗi tải trọng văn bản thô khỏi 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" rồi nhấp vào "Giải mã".

bộ giải mã tải trọng

Trang trả về giá trị thập phân của khoá bộ chứa. Dưới đây là khoá bộ chứa mẫu.

kết quả giải mã tải trọng

2.4. Tạo miền đầu ra AVRO

Giờ chúng ta đã có khoá bộ chứa, tiếp tục và 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. Đảm bảo rằng bạn 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 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 tra cục bộ

Chúng ta sẽ sử dụng LocalTestingTool_{version}.jar đã được tải xuống ở 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ộ của bạn:

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 đây sau khi chạy lệnh. Hệ thống sẽ tạo một báo cáo output.avro sau khi hoàn tất việc này.

báo cáo tóm tắt kiểm thử cục bộ avrofile

2.6. Xem báo cáo tóm tắt

Báo cáo tóm tắt được tạo có định dạng AVRO. Để có thể đọc được tệp này, bạn cần phải chuyển đổi tệp này từ AVRO sang định dạng JSON. Tốt nhất là công nghệ quảng cáo nên lập trình để chuyển đổi các báo cáo AVRO về lại JSON.

Đối với lớp học lập trình, 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 về 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 ả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.

đã chuyển đổi tệp avro tóm tắt thành tệp JSON

Mở tệp JSON trong một 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 Dịch vụ tổng hợp.

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

3.2. Tải phần phụ thuộc tạo sẵn xuống

Sau khi 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 của bạn là AWS, bạn có thể tiếp tục chuyển đến /terraform/aws

cd <repository_root>/terraform/aws

Trong /terraform/aws, 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 /terraform/aws/environments. Tạo một thư mục có tên dev.

mkdir dev

Sao chép nội dung thư mục demo vào thư mục dev.

cp -R demo/* dev

Chuyển vào thư mục dev.

cd dev

Cập nhật tệp main.tf rồi nhấn phím i cho input để chỉnh sửa tệp.

vim main.tf

Huỷ nhận xét về mã trong hộp màu đỏ bằng cách xoá #, đồng thời cập nhật tên nhóm và tên khoá.

Đối với AWS main.tf:

Tffile chính của AWS

Mã không có chú giải 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, lưu nội dung cập nhật và thoát khỏi trình chỉnh sửa bằng cách nhấn 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 rồi 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 đỏ dưới đây bằng tham số AWS ARN chính xác được cung cấp trong quá trình làm quen, môi trường và email thông báo về Dịch vụ tổng hợp.

chỉnh sửa tfvarsfile cho nhà phát triển

Sau khi cập nhật xong, hãy nhấn esc -> :wq!. Thao tác này sẽ lưu tệp dev.auto.tfvars và tệp sẽ có dạng như hình sau.

tfvarsfile cho nhà phát triển đã cập nhật

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 /terraform/aws/environments/dev, hãy khởi chạy Terraform.

terraform init

Thao tác này sẽ trả về nội dung tương tự như hình ảnh sau:

đất đá terraforminit

Sau khi khởi tạo Terraform, hãy tạo kế hoạch thực thi Terraform. Trong đó, trường này sẽ trả về số lượng tài nguyên cần thêm và các thông tin bổ sung khác tương tự như hình ảnh sau.

terraform plan

Bạn có thể xem trong phần tóm tắt "Kế hoạch" sau đây. Nếu đây là một đợt triển khai mới, bạn sẽ thấy số lượng tài nguyên sẽ được thêm vào với 0 để thay đổi và 0 để huỷ bỏ.

kế hoạch địa hình

Sau khi hoàn tất, bạn có thể tiến hành đăng ký Terraform.

terraform apply

Sau khi được nhắc xác nhận việc thực hiện các thao tác bằng Terraform, hãy nhập yes vào giá trị.

lời nhắc áp dụng terraform

Sau khi terraform apply hoàn tất, hệ thống sẽ trả về các điểm cuối sau đây cho createJobgetJob. frontend_api_id mà bạn cần cập nhật trong Postman ở phần 1.9 cũng được trả về.

áp dụng terraform hoàn thành

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 để phân 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 theo 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 trang web bản 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 này tại chrome://private-aggregation-internals.

tập hợp nội bộ riêng tư trên Chrome

Nếu báo cáo của bạn ở trạng thái "Đang chờ xử lý", bạn có thể chọn báo cáo và nhấp vào "Gửi báo cáo đã chọn".

gửi báo cáo tổng hợp riêng tư

4.2. Thu thập các báo cáo tổng hợp

Thu thập các 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

Đối với lớp học lập trình này, bạn sẽ thực hiện việc thu thập báo cáo theo cách thủ công. Trong phiên bản chính thứ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, sao chép "Nội dung báo cáo" nhận được trong điểm cuối [reporting-origin]/.well-known/private-aggregation/report-shared-storage.

Hãy đảm bảo rằng trong "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 này là một báo cáo tổng hợp AWS.

báo cáo tổng hợp riêng tư

Đặt "Nội dung báo cáo" JSON vào một tệp JSON. Trong ví dụ này, bạn có thể sử dụng vim. Tuy nhiên, bạn có thể dùng bất kỳ trình soạn thảo văn bản nào mình muốn.

vim report.json

Dán báo cáo vào report.json rồi lưu tệp.

báo cáo JSONfile

4.3. Chuyển đổi báo cáo sang AVRO

Các báo cáo nhận được từ các điểm cuối .well-known sẽ có đị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 rồi 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

4.4. Tạo miền đầu ra AVRO

Để tạo tệp output_domain.avro, bạn cần có khoá bộ chứa có thể truy xuất được từ báo cáo.

Khoá bộ chứa do công nghệ quảng cáo thiết kế. Tuy nhiên, trong trường hợp này, bản minh hoạ Hộp cát về quyền riêng tư của trang web sẽ tạo khoá bộ chứa. Vì dữ liệu tổng hợp riêng tư của trang web này đang ở chế độ gỡ lỗi, nên bạn có thể sử dụng debug_cleartext_payload trong "Nội dung báo cáo" để lấy khoá bộ chứa.

Hãy tiếp tục và sao chép debug_cleartext_payload từ nội dung báo cáo.

gỡ lỗi tải trọng văn bản thô khỏi 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" rồi nhấp vào "Giải mã".

bộ giải mã tải trọng

Trang trả về giá trị thập phân của khoá bộ chứa. Dưới đây là khoá bộ chứa mẫu.

kết quả giải mã tải trọng

Giờ đây khi chúng ta đã có khoá bộ chứa, hãy tiếp tục và tạo output_domain.avro. Đảm bảo rằng bạn 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 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 các báo cáo AVRO (từ phần 3.2.3) và miền đầu ra (từ phần 3.2.4) được tạo, tiến hành di chuyển các 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 dùng các lệnh sau để sao chép báo cáo vào bộ chứa và thư mục báo cáo S3 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ẽ nhận được create_job_endpoint, get_job_endpointfrontend_api_id. Sao chép frontend_api_id và đặt biến này vào biến toàn cục của Postman frontend_api_id mà bạn đã thiết lập trong mục điều kiện tiên quyết 1.9.

Bước 5. Mức 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 hàng loạt
Bước 5.2. Sử dụng Điểm cuối getJob để truy xuất trạng thái hàng loạt
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 để phân lô

Trong Postman, hãy mở bộ sưu tập "Hộp cát về quyền riêng tư" rồi chọn "createJob".

Chọn "Nội dung" rồi chọn "thô" để đặt tải trọng yêu cầu của bạn.

nội dung yêu cầu tạo việc làm của người đưa thư

Giản đồ tải trọng createJob có trong github và 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": "<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"
  }
}

Sau khi bạn nhấp vào "Gửi", thao tác này sẽ tạo công việc với 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 mã trả lại có thể khác trong mã phản hồi HTTP

CANNOT TRANSLATE

5.2. Sử dụng Điểm cuối getjob để truy xuất trạng thái hàng loạt

Để 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 "Hộp cát về quyền riêng tư".

Trong phần "Params", 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.

người đưa thư getJobrequest

Kết quả của getJob sẽ trả về trạng thái yêu cầu công việc của bạn với trạng thái HTTP là 200. Yêu cầu "Body" chứa các thông tin cần thiết như job_status, return_messageerror_messages (nếu công việc bị lỗi).

người đưa thư getjob requeststatus

Vì trang web báo cáo của báo cáo minh hoạ được tạo khác với trang web bạn đã tham gia trên mã AWS của bạn, nên bạn có thể nhận được phản hồi có PRIVACY_BUDGET_AUTHORIZATION_ERROR return_code. Điều này là bình thường vì trang web của nguồn gốc báo cáo của báo cáo không khớp với trang web báo cáo được giới thiệu cho mã 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. 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 Bộ 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 có định dạng AVRO và có thể được chuyển đổi lại thành tệp JSON. Bạn có thể sử dụng aggregatable_report_converter.jar để đọc báo cáo bằng lệnh sau đây.

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

Thao tác này sẽ trả về JSON của các giá trị tổng hợp của mỗi khoá bộ chứa giống như hình ảnh sau.

báo cáo tóm tắt

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 có định dạng AVRO và có thể được chuyển đổi bằng cách sử dụng lệnh trước đó sang tệp JSON.

Báo cáo chứa khoá bộ chứa, chỉ số không bị nhiễu và độ nhiễu được thêm vào chỉ số không bị nhiễu để tạo thành báo cáo tóm tắt. Báo cáo này tương tự như hình ảnh sau đây.

báo cáo tóm tắt gỡ lỗi

Các chú giải này cũng chứa in_reportsin_domain, nghĩa là:

  • in_báo cáo - khoá bộ chứa có sẵn trong báo cáo tổng hợp.
  • in_domain – khoá bộ chứa có sẵn trong tệp AVRO output_domain.