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

1. পূর্বশর্ত

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

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

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

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

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

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

java\n--সংস্করণ ব্যবহার করে java jre সংস্করণ পরীক্ষা করা হচ্ছে

এটি ইনস্টল করা না থাকলে, আপনি 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 ফাইলগুলিকে " আমার ওয়ার্কস্পেস "-এ আমদানি করুন।

পোস্টম্যান JSONfiles আমদানি করুন

এটি 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 এ দেখতে পারেন।

ক্রোম ব্যক্তিগত সমষ্টি অভ্যন্তরীণ

যদি আপনার প্রতিবেদন " মুলতুবি " অবস্থায় থাকে, আপনি প্রতিবেদনটি নির্বাচন করতে পারেন এবং " নির্বাচিত প্রতিবেদন পাঠান " এ ক্লিক করতে পারেন৷

ব্যক্তিগত একত্রিত প্রতিবেদন পাঠান

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 এ পেস্ট করুন এবং আপনার ফাইলটি সংরক্ষণ করুন।

JSONfile রিপোর্ট করুন

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

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

2.3। ডিবাগ রিপোর্ট থেকে বালতি কী পার্স করুন

ব্যাচিং করার সময় অ্যাগ্রিগেশন সার্ভিসের জন্য দুটি ফাইল প্রয়োজন। সমষ্টিগত প্রতিবেদন এবং আউটপুট ডোমেন ফাইল। আউটপুট ডোমেন ফাইলটিতে আপনি সমষ্টিগত প্রতিবেদনগুলি থেকে পুনরুদ্ধার করতে চান এমন কীগুলি রয়েছে৷ output_domain.avro ফাইলটি তৈরি করতে, আপনার বালতি কীগুলির প্রয়োজন যা প্রতিবেদনগুলি থেকে পুনরুদ্ধার করা যেতে পারে।

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

স্থানীয় পরীক্ষার সারাংশ রিপোর্ট avrofile

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 সহ।

সারাংশ অভ্র ফাইল রূপান্তরিত tojson

সারাংশ প্রতিবেদন পর্যালোচনা করতে আপনার পছন্দের একটি সম্পাদকে 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 প্রধান tfile

মন্তব্য না করা কোড নিম্নলিখিত মত হওয়া উচিত.

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 tfvarsfile সম্পাদনা করুন

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

আপডেট করা dev auto tfvarsfile

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

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

terraform init

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

টেরাফর্মিনিট

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

terraform plan

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

টেরাফর্মপ্ল্যান

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

terraform apply

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

terraform আবেদন প্রম্পট

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

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

4. অ্যাগ্রিগেশন সার্ভিস ইনপুট তৈরি

অ্যাগ্রিগেশন সার্ভিসে ব্যাচিংয়ের জন্য AVRO রিপোর্ট তৈরি করতে এগিয়ে যান।

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

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

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

ক্রোম ব্যক্তিগত সমষ্টি অভ্যন্তরীণ

যদি আপনার প্রতিবেদন " মুলতুবি " অবস্থায় থাকে, আপনি প্রতিবেদনটি নির্বাচন করতে পারেন এবং " নির্বাচিত প্রতিবেদন পাঠান " এ ক্লিক করতে পারেন৷

ব্যক্তিগত একত্রিত প্রতিবেদন পাঠান

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_origin https://publickeyservice.msmt.aws.privacysandboxservices.com রয়েছে যার অর্থ রিপোর্টটি একটি AWS সমষ্টিগত প্রতিবেদন।

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

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

vim report.json

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

JSONfile রিপোর্ট করুন

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

একবার আপনি " পাঠান " ক্লিক করলে, এটি job_request_id দিয়ে কাজ তৈরি করে। একবার অ্যাগ্রিগেশন সার্ভিসের দ্বারা অনুরোধটি গৃহীত হলে আপনার একটি HTTP 202 প্রতিক্রিয়া পাওয়া উচিত। অন্যান্য সম্ভাব্য রিটার্ন কোড HTTP প্রতিক্রিয়া কোড পাওয়া যাবে

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

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

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

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

পোস্টম্যান getJobrequest

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

পোস্টম্যান 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_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। সারাংশ রিপোর্ট পর্যালোচনা

একবার আপনি আপনার আউটপুট 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 ফাইলের ভিতরে উপলব্ধ।