AWS-এ অ্যাগ্রিগেশন সার্ভিসের সাথে কাজ করুন

AWS-এ অ্যাগ্রিগেশন সার্ভিসের সাথে কাজ করুন

এই কোডল্যাব সম্পর্কে

subjectএপ্রি ৩, ২০২৫-এ শেষবার আপডেট করা হয়েছে
account_circleMaybelline Boon-এর লেখা

1. পূর্বশর্ত

এই কোডল্যাবটি সম্পাদন করার জন্য, কয়েকটি পূর্বশর্ত প্রয়োজন। প্রতিটি প্রয়োজনীয়তা "স্থানীয় পরীক্ষা" বা "একত্রীকরণ পরিষেবা" এর জন্য প্রয়োজনীয় কিনা তা সেই অনুযায়ী চিহ্নিত করা হয়েছে৷

1.1। স্থানীয় টেস্টিং টুল ডাউনলোড করুন (স্থানীয় পরীক্ষা)

স্থানীয় পরীক্ষার জন্য স্থানীয় টেস্টিং টুল ডাউনলোড করতে হবে। টুলটি এনক্রিপ্ট না করা ডিবাগ রিপোর্ট থেকে সারাংশ রিপোর্ট তৈরি করবে।

Github-এ Lambda JAR Archives- এ ডাউনলোডের জন্য স্থানীয় টেস্টিং টুল উপলব্ধ। এটিকে LocalTestingTool_{version}.jar হিসাবে নামকরণ করা উচিত।

1.2। JAVA JRE ইনস্টল করা আছে তা নিশ্চিত করুন (স্থানীয় পরীক্ষা এবং সমষ্টি পরিষেবা)

" টার্মিনাল " খুলুন এবং আপনার মেশিনে জাভা বা openJDK ইনস্টল করা আছে কিনা তা পরীক্ষা করতে java --version ব্যবহার করুন।

`java --version` ব্যবহার করে জাভা জেআরই সংস্করণ পরীক্ষা করা হচ্ছে।

এটি ইনস্টল করা না থাকলে, আপনি Java সাইট বা openJDK সাইট থেকে ডাউনলোড এবং ইনস্টল করতে পারেন।

1.3। এগ্রিগেটেবল রিপোর্ট কনভার্টার ডাউনলোড করুন (স্থানীয় পরীক্ষা এবং একত্রীকরণ পরিষেবা)

আপনি গোপনীয়তা স্যান্ডবক্স ডেমো গিথুব সংগ্রহস্থল থেকে সমষ্টিগত প্রতিবেদন রূপান্তরকারীর একটি অনুলিপি ডাউনলোড করতে পারেন।

1.4। বিজ্ঞাপন গোপনীয়তা API সক্ষম করুন (স্থানীয় পরীক্ষা এবং সমষ্টি পরিষেবা)

আপনার ব্রাউজারে, chrome://settings/adPrivacy এ যান এবং সমস্ত বিজ্ঞাপন গোপনীয়তা API সক্ষম করুন৷

নিশ্চিত করুন যে তৃতীয় পক্ষের কুকিজ সক্রিয় আছে।

আপনার ব্রাউজারে, chrome://settings/cookies এ যান এবং " ছদ্মবেশী মোডে তৃতীয় পক্ষের কুকি ব্লক করুন " নির্বাচন করুন৷

তৃতীয় পক্ষের কুকি ক্রোম সেটিং।

1.5। ওয়েব এবং অ্যান্ড্রয়েড তালিকাভুক্তি (একত্রীকরণ পরিষেবা)

প্রোডাকশন এনভায়রনমেন্টে প্রাইভেসি স্যান্ডবক্স এপিআই ব্যবহার করতে, নিশ্চিত করুন যে আপনি ক্রোম এবং অ্যান্ড্রয়েড উভয়ের জন্য তালিকাভুক্তি এবং প্রত্যয়ন সম্পন্ন করেছেন।

স্থানীয় পরীক্ষার জন্য, একটি ক্রোম পতাকা এবং CLI সুইচ ব্যবহার করে তালিকাভুক্তি নিষ্ক্রিয় করা যেতে পারে৷

আমাদের ডেমোর জন্য Chrome পতাকা ব্যবহার করতে, chrome://flags/#privacy-sandbox-enrollment-overrides এ যান এবং আপনার সাইটের সাথে ওভাররাইড আপডেট করুন অথবা আপনি যদি আমাদের ডেমো সাইট ব্যবহার করেন, কোন আপডেটের প্রয়োজন নেই৷

গোপনীয়তা স্যান্ডবক্স তালিকাভুক্তি ক্রোম পতাকাকে ওভাররাইড করে৷

1.6। অ্যাগ্রিগেশন সার্ভিস অনবোর্ডিং (অ্যাগ্রিগেশন সার্ভিস)

অ্যাগ্রিগেশন পরিষেবার জন্য পরিষেবা ব্যবহার করতে সক্ষম হওয়ার জন্য সমন্বয়কারীদের অনবোর্ডিং প্রয়োজন৷ আপনার রিপোর্টিং সাইটের ঠিকানা, AWS অ্যাকাউন্ট আইডি এবং অন্যান্য তথ্য প্রদান করে অ্যাগ্রিগেশন সার্ভিস অনবোর্ডিং ফর্মটি পূরণ করুন।

1.7। ক্লাউড প্রদানকারী (একত্রীকরণ পরিষেবা)

অ্যাগ্রিগেশন সার্ভিসের জন্য একটি বিশ্বস্ত এক্সিকিউশন এনভায়রনমেন্ট ব্যবহার করা প্রয়োজন যা একটি ক্লাউড পরিবেশ ব্যবহার করে। অ্যাগ্রিগেশন পরিষেবা Amazon Web Services (AWS) এবং Google Cloud (GCP)-এ সমর্থিত। এই কোডল্যাব শুধুমাত্র AWS ইন্টিগ্রেশন কভার করবে।

AWS নাইট্রো এনক্লেভস নামে একটি বিশ্বস্ত এক্সিকিউশন এনভায়রনমেন্ট প্রদান করে। আপনার একটি AWS অ্যাকাউন্ট আছে তা নিশ্চিত করুন এবং AWS CLI ইনস্টলেশন অনুসরণ করুন এবং আপনার AWS CLI পরিবেশ সেটআপ করতে নির্দেশাবলী আপডেট করুন

যদি আপনার AWS CLI নতুন হয়, তাহলে আপনি CLI কনফিগারেশন নির্দেশাবলী ব্যবহার করে আপনার AWS CLI কনফিগার করতে পারেন।

1.7.1। AWS S3 বালতি তৈরি করুন

টেরাফর্ম স্টেট সঞ্চয় করার জন্য একটি 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-এ তৈরি createJob এবং getJob API এন্ডপয়েন্ট কল করতে ব্যবহার করা হবে।

1.7.3। AWS ব্যবহারকারী এবং গ্রুপ অনুমতি

AWS-এ অ্যাগ্রিগেশন পরিষেবা স্থাপন করতে, আপনাকে পরিষেবাটি স্থাপনের জন্য ব্যবহৃত ব্যবহারকারীকে নির্দিষ্ট অনুমতি প্রদান করতে হবে। এই কোডল্যাবের জন্য, নিশ্চিত করুন যে ব্যবহারকারীর প্রশাসক অ্যাক্সেস রয়েছে যাতে স্থাপনে সম্পূর্ণ অনুমতি নিশ্চিত করা যায়।

1.8। Terraform (একত্রীকরণ পরিষেবা)

এই কোডল্যাব একত্রিতকরণ পরিষেবা স্থাপন করতে Terraform ব্যবহার করে। আপনার স্থানীয় পরিবেশে Terraform বাইনারি ইনস্টল করা আছে তা নিশ্চিত করুন।

আপনার স্থানীয় পরিবেশে Terraform বাইনারি ডাউনলোড করুন।

একবার টেরাফর্ম বাইনারি ডাউনলোড হয়ে গেলে, ফাইলটি বের করুন এবং টেরাফর্ম বাইনারিটিকে /usr/local/bin এ সরান।

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

টেরাফর্ম ক্লাসপথে উপলব্ধ কিনা তা নিশ্চিত করতে পরীক্ষা করুন।

terraform -v

1.9। পোস্টম্যান (একত্রীকরণ পরিষেবা AWS এর জন্য)

এই কোডল্যাবের জন্য, অনুরোধ পরিচালনার জন্য পোস্টম্যান ব্যবহার করুন।

" ওয়ার্কস্পেস " শীর্ষ নেভিগেশন আইটেমে গিয়ে একটি ওয়ার্কস্পেস তৈরি করুন এবং " ওয়ার্কস্পেস তৈরি করুন " নির্বাচন করুন।

পোস্টম্যান কর্মক্ষেত্র

" ফাঁকা কর্মক্ষেত্র " নির্বাচন করুন, পরবর্তীতে ক্লিক করুন এবং এটির নাম দিন " গোপনীয়তা স্যান্ডবক্স "। " ব্যক্তিগত " নির্বাচন করুন এবং " তৈরি করুন " এ ক্লিক করুন।

পূর্ব-কনফিগার করা ওয়ার্কস্পেস JSON কনফিগারেশন এবং গ্লোবাল এনভায়রনমেন্ট ফাইল ডাউনলোড করুন।

" ইমপোর্ট " বোতাম ব্যবহার করে JSON ফাইলগুলিকে " আমার ওয়ার্কস্পেস "-এ আমদানি করুন।

পোস্টম্যান JSON ফাইল আমদানি করুন।

এটি createJob এবং getJob HTTP অনুরোধের সাথে আপনার জন্য গোপনীয়তা স্যান্ডবক্স সংগ্রহ তৈরি করবে।

পোস্টম্যান আমদানিকৃত সংগ্রহ।

" এনভায়রনমেন্ট কুইক লুক " এর মাধ্যমে AWS "অ্যাক্সেস কী" এবং "সিক্রেট কী" আপডেট করুন।

পোস্টম্যান পরিবেশ দ্রুত চেহারা.

" সম্পাদনা " ক্লিক করুন এবং " অ্যাক্সেস_কী " এবং " গোপন_কী " উভয়ের " বর্তমান মান" আপডেট করুন৷ মনে রাখবেন যে frontend_api_id এই নথির অধ্যায় 3.1.4- এ প্রদান করা হবে। এবং আমরা us-east-1 অঞ্চল ব্যবহার করার পরামর্শ দিই। যাইহোক, যদি আপনি একটি ভিন্ন অঞ্চলে স্থাপন করতে চান, তাহলে নিশ্চিত করুন যে আপনি আপনার অ্যাকাউন্টে প্রকাশিত AMI অনুলিপি করেছেন বা প্রদত্ত স্ক্রিপ্টগুলি ব্যবহার করে একটি স্ব-নির্মাণ সম্পাদন করেছেন৷

পোস্টম্যান গ্লোবাল ভেরিয়েবল।পোস্টম্যান বিশ্বব্যাপী ভেরিয়েবল সম্পাদনা করুন।

2. স্থানীয় টেস্টিং কোডল্যাব

এনক্রিপ্ট না করা ডিবাগ রিপোর্টগুলি ব্যবহার করে অ্যাগ্রিগেশন করতে এবং সারাংশ রিপোর্ট তৈরি করতে আপনি আপনার মেশিনে স্থানীয় টেস্টিং টুল ব্যবহার করতে পারেন।

কোডল্যাব ধাপ

ধাপ 2.1। ট্রিগার রিপোর্ট : ট্রিগার প্রাইভেট অ্যাগ্রিগেশন রিপোর্টিং রিপোর্ট সংগ্রহ করতে সক্ষম হবেন।

ধাপ 2.2। ডিবাগ এগ্রিগেটেবল রিপোর্ট তৈরি করুন : সংগৃহীত JSON রিপোর্টকে একটি AVRO ফরম্যাটেড রিপোর্টে রূপান্তর করুন।
এই পদক্ষেপটি একই রকম হবে যখন বিজ্ঞাপন প্রযুক্তিগুলি API রিপোর্টিং এন্ডপয়েন্ট থেকে রিপোর্ট সংগ্রহ করে এবং JSON রিপোর্টগুলিকে AVRO ফর্ম্যাটেড রিপোর্টে রূপান্তর করে৷

ধাপ 2.3। ডিবাগ রিপোর্ট থেকে বালতি কী পার্স করুন : বালতি কীগুলি বিজ্ঞাপন প্রযুক্তি দ্বারা ডিজাইন করা হয়েছে৷ এই কোডল্যাবে, যেহেতু বালতিগুলি পূর্বনির্ধারিত, প্রদত্ত হিসাবে বালতি কীগুলি পুনরুদ্ধার করুন।

ধাপ 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 ফাইলে JSON " Report Body " রাখুন। এই উদাহরণে, আপনি vim ব্যবহার করতে পারেন। কিন্তু আপনি চাইলে যেকোনো টেক্সট এডিটর ব্যবহার করতে পারেন।

vim report.json

প্রতিবেদনটি report.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-এর কলার দ্বারা ডিজাইন করা হয়েছে এবং ডেমোতে পূর্বনির্মাণ উদাহরণ বালতি কী রয়েছে৷ যেহেতু ডেমো প্রাইভেট অ্যাগ্রিগেশনের জন্য ডিবাগ মোড সক্রিয় করেছে, আপনি বালতি কী পুনরুদ্ধার করতে " রিপোর্ট বডি " থেকে ডিবাগ ক্লিয়ারটেক্সট পেলোড পার্স করতে পারেন.. যাইহোক, এই ক্ষেত্রে, সাইটের গোপনীয়তা স্যান্ডবক্স ডেমো বালতি কীগুলি তৈরি করে৷ যেহেতু এই সাইটের জন্য ব্যক্তিগত সমষ্টি ডিবাগ মোডে আছে, আপনি বালতি কী পেতে " রিপোর্ট বডি " থেকে debug_cleartext_payload ব্যবহার করতে পারেন৷

রিপোর্টের মূল অংশ থেকে debug_cleartext_payload কপি করুন।

রিপোর্টের মূল অংশ থেকে ক্লিয়ারটেক্সট পেলোড ডিবাগ করুন।

প্রাইভেট অ্যাগ্রিগেশন টুলের জন্য ডিবাগ পেলোড ডিকোডার খুলুন এবং " ইনপুট " বক্সে আপনার debug_cleartext_payload পেস্ট করুন এবং " ডিকোড " এ ক্লিক করুন।

পেলোড ডিকোডার।

পৃষ্ঠাটি বালতি কী এর দশমিক মান প্রদান করে। নিম্নলিখিত একটি নমুনা বালতি কী.

পেলোড ডিকোডার ফলাফল.

2.4। আউটপুট ডোমেইন AVRO তৈরি করুন

এখন আমাদের কাছে বালতি কী আছে, এগিয়ে যান এবং বালতি কীটির দশমিক মান অনুলিপি করুন। বালতি কী ব্যবহার করে output_domain.avro তৈরি করতে এগিয়ে যান। আপনি প্রতিস্থাপন নিশ্চিত করুন আপনি পুনরুদ্ধার করা বালতি চাবি দিয়ে.

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

স্ক্রিপ্টটি আপনার বর্তমান ফোল্ডারে output_domain.avro ফাইল তৈরি করে।

2.5। স্থানীয় টেস্টিং টুল ব্যবহার করে সারাংশ রিপোর্ট তৈরি করুন

আমরা LocalTestingTool_{version}.jar ব্যবহার করব যা সারাংশ রিপোর্ট তৈরি করতে সেকশন 1.1-এ ডাউনলোড করা হয়েছে। নিম্নলিখিত কমান্ড ব্যবহার করুন. আপনার 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 ফাইল.

2.6। সারসংক্ষেপ রিপোর্ট পর্যালোচনা

যে সারাংশ রিপোর্ট তৈরি করা হয়েছে তা AVRO ফরম্যাটে। এটি পড়তে সক্ষম হওয়ার জন্য, আপনাকে এটিকে AVRO থেকে JSON ফর্ম্যাটে রূপান্তর করতে হবে। আদর্শভাবে, AVRO রিপোর্টগুলিকে JSON-এ রূপান্তর করতে বিজ্ঞাপন প্রযুক্তির কোড করা উচিত।

আমাদের কোডল্যাবের জন্য, আমরা প্রদত্ত 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। অ্যাগ্রিগেশন সার্ভিস রিপোজিটরি ক্লোন করুন

আপনার স্থানীয় পরিবেশে, Aggregation Service Github সংগ্রহস্থল ক্লোন করুন।

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

3.2। পূর্বনির্মাণ নির্ভরতা ডাউনলোড করুন

একবার আপনি অ্যাগ্রিগেশন সার্ভিস রিপোজিটরি ক্লোন করে ফেললে, রিপোজিটরির টেরাফর্ম ফোল্ডারে এবং সংশ্লিষ্ট ক্লাউড ফোল্ডারে যান। যদি আপনার ক্লাউড_প্রোভাইডার AWS হয়, তাহলে আপনি এগিয়ে যেতে পারেন /terraform/aws

cd <repository_root>/terraform/aws

ইন /terraform/aws , download_prebuilt_dependencies.sh চালান।

bash download_prebuilt_dependencies.sh

3.3। উন্নয়নের পরিবেশ তৈরি করুন

একটি dev পরিবেশ তৈরি করুন /terraform/aws/environmentsdev নামে একটি ফোল্ডার তৈরি করুন।

mkdir dev

demo ফোল্ডারের বিষয়বস্তু dev ফোল্ডারে কপি করুন।

cp -R demo/* dev

আপনার dev ফোল্ডারে যান।

cd dev

আপনার main.tf ফাইলটি আপডেট করুন এবং ফাইলটি সম্পাদনা করতে input জন্য i চাপুন।

vim main.tf

লাল বক্সে কোডটি আনকমেন্ট করুন # মুছে ফেলে এবং বালতি এবং কী নাম আপডেট করে।

AWS main.tf এর জন্য :

AWS প্রধান 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 পরামিতিগুলির সাথে লাল বক্সের ক্ষেত্রগুলিকে আপডেট করুন৷

dev auto tfvars ফাইল সম্পাদনা করুন।

আপডেট হয়ে গেলে, esc -> :wq! . এটি dev.auto.tfvars ফাইলটিকে সংরক্ষণ করে এবং এটি নিম্নলিখিত চিত্রের মতো দেখতে হবে৷

dev auto tfvars ফাইল আপডেট করা হয়েছে।

3.4। একত্রিতকরণ পরিষেবা স্থাপন করুন

একই ফোল্ডারে অ্যাগ্রিগেশন সার্ভিস স্থাপন করতে /terraform/aws/environments/dev , Terraform আরম্ভ করুন।

terraform init

এটি নিম্নলিখিত চিত্রের অনুরূপ কিছু ফিরিয়ে দেওয়া উচিত:

Terraform init.

একবার টেরাফর্ম আরম্ভ হয়ে গেলে, টেরাফর্ম এক্সিকিউশন প্ল্যান তৈরি করুন। যেখানে এটি যোগ করা সম্পদের সংখ্যা এবং নিম্নলিখিত চিত্রের অনুরূপ অন্যান্য অতিরিক্ত তথ্য প্রদান করে।

terraform plan

আপনি নিম্নলিখিত " প্ল্যান " সারাংশে দেখতে পারেন। যদি এটি একটি নতুন স্থাপনা হয়, তাহলে আপনার সম্পদের সংখ্যা দেখতে হবে যা পরিবর্তন করতে 0 এবং ধ্বংস করার জন্য 0 যোগ করা হবে।

টেরাফর্ম পরিকল্পনা।

একবার আপনি এটি সম্পূর্ণ করলে, তারপরে আপনি Terraform প্রয়োগ করতে এগিয়ে যেতে পারেন।

terraform apply

একবার Terraform দ্বারা ক্রিয়া সম্পাদন করার বিষয়ে নিশ্চিত করার জন্য অনুরোধ করা হলে, মানটিতে একটি yes ইনপুট করুন।

Terraform প্রম্পট প্রয়োগ করুন।

একবার terraform apply শেষ হলে, createJob এবং getJob জন্য নিম্নলিখিত শেষ পয়েন্টগুলি ফেরত দেওয়া হয়। frontend_api_id যেটি আপনাকে পোস্টম্যানে 1.9 বিভাগে আপডেট করতে হবে তাও ফেরত দেওয়া হয়েছে।

Terraform প্রয়োগ সম্পূর্ণ।

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

এই কোডল্যাবের জন্য, আপনি ম্যানুয়ালি রিপোর্ট সংগ্রহ করবেন। উৎপাদনে, বিজ্ঞাপন প্রযুক্তিগুলি প্রোগ্রামাটিকভাবে প্রতিবেদনগুলি সংগ্রহ এবং রূপান্তর করবে বলে আশা করা হচ্ছে।

chrome://private-aggregation-internals , [reporting-origin]/.well-known/private-aggregation/report-shared-storage এন্ডপয়েন্টে প্রাপ্ত " রিপোর্ট বডি " কপি করুন।

নিশ্চিত করুন যে " রিপোর্ট বডি "-এ, aggregation_coordinator_originhttps://publickeyservice.msmt.aws.privacysandboxservices.com রয়েছে যার অর্থ রিপোর্টটি একটি AWS সমষ্টিগত প্রতিবেদন।

ব্যক্তিগত সমষ্টি রিপোর্ট.

একটি JSON ফাইলে JSON " Report Body " রাখুন। এই উদাহরণে, আপনি vim ব্যবহার করতে পারেন। কিন্তু আপনি চাইলে যেকোনো টেক্সট এডিটর ব্যবহার করতে পারেন।

vim report.json

প্রতিবেদনটি report.json এ পেস্ট করুন এবং আপনার ফাইলটি সংরক্ষণ করুন।

JSON ফাইল রিপোর্ট করুন।

4.3। প্রতিবেদনগুলিকে AVRO-তে রূপান্তর করুন

.well-known endpoints থেকে প্রাপ্ত রিপোর্টগুলি 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 পেস্ট করুন এবং " ডিকোড " এ ক্লিক করুন।

পেলোড ডিকোডার।

পৃষ্ঠাটি বালতি কী এর দশমিক মান প্রদান করে। নিম্নলিখিত একটি নমুনা বালতি কী.

পেলোড ডিকোডার ফলাফল.

এখন যেহেতু আমাদের কাছে বালতি কী আছে, এগিয়ে যান এবং 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 কপি করুন এবং এটিকে পোস্টম্যান গ্লোবাল ভেরিয়েবল frontend_api_id রাখুন যা আপনি পূর্বশর্ত বিভাগ 1.9-এ সেটআপ করেছেন।

ধাপ 5. অ্যাগ্রিগেশন সার্ভিস ব্যবহার : সারাংশ রিপোর্ট তৈরি করতে এবং সারাংশ রিপোর্ট পর্যালোচনা করতে অ্যাগ্রিগেশন সার্ভিস API ব্যবহার করুন।
ধাপ 5.1। ব্যাচে createJob এন্ডপয়েন্ট ব্যবহার করে
ধাপ 5.2। ব্যাচ স্ট্যাটাস পুনরুদ্ধার করতে getJob এন্ডপয়েন্ট ব্যবহার করে
ধাপ 5.3। সারাংশ রিপোর্ট পর্যালোচনা

5.1। ব্যাচে createJob এন্ডপয়েন্ট ব্যবহার করে

পোস্টম্যানে, " প্রাইভেসি স্যান্ডবক্স " সংগ্রহ খুলুন এবং " জব তৈরি করুন " নির্বাচন করুন।

" বডি " নির্বাচন করুন এবং আপনার অনুরোধ পেলোড স্থাপন করতে " কাঁচা " নির্বাচন করুন৷

পোস্টম্যান চাকরির অনুরোধের বডি তৈরি করুন

createJob পেলোড স্কিমা গিথুবে পাওয়া যায় এবং নিচের মত দেখায়। উপযুক্ত ক্ষেত্রগুলির সাথে <> প্রতিস্থাপন করুন।

{
   
"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 প্রতিক্রিয়া কোড পাওয়া যাবে

পোস্টম্যান চাকরির অনুরোধের অবস্থা তৈরি করুন

5.2। ব্যাচ স্ট্যাটাস পুনরুদ্ধার করতে getJob এন্ডপয়েন্ট ব্যবহার করে

কাজের অনুরোধের স্থিতি পরীক্ষা করতে, আপনি getJob এন্ডপয়েন্ট ব্যবহার করতে পারেন। " গোপনীয়তা স্যান্ডবক্স " সংগ্রহে " getJob " নির্বাচন করুন৷

" Params "-এ, job_request_id মানটিকে job_request_id এ আপডেট করুন যা createJob অনুরোধে পাঠানো হয়েছিল।

পোস্টম্যান পেতে চাকরী অনুরোধ

getJob এর ফলাফল 200-এর HTTP স্ট্যাটাস সহ আপনার কাজের অনুরোধের স্ট্যাটাস ফেরত দেবে। অনুরোধ " বডি "-এ job_status , return_message এবং error_messages (যদি চাকরিটি ভুল হয়ে থাকে) এর মতো প্রয়োজনীয় তথ্য থাকে।

ostman getJob অনুরোধের অবস্থা

যেহেতু জেনারেট করা ডেমো রিপোর্টের রিপোর্টিং সাইটটি আপনার AWS আইডিতে আপনার অনবোর্ড করা সাইট থেকে আলাদা, আপনি PRIVACY_BUDGET_AUTHORIZATION_ERROR return_code সহ একটি প্রতিক্রিয়া পেতে পারেন৷ এটি স্বাভাবিক যেহেতু রিপোর্টের রিপোর্টিং অরিজিন সাইটটি 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_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_run true হিসেবে অন্তর্ভুক্ত করা উচিত, তাহলে আপনি output_data_blob_prefix এ অবস্থিত ডিবাগ ফোল্ডারে আপনার সারাংশ রিপোর্ট পেতে পারেন। প্রতিবেদনটি AVRO ফরম্যাটে এবং পূর্ববর্তী কমান্ডটি ব্যবহার করে JSON-এ রূপান্তর করা যেতে পারে।

রিপোর্টে বালতি কী, অনোইজড মেট্রিক এবং গোলমাল রয়েছে যা সারাংশ রিপোর্ট তৈরি করতে আননোইজড মেট্রিকে যোগ করা হয়। প্রতিবেদনটি নিম্নলিখিত চিত্রের অনুরূপ।

ডিবাগ সারাংশ রিপোর্ট।

টীকাগুলিতে in_reports এবং in_domain ও থাকে যার অর্থ:

  • in_reports - বালতি কী সমষ্টিগত প্রতিবেদনের ভিতরে উপলব্ধ।
  • in_domain - বালতি কীটি output_domain AVRO ফাইলের ভিতরে উপলব্ধ।
,
AWS-এ অ্যাগ্রিগেশন সার্ভিসের সাথে কাজ করুন

এই কোডল্যাব সম্পর্কে

subjectএপ্রি ৩, ২০২৫-এ শেষবার আপডেট করা হয়েছে
account_circleMaybelline Boon-এর লেখা

1. পূর্বশর্ত

এই কোডল্যাবটি সম্পাদন করার জন্য, কয়েকটি পূর্বশর্ত প্রয়োজন। প্রতিটি প্রয়োজনীয়তা "স্থানীয় পরীক্ষা" বা "একত্রীকরণ পরিষেবা" এর জন্য প্রয়োজনীয় কিনা তা সেই অনুযায়ী চিহ্নিত করা হয়েছে৷

1.1। স্থানীয় টেস্টিং টুল ডাউনলোড করুন (স্থানীয় পরীক্ষা)

স্থানীয় পরীক্ষার জন্য স্থানীয় টেস্টিং টুল ডাউনলোড করতে হবে। টুলটি এনক্রিপ্ট না করা ডিবাগ রিপোর্ট থেকে সারাংশ রিপোর্ট তৈরি করবে।

Github-এ Lambda JAR Archives- এ ডাউনলোডের জন্য স্থানীয় টেস্টিং টুল উপলব্ধ। এটিকে LocalTestingTool_{version}.jar হিসাবে নামকরণ করা উচিত।

1.2। JAVA JRE ইনস্টল করা আছে তা নিশ্চিত করুন (স্থানীয় পরীক্ষা এবং সমষ্টি পরিষেবা)

" টার্মিনাল " খুলুন এবং আপনার মেশিনে জাভা বা openJDK ইনস্টল করা আছে কিনা তা পরীক্ষা করতে java --version ব্যবহার করুন।

`java --version` ব্যবহার করে জাভা জেআরই সংস্করণ পরীক্ষা করা হচ্ছে।

এটি ইনস্টল করা না থাকলে, আপনি Java সাইট বা openJDK সাইট থেকে ডাউনলোড এবং ইনস্টল করতে পারেন।

1.3। এগ্রিগেটেবল রিপোর্ট কনভার্টার ডাউনলোড করুন (স্থানীয় পরীক্ষা এবং একত্রীকরণ পরিষেবা)

আপনি গোপনীয়তা স্যান্ডবক্স ডেমো গিথুব সংগ্রহস্থল থেকে সমষ্টিগত প্রতিবেদন রূপান্তরকারীর একটি অনুলিপি ডাউনলোড করতে পারেন।

1.4। বিজ্ঞাপন গোপনীয়তা API সক্ষম করুন (স্থানীয় পরীক্ষা এবং সমষ্টি পরিষেবা)

আপনার ব্রাউজারে, chrome://settings/adPrivacy এ যান এবং সমস্ত বিজ্ঞাপন গোপনীয়তা API সক্ষম করুন৷

নিশ্চিত করুন যে তৃতীয় পক্ষের কুকিজ সক্রিয় আছে।

আপনার ব্রাউজারে, chrome://settings/cookies এ যান এবং " ছদ্মবেশী মোডে তৃতীয় পক্ষের কুকি ব্লক করুন " নির্বাচন করুন৷

তৃতীয় পক্ষের কুকি ক্রোম সেটিং।

1.5। ওয়েব এবং অ্যান্ড্রয়েড তালিকাভুক্তি (একত্রীকরণ পরিষেবা)

প্রোডাকশন এনভায়রনমেন্টে প্রাইভেসি স্যান্ডবক্স এপিআই ব্যবহার করতে, নিশ্চিত করুন যে আপনি ক্রোম এবং অ্যান্ড্রয়েড উভয়ের জন্য তালিকাভুক্তি এবং প্রত্যয়ন সম্পন্ন করেছেন।

স্থানীয় পরীক্ষার জন্য, একটি ক্রোম পতাকা এবং CLI সুইচ ব্যবহার করে তালিকাভুক্তি নিষ্ক্রিয় করা যেতে পারে৷

আমাদের ডেমোর জন্য Chrome পতাকা ব্যবহার করতে, chrome://flags/#privacy-sandbox-enrollment-overrides এ যান এবং আপনার সাইটের সাথে ওভাররাইড আপডেট করুন অথবা আপনি যদি আমাদের ডেমো সাইট ব্যবহার করেন, কোন আপডেটের প্রয়োজন নেই৷

গোপনীয়তা স্যান্ডবক্স তালিকাভুক্তি ক্রোম পতাকাকে ওভাররাইড করে৷

1.6। অ্যাগ্রিগেশন সার্ভিস অনবোর্ডিং (অ্যাগ্রিগেশন সার্ভিস)

অ্যাগ্রিগেশন পরিষেবার জন্য পরিষেবা ব্যবহার করতে সক্ষম হওয়ার জন্য সমন্বয়কারীদের অনবোর্ডিং প্রয়োজন৷ আপনার রিপোর্টিং সাইটের ঠিকানা, AWS অ্যাকাউন্ট আইডি এবং অন্যান্য তথ্য প্রদান করে অ্যাগ্রিগেশন সার্ভিস অনবোর্ডিং ফর্মটি পূরণ করুন।

1.7। ক্লাউড প্রদানকারী (একত্রীকরণ পরিষেবা)

অ্যাগ্রিগেশন সার্ভিসের জন্য একটি বিশ্বস্ত এক্সিকিউশন এনভায়রনমেন্ট ব্যবহার করা প্রয়োজন যা একটি ক্লাউড পরিবেশ ব্যবহার করে। অ্যাগ্রিগেশন পরিষেবা Amazon Web Services (AWS) এবং Google Cloud (GCP)-এ সমর্থিত। এই কোডল্যাব শুধুমাত্র AWS ইন্টিগ্রেশন কভার করবে।

AWS নাইট্রো এনক্লেভস নামে একটি বিশ্বস্ত এক্সিকিউশন এনভায়রনমেন্ট প্রদান করে। আপনার একটি AWS অ্যাকাউন্ট আছে তা নিশ্চিত করুন এবং AWS CLI ইনস্টলেশন অনুসরণ করুন এবং আপনার AWS CLI পরিবেশ সেটআপ করতে নির্দেশাবলী আপডেট করুন

যদি আপনার AWS CLI নতুন হয়, তাহলে আপনি CLI কনফিগারেশন নির্দেশাবলী ব্যবহার করে আপনার AWS CLI কনফিগার করতে পারেন।

1.7.1। AWS S3 বালতি তৈরি করুন

টেরাফর্ম স্টেট সঞ্চয় করার জন্য একটি 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-এ তৈরি createJob এবং getJob API এন্ডপয়েন্ট কল করতে ব্যবহার করা হবে।

1.7.3। AWS ব্যবহারকারী এবং গ্রুপ অনুমতি

AWS-এ অ্যাগ্রিগেশন পরিষেবা স্থাপন করতে, আপনাকে পরিষেবাটি স্থাপনের জন্য ব্যবহৃত ব্যবহারকারীকে নির্দিষ্ট অনুমতি প্রদান করতে হবে। এই কোডল্যাবের জন্য, নিশ্চিত করুন যে ব্যবহারকারীর প্রশাসক অ্যাক্সেস রয়েছে যাতে স্থাপনে সম্পূর্ণ অনুমতি নিশ্চিত করা যায়।

1.8। Terraform (একত্রীকরণ পরিষেবা)

এই কোডল্যাব একত্রিতকরণ পরিষেবা স্থাপন করতে Terraform ব্যবহার করে। আপনার স্থানীয় পরিবেশে Terraform বাইনারি ইনস্টল করা আছে তা নিশ্চিত করুন।

আপনার স্থানীয় পরিবেশে Terraform বাইনারি ডাউনলোড করুন।

একবার টেরাফর্ম বাইনারি ডাউনলোড হয়ে গেলে, ফাইলটি বের করুন এবং টেরাফর্ম বাইনারিটিকে /usr/local/bin এ সরান।

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

টেরাফর্ম ক্লাসপথে উপলব্ধ কিনা তা নিশ্চিত করতে পরীক্ষা করুন।

terraform -v

1.9। পোস্টম্যান (একত্রীকরণ পরিষেবা AWS এর জন্য)

এই কোডল্যাবের জন্য, অনুরোধ পরিচালনার জন্য পোস্টম্যান ব্যবহার করুন।

" ওয়ার্কস্পেস " শীর্ষ নেভিগেশন আইটেমে গিয়ে একটি ওয়ার্কস্পেস তৈরি করুন এবং " ওয়ার্কস্পেস তৈরি করুন " নির্বাচন করুন।

পোস্টম্যান কর্মক্ষেত্র

" ফাঁকা কর্মক্ষেত্র " নির্বাচন করুন, পরবর্তীতে ক্লিক করুন এবং এটির নাম দিন " গোপনীয়তা স্যান্ডবক্স "। " ব্যক্তিগত " নির্বাচন করুন এবং " তৈরি করুন " এ ক্লিক করুন।

পূর্ব-কনফিগার করা ওয়ার্কস্পেস JSON কনফিগারেশন এবং গ্লোবাল এনভায়রনমেন্ট ফাইল ডাউনলোড করুন।

" ইমপোর্ট " বোতাম ব্যবহার করে JSON ফাইলগুলিকে " আমার ওয়ার্কস্পেস "-এ আমদানি করুন।

পোস্টম্যান JSON ফাইল আমদানি করুন।

এটি createJob এবং getJob HTTP অনুরোধের সাথে আপনার জন্য গোপনীয়তা স্যান্ডবক্স সংগ্রহ তৈরি করবে।

পোস্টম্যান আমদানিকৃত সংগ্রহ।

" এনভায়রনমেন্ট কুইক লুক " এর মাধ্যমে AWS "অ্যাক্সেস কী" এবং "সিক্রেট কী" আপডেট করুন।

পোস্টম্যান পরিবেশ দ্রুত চেহারা.

" সম্পাদনা " ক্লিক করুন এবং " অ্যাক্সেস_কী " এবং " গোপন_কী " উভয়ের " বর্তমান মান" আপডেট করুন৷ মনে রাখবেন যে frontend_api_id এই নথির অধ্যায় 3.1.4- এ প্রদান করা হবে। এবং আমরা us-east-1 অঞ্চল ব্যবহার করার পরামর্শ দিই। যাইহোক, যদি আপনি একটি ভিন্ন অঞ্চলে স্থাপন করতে চান, তাহলে নিশ্চিত করুন যে আপনি আপনার অ্যাকাউন্টে প্রকাশিত AMI অনুলিপি করেছেন বা প্রদত্ত স্ক্রিপ্টগুলি ব্যবহার করে একটি স্ব-নির্মাণ সম্পাদন করেছেন৷

পোস্টম্যান গ্লোবাল ভেরিয়েবল।পোস্টম্যান বিশ্বব্যাপী ভেরিয়েবল সম্পাদনা করুন।

2. স্থানীয় টেস্টিং কোডল্যাব

এনক্রিপ্ট না করা ডিবাগ রিপোর্টগুলি ব্যবহার করে অ্যাগ্রিগেশন করতে এবং সারাংশ রিপোর্ট তৈরি করতে আপনি আপনার মেশিনে স্থানীয় টেস্টিং টুল ব্যবহার করতে পারেন।

কোডল্যাব ধাপ

ধাপ 2.1। ট্রিগার রিপোর্ট : ট্রিগার প্রাইভেট অ্যাগ্রিগেশন রিপোর্টিং রিপোর্ট সংগ্রহ করতে সক্ষম হবেন।

ধাপ 2.2। ডিবাগ এগ্রিগেটেবল রিপোর্ট তৈরি করুন : সংগৃহীত JSON রিপোর্টকে একটি AVRO ফরম্যাটেড রিপোর্টে রূপান্তর করুন।
এই পদক্ষেপটি একই রকম হবে যখন বিজ্ঞাপন প্রযুক্তিগুলি API রিপোর্টিং এন্ডপয়েন্ট থেকে রিপোর্ট সংগ্রহ করে এবং JSON রিপোর্টগুলিকে AVRO ফর্ম্যাটেড রিপোর্টে রূপান্তর করে৷

ধাপ 2.3। ডিবাগ রিপোর্ট থেকে বালতি কী পার্স করুন : বালতি কীগুলি বিজ্ঞাপন প্রযুক্তি দ্বারা ডিজাইন করা হয়েছে৷ এই কোডল্যাবে, যেহেতু বালতিগুলি পূর্বনির্ধারিত, প্রদত্ত হিসাবে বালতি কীগুলি পুনরুদ্ধার করুন।

ধাপ 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 ফাইলে JSON " Report Body " রাখুন। এই উদাহরণে, আপনি vim ব্যবহার করতে পারেন। কিন্তু আপনি চাইলে যেকোনো টেক্সট এডিটর ব্যবহার করতে পারেন।

vim report.json

প্রতিবেদনটি report.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-এর কলার দ্বারা ডিজাইন করা হয়েছে এবং ডেমোতে পূর্বনির্মাণ উদাহরণ বালতি কী রয়েছে৷ যেহেতু ডেমো প্রাইভেট অ্যাগ্রিগেশনের জন্য ডিবাগ মোড সক্রিয় করেছে, আপনি বালতি কী পুনরুদ্ধার করতে " রিপোর্ট বডি " থেকে ডিবাগ ক্লিয়ারটেক্সট পেলোড পার্স করতে পারেন.. যাইহোক, এই ক্ষেত্রে, সাইটের গোপনীয়তা স্যান্ডবক্স ডেমো বালতি কীগুলি তৈরি করে৷ যেহেতু এই সাইটের জন্য ব্যক্তিগত সমষ্টি ডিবাগ মোডে আছে, আপনি বালতি কী পেতে " রিপোর্ট বডি " থেকে debug_cleartext_payload ব্যবহার করতে পারেন৷

রিপোর্টের মূল অংশ থেকে debug_cleartext_payload কপি করুন।

রিপোর্টের মূল অংশ থেকে ক্লিয়ারটেক্সট পেলোড ডিবাগ করুন।

প্রাইভেট অ্যাগ্রিগেশন টুলের জন্য ডিবাগ পেলোড ডিকোডার খুলুন এবং " ইনপুট " বক্সে আপনার debug_cleartext_payload পেস্ট করুন এবং " ডিকোড " এ ক্লিক করুন।

পেলোড ডিকোডার।

পৃষ্ঠাটি বালতি কী এর দশমিক মান প্রদান করে। নিম্নলিখিত একটি নমুনা বালতি কী.

পেলোড ডিকোডার ফলাফল.

2.4। আউটপুট ডোমেইন AVRO তৈরি করুন

এখন আমাদের কাছে বালতি কী আছে, এগিয়ে যান এবং বালতি কীটির দশমিক মান অনুলিপি করুন। বালতি কী ব্যবহার করে output_domain.avro তৈরি করতে এগিয়ে যান। আপনি প্রতিস্থাপন নিশ্চিত করুন আপনি পুনরুদ্ধার করা বালতি চাবি দিয়ে.

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

স্ক্রিপ্টটি আপনার বর্তমান ফোল্ডারে output_domain.avro ফাইল তৈরি করে।

2.5। স্থানীয় টেস্টিং টুল ব্যবহার করে সারাংশ রিপোর্ট তৈরি করুন

আমরা LocalTestingTool_{version}.jar ব্যবহার করব যা সারাংশ রিপোর্ট তৈরি করতে সেকশন 1.1-এ ডাউনলোড করা হয়েছে। নিম্নলিখিত কমান্ড ব্যবহার করুন. আপনার 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 ফাইল.

2.6। সারসংক্ষেপ রিপোর্ট পর্যালোচনা

যে সারাংশ রিপোর্ট তৈরি করা হয়েছে তা AVRO ফরম্যাটে। এটি পড়তে সক্ষম হওয়ার জন্য, আপনাকে এটিকে AVRO থেকে JSON ফর্ম্যাটে রূপান্তর করতে হবে। আদর্শভাবে, AVRO রিপোর্টগুলিকে JSON-এ রূপান্তর করতে বিজ্ঞাপন প্রযুক্তির কোড করা উচিত।

আমাদের কোডল্যাবের জন্য, আমরা অ্যাভ্রো রিপোর্টকে JSON এ রূপান্তর করতে সরবরাহিত aggregatable_report_converter.jar সরঞ্জামটি ব্যবহার করব।

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

এটি নিম্নলিখিত চিত্রের অনুরূপ একটি প্রতিবেদন দেয়। একই ডিরেক্টরিতে তৈরি একটি প্রতিবেদন output.json সহ।

সংক্ষিপ্ত এভ্রো ফাইল জেএসনে রূপান্তরিত।

সংক্ষিপ্ত প্রতিবেদনটি পর্যালোচনা করতে আপনার পছন্দের সম্পাদকটিতে জেএসএন ফাইলটি খুলুন।

3. সমষ্টি পরিষেবা স্থাপনা

সমষ্টি পরিষেবা মোতায়েন করতে, নিম্নলিখিত পদক্ষেপগুলি ব্যবহার করুন:

পদক্ষেপ 3। সমষ্টি পরিষেবা মোতায়েন : এডাব্লুএসে সমষ্টি পরিষেবা স্থাপন করুন
ধাপ 3.1। সমষ্টি পরিষেবা সংগ্রহস্থলটি ক্লোন করুন
পদক্ষেপ 3.2। প্রিপবিল্ট নির্ভরতা ডাউনলোড করুন
পদক্ষেপ 3.3। একটি উন্নয়ন পরিবেশ তৈরি করুন
পদক্ষেপ 3.4। সমষ্টি পরিষেবা স্থাপন করুন

3.1। সমষ্টি পরিষেবা সংগ্রহস্থলটি ক্লোন করুন

আপনার স্থানীয় পরিবেশে, সমষ্টি পরিষেবা গিটহাব সংগ্রহস্থলটি ক্লোন করুন।

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

3.2। প্রিপবিল্ট নির্ভরতা ডাউনলোড করুন

একবার আপনি সমষ্টি পরিষেবা সংগ্রহস্থলটি ক্লোন করে ফেললে, সংগ্রহস্থলের টেরাফর্ম ফোল্ডারে এবং সংশ্লিষ্ট ক্লাউড ফোল্ডারে যান। যদি আপনার ক্লাউড_প্রোভাইডার এডাব্লুএস হয় তবে আপনি এগিয়ে যেতে পারেন /terraform/aws

cd <repository_root>/terraform/aws

ইন /terraform/aws , download_prebuilt_dependencies.sh

bash download_prebuilt_dependencies.sh

3.3। একটি উন্নয়ন পরিবেশ তৈরি করুন

একটি দেব পরিবেশ তৈরি করুন /terraform/aws/environmentsdev নামে একটি ফোল্ডার তৈরি করুন।

mkdir dev

dev ফোল্ডারে demo ফোল্ডার সামগ্রীগুলি অনুলিপি করুন।

cp -R demo/* dev

আপনার dev ফোল্ডারে সরান।

cd dev

আপনার main.tf ফাইল আপডেট করুন এবং ফাইলটি সম্পাদনা করতে input জন্য i টিপুন।

vim main.tf

# অপসারণ করে এবং বালতি এবং কী নামগুলি আপডেট করে রেড বক্সে কোডটি অনাবৃত করুন।

AWS MAIN.TF এর জন্য :

এডাব্লুএস প্রধান টিএফ ফাইল।

আপত্তিহীন কোডটি নিম্নলিখিতগুলির মতো দেখা উচিত।

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

আপডেটগুলি সম্পূর্ণ হয়ে গেলে, আপডেটগুলি সংরক্ষণ করুন এবং esc -> :wq! . এটি main.tf -তে আপডেটগুলি সংরক্ষণ করে।

এরপরে, dev.auto.tfvarsexample.auto.tfvars নামকরণ করুন।

mv example.auto.tfvars dev.auto.tfvars

dev.auto.tfvars আপডেট করুন এবং ফাইলটি সম্পাদনা করতে input জন্য i টিপুন।

vim dev.auto.tfvars

লাল বাক্সে ক্ষেত্রগুলি আপডেট করুন নিম্নলিখিত চিত্রের সাথে সঠিক এডাব্লুএস এআরএন প্যারামিটারগুলির সাথে যা সমষ্টি পরিষেবা অন বোর্ডিং, পরিবেশ এবং বিজ্ঞপ্তি ইমেলের সময় সরবরাহ করা হয়।

ডেভ অটো টিএফভিআরএস ফাইল সম্পাদনা করুন।

আপডেটগুলি হয়ে গেলে, esc -> :wq! . এটি dev.auto.tfvars ফাইল সংরক্ষণ করে এবং এটি নিম্নলিখিত চিত্রের মতো কিছু দেখতে হবে।

আপডেট করা ডিভ অটো টিএফভিআরএস ফাইল।

3.4। সমষ্টি পরিষেবা স্থাপন করুন

একই ফোল্ডারে সমষ্টি পরিষেবা স্থাপন করতে /terraform/aws/environments/dev , টেরফর্ম আরম্ভ করুন।

terraform init

এটি নিম্নলিখিত চিত্রের অনুরূপ কিছু ফিরিয়ে দেওয়া উচিত:

টেরফর্ম ইনিশ।

টেরফর্মটি শুরু হয়ে গেলে, টেরফর্ম এক্সিকিউশন প্ল্যানটি তৈরি করুন। যেখানে এটি যুক্ত করার মতো সংস্থানগুলির সংখ্যা এবং নিম্নলিখিত চিত্রের অনুরূপ অন্যান্য অতিরিক্ত তথ্য প্রদান করে।

terraform plan

আপনি নিম্নলিখিত " পরিকল্পনা " সংক্ষিপ্তসার দেখতে পারেন। যদি এটি একটি নতুন মোতায়েন হয় তবে আপনার 0 টি পরিবর্তনের জন্য এবং 0 টি ধ্বংসের জন্য যুক্ত করা হবে এমন সংস্থানগুলির সংখ্যা দেখতে হবে।

টেরফর্ম পরিকল্পনা।

আপনি এটি শেষ করার পরে, আপনি তারপরে টেরফর্ম প্রয়োগ করতে এগিয়ে যেতে পারেন।

terraform apply

একবার টেরফর্ম দ্বারা ক্রিয়াগুলি সম্পাদন করার বিষয়টি নিশ্চিত করার জন্য অনুরোধ জানানো হয়েছে, একটি yes মানকে ইনপুট করুন।

টেরফর্ম প্রম্পট প্রয়োগ করুন।

একবার terraform apply , createJob এবং getJob জন্য নিম্নলিখিত প্রান্তগুলি ফিরে আসে। আপনাকে পোস্টম্যানে আপডেট করতে হবে যে frontend_api_id বিভাগ 1.9 এ আপডেট করতে হবে।

টেরফর্ম সম্পূর্ণ প্রয়োগ।

4. সমষ্টি পরিষেবা ইনপুট সৃষ্টি

সমষ্টি পরিষেবাতে ব্যাচিংয়ের জন্য এভিআরও রিপোর্ট তৈরি করতে এগিয়ে যান।

পদক্ষেপ 4। সমষ্টি পরিষেবা ইনপুট সৃষ্টি : সমষ্টি পরিষেবা প্রতিবেদনগুলি তৈরি করুন যা সংহতকরণ পরিষেবার জন্য ব্যাচ করা হয়।
পদক্ষেপ 4.1। ট্রিগার রিপোর্ট
পদক্ষেপ 4.2। সমষ্টিগত প্রতিবেদন সংগ্রহ করুন
পদক্ষেপ 4.3। প্রতিবেদনগুলি এভ্রোতে রূপান্তর করুন
ধাপ 4.4. আউটপুট ডোমেন অ্যাভ্রো তৈরি করুন

4.1। ট্রিগার রিপোর্ট

গোপনীয়তা স্যান্ডবক্স ডেমো সাইটে যান। এটি একটি ব্যক্তিগত সমষ্টি প্রতিবেদনকে ট্রিগার করে। আপনি chrome://private-aggregation-internals প্রতিবেদনটি দেখতে পারেন।

ক্রোম প্রাইভেট এগ্রিগেশন ইন্টার্নাল।

যদি আপনার প্রতিবেদনটি " মুলতুবি " স্থিতিতে থাকে তবে আপনি প্রতিবেদনটি নির্বাচন করতে পারেন এবং " নির্বাচিত প্রতিবেদনগুলি প্রেরণ করুন " এ ক্লিক করতে পারেন। '

বেসরকারী সমষ্টি প্রতিবেদন প্রেরণ করুন।

4.2। সমষ্টিগত প্রতিবেদন সংগ্রহ করুন

আপনার সংশ্লিষ্ট এপিআইয়ের .well-known শেষ পয়েন্টগুলি থেকে আপনার সমষ্টিগত প্রতিবেদনগুলি সংগ্রহ করুন।

  • ব্যক্তিগত সমষ্টি
    [reporting-origin] /.well-known/private-aggregation/report-shared-storage
  • অ্যাট্রিবিউশন রিপোর্টিং - সংক্ষিপ্ত প্রতিবেদন
    [reporting-origin] /.well-known/attribution-reporting/report-aggregate-attribution

এই কোডল্যাবের জন্য, আপনি ম্যানুয়ালি প্রতিবেদন সংগ্রহটি সম্পাদন করবেন। উত্পাদনে, বিজ্ঞাপন প্রযুক্তিগুলি প্রোগ্রামগতভাবে প্রতিবেদনগুলি সংগ্রহ এবং রূপান্তর করবে বলে আশা করা হচ্ছে।

chrome://private-aggregation-internals , [reporting-origin]/.well-known/private-aggregation/report-shared-storage এন্ডপয়েন্টে প্রাপ্ত " রিপোর্ট বডি " অনুলিপি করুন।

নিশ্চিত করুন যে " রিপোর্ট বডি " -তে, aggregation_coordinator_origin https://publickeyservice.msmt.aws.privacysandboxservices.com রয়েছে যার অর্থ এই প্রতিবেদনটি একটি এডাব্লুএস এডাব্লুএস এডাব্লুগ্রিগেটেবল প্রতিবেদন।

ব্যক্তিগত সমষ্টি প্রতিবেদন।

JSON " রিপোর্ট বডি " একটি জেএসএন ফাইলে রাখুন। এই উদাহরণে, আপনি ভিআইএম ব্যবহার করতে পারেন। তবে আপনি যে কোনও পাঠ্য সম্পাদক ব্যবহার করতে পারেন।

vim report.json

প্রতিবেদনটি report.json এ আটকান এবং আপনার ফাইলটি সংরক্ষণ করুন।

জেএসএন ফাইল রিপোর্ট করুন।

4.3। প্রতিবেদনগুলি এভ্রোতে রূপান্তর করুন

.well-known আপনার কাছে জেএসএন রিপোর্ট হয়ে গেলে, আপনার প্রতিবেদন ফোল্ডারে নেভিগেট করুন এবং ডিবাগ এগ্রিগেটেবল রিপোর্ট তৈরি করতে সহায়তা করার জন্য aggregatable_report_converter.jar ব্যবহার করুন। এটি আপনার বর্তমান ডিরেক্টরিতে report.avro নামে একটি সমষ্টিগত প্রতিবেদন তৈরি করে।

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

4.4। আউটপুট ডোমেন অ্যাভ্রো তৈরি করুন

output_domain.avro ফাইল তৈরি করতে আপনার বালতি কীগুলি প্রয়োজন যা প্রতিবেদনগুলি থেকে পুনরুদ্ধার করা যায়।

বালতি কীগুলি বিজ্ঞাপন প্রযুক্তি দ্বারা ডিজাইন করা হয়েছে। যাইহোক, এই ক্ষেত্রে, সাইটের গোপনীয়তা স্যান্ডবক্স ডেমো বালতি কীগুলি তৈরি করে। যেহেতু এই সাইটের জন্য ব্যক্তিগত সমষ্টিটি ডিবাগ মোডে রয়েছে, তাই আপনি বালতি কী পেতে " রিপোর্ট বডি " থেকে debug_cleartext_payload ব্যবহার করতে পারেন।

এগিয়ে যান এবং রিপোর্ট বডি থেকে debug_cleartext_payload অনুলিপি করুন।

রিপোর্ট বডি থেকে ডিবাগ ক্লিয়ারটেক্সট পে -লোড।

Goo.gle/ags-payloald-decoder খুলুন এবং " ইনপুট " বাক্সে আপনার debug_cleartext_payload পেস্ট করুন এবং " ডিকোড " ক্লিক করুন।

পেলোড ডিকোডার।

পৃষ্ঠাটি বালতি কীটির দশমিক মান প্রদান করে। নিম্নলিখিত একটি নমুনা বালতি কী।

পে -লোড ডিকোডার ফলাফল।

এখন আমাদের কাছে বালতি কী রয়েছে, এগিয়ে যান এবং output_domain.avro তৈরি করুন। আপনি প্রতিস্থাপন নিশ্চিত করুন বালতি কী দিয়ে আপনি পুনরুদ্ধার করেছেন।

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

স্ক্রিপ্টটি আপনার বর্তমান ফোল্ডারে output_domain.avro ফাইল তৈরি করে।

4.5। প্রতিবেদনগুলি এডাব্লুএস বালতিতে সরান

একবার এভ্রো রিপোর্টগুলি (বিভাগ 3.2.3 থেকে) এবং আউটপুট ডোমেন (বিভাগ 3.2.4 থেকে) তৈরি করা হলে, প্রতিবেদনগুলি এবং আউটপুট ডোমেনকে প্রতিবেদনকারী এস 3 বালতিতে স্থানান্তরিত করতে এগিয়ে যান।

আপনার যদি স্থানীয় পরিবেশে এডাব্লুএস সিএলআই সেটআপ থাকে তবে প্রতিবেদনগুলি সংশ্লিষ্ট এস 3 বালতিতে অনুলিপি করতে এবং ফোল্ডারে রিপোর্ট করতে নিম্নলিখিত কমান্ডগুলি ব্যবহার করুন।

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 অনুলিপি করুন এবং এটি পোস্টম্যান গ্লোবাল ভেরিয়েবল frontend_api_id -তে রাখুন যা আপনি পূর্বশর্ত বিভাগ 1.9 এ সেটআপ করেছেন।

পদক্ষেপ 5। সমষ্টি পরিষেবা ব্যবহার : সংক্ষিপ্ত প্রতিবেদনগুলি তৈরি করতে এবং সংক্ষিপ্ত প্রতিবেদনগুলি পর্যালোচনা করতে সমষ্টি পরিষেবা এপিআই ব্যবহার করুন।
পদক্ষেপ 5.1। ব্যাচে ক্রিয়েটজব এন্ডপয়েন্ট ব্যবহার করে
ধাপ 5.2। ব্যাচের স্থিতি পুনরুদ্ধার করতে getjob এন্ডপয়েন্ট ব্যবহার করে
পদক্ষেপ 5.3। সংক্ষিপ্ত প্রতিবেদন পর্যালোচনা

5.1। ব্যাচে createJob এন্ডপয়েন্ট ব্যবহার করে

পোস্টম্যানে, " গোপনীয়তা স্যান্ডবক্স " সংগ্রহটি খুলুন এবং " ক্রিয়েটজব " নির্বাচন করুন।

" বডি " নির্বাচন করুন এবং আপনার অনুরোধের পে -লোড রাখতে " কাঁচা " নির্বাচন করুন।

পোস্টম্যান ক্রিয়েটজব অনুরোধ বডি

createJob পে -লোড স্কিমা গিটহাবে উপলভ্য এবং নিম্নলিখিতগুলির মতো দেখাচ্ছে। উপযুক্ত ক্ষেত্রগুলির সাথে <> প্রতিস্থাপন করুন।

{
   
"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 দিয়ে কাজটি তৈরি করে। অনুরোধটি সমষ্টি পরিষেবা দ্বারা গৃহীত হওয়ার পরে আপনার একটি এইচটিটিপি 202 প্রতিক্রিয়া পাওয়া উচিত। অন্যান্য সম্ভাব্য রিটার্ন কোডটি HTTP প্রতিক্রিয়া কোডগুলিতে পাওয়া যাবে

পোস্টম্যান ক্রিয়েটজব অনুরোধের স্থিতি

5.2। ব্যাচের স্থিতি পুনরুদ্ধার করতে getjob এন্ডপয়েন্ট ব্যবহার করে

কাজের অনুরোধের স্থিতি পরীক্ষা করতে, আপনি getJob এন্ডপয়েন্টটি ব্যবহার করতে পারেন। " গোপনীয়তা স্যান্ডবক্স " সংগ্রহে " getjob " নির্বাচন করুন।

" প্যারামস " -তে, JOB_REQUEST_ID মানটি job_request_id এ আপডেট করুন যা createJob অনুরোধে প্রেরণ করা হয়েছিল।

পোস্টম্যান গেটজব অনুরোধ

getJob এর ফলাফলটি 200 এর এইচটিটিপি স্থিতি সহ আপনার কাজের অনুরোধের স্থিতি ফিরিয়ে দিতে হবে। " বডি " অনুরোধটিতে job_status , return_message এবং error_messages (যদি কাজটি ভুল হয়ে যায়) এর মতো প্রয়োজনীয় তথ্য রয়েছে।

অস্টমান getjob অনুরোধ স্থিতি

যেহেতু উত্পন্ন ডেমো রিপোর্টের রিপোর্টিং সাইটটি আপনার এডাব্লুএস আইডিতে আপনার বোর্ডড সাইট থেকে আলাদা, তাই আপনি PRIVACY_BUDGET_AUTHORIZATION_ERROR রিটার্ন_কোডের সাথে একটি প্রতিক্রিয়া পেতে পারেন। এটি স্বাভাবিক যেহেতু প্রতিবেদনের প্রতিবেদন উত্সের সাইটটি এডাব্লুএস আইডির জন্য চালিত রিপোর্টিং সাইটের সাথে মেলে না।

{
      "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। সংক্ষিপ্ত প্রতিবেদন পর্যালোচনা

একবার আপনি আপনার আউটপুট এস 3 বালতিতে আপনার সংক্ষিপ্ত প্রতিবেদনটি পেয়ে গেলে আপনি এটি আপনার স্থানীয় পরিবেশে ডাউনলোড করতে পারেন। সংক্ষিপ্ত প্রতিবেদনগুলি এভ্রো ফর্ম্যাটে রয়েছে এবং এটি আবার কোনও জেএসনে রূপান্তরিত হতে পারে। নিম্নলিখিত কমান্ডটি ব্যবহার করে আপনার প্রতিবেদনটি পড়তে আপনি aggregatable_report_converter.jar ব্যবহার করতে পারেন।

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

এটি প্রতিটি বালতি কী এর একত্রিত মানগুলির একটি JSON প্রদান করে যা নিম্নলিখিত চিত্রের মতো দেখায়।

সংক্ষিপ্ত প্রতিবেদন।

আপনার createJob অনুরোধটি যদি debug_run true হিসাবে অন্তর্ভুক্ত করে তবে আপনি output_data_blob_prefix অবস্থিত ডিবাগ ফোল্ডারে আপনার সংক্ষিপ্ত প্রতিবেদনটি পেতে পারেন। প্রতিবেদনটি এভ্রো ফর্ম্যাটে রয়েছে এবং পূর্ববর্তী কমান্ডটি ব্যবহার করে কোনও জেএসওনে রূপান্তর করা যেতে পারে।

প্রতিবেদনে বালতি কী, অনাবৃত মেট্রিক এবং সংক্ষিপ্ত প্রতিবেদন গঠনের জন্য ননডাইজড মেট্রিকের সাথে যুক্ত হওয়া শব্দ রয়েছে। প্রতিবেদনটি নিম্নলিখিত চিত্রের মতো।

ডিবাগ সংক্ষিপ্ত প্রতিবেদন।

টীকাগুলিতে in_reports এবং in_domain এছাড়াও রয়েছে যার অর্থ:

  • in_reports - বালতি কীটি সমষ্টিগত প্রতিবেদনের অভ্যন্তরে উপলব্ধ।
  • in_domain - বালতি কী আউটপুট_ডোমাইন এভ্রো ফাইলের ভিতরে পাওয়া যায়।