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

১. পূর্বশর্ত

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

১.১. লোকাল টেস্টিং টুল (লোকাল টেস্টিং) ডাউনলোড করুন।

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

লোকাল টেস্টিং টুলটি Github-এর Lambda JAR আর্কাইভে ডাউনলোডের জন্য উপলব্ধ। এর নাম LocalTestingTool_{version}.jar রাখা উচিত।

১.২. জাভা জেআরই ইনস্টল করা আছে কিনা তা যাচাই করুন (স্থানীয় পরীক্ষা এবং সমষ্টি পরিষেবা)

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

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

যদি এটি ইনস্টল না করা থাকে, তাহলে আপনি জাভা সাইট অথবা openJDK সাইট থেকে ডাউনলোড করে ইনস্টল করতে পারেন।

১.৩. অ্যাগ্রিগেটেবল রিপোর্ট কনভার্টার (স্থানীয় পরীক্ষা এবং অ্যাগ্রিগেশন পরিষেবা) ডাউনলোড করুন

আপনি প্রাইভেসি স্যান্ডবক্স ডেমোস গিথুব রিপোজিটরি থেকে অ্যাগ্রিগেটেবল রিপোর্ট কনভার্টারের একটি কপি ডাউনলোড করতে পারেন।

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

আপনার ব্রাউজারে, chrome://settings/adPrivacy এ যান এবং সমস্ত Ad Privacy API সক্রিয় করুন।

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

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

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

১.৫. ওয়েব এবং অ্যান্ড্রয়েড তালিকাভুক্তি (সমষ্টি পরিষেবা)

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

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

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

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

১.৬. অ্যাগ্রিগেশন সার্ভিস অনবোর্ডিং (অ্যাগ্রিগেশন সার্ভিস)

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

১.৭. ক্লাউড প্রদানকারী (সমষ্টি পরিষেবা)

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

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

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

১.৭.১। 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

১.৭.২. ব্যবহারকারীর অ্যাক্সেস কী তৈরি করুন

AWS গাইড ব্যবহার করে ব্যবহারকারীর অ্যাক্সেস কী তৈরি করুন। এটি AWS-এ তৈরি createJob এবং getJob API এন্ডপয়েন্টগুলিকে কল করতে ব্যবহার করা হবে।

১.৭.৩. AWS ব্যবহারকারী এবং গোষ্ঠীর অনুমতি

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

১.৮. টেরাফর্ম (সমষ্টি পরিষেবা)

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

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

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

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

ক্লাসপাথে টেরাফর্ম উপলব্ধ আছে কিনা তা পরীক্ষা করে দেখুন।

terraform -v

১.৯. পোস্টম্যান (সমষ্টি পরিষেবা AWS এর জন্য)

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

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

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

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

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

" Import " বোতামটি ব্যবহার করে " My Workspace " এ JSON ফাইলগুলি আমদানি করুন।

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

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

ডাকপিয়নের আমদানি করা সংগ্রহ। ডাকপিয়নের আমদানি করা সংগ্রহ।

" পরিবেশ দ্রুত দেখুন " এর মাধ্যমে AWS "অ্যাক্সেস কী" এবং "সিক্রেট কী" আপডেট করুন।

পোস্টম্যান পরিবেশের একটি সংক্ষিপ্ত বিবরণ। পোস্টম্যান পরিবেশের একটি সংক্ষিপ্ত বিবরণ।

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

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

২. স্থানীয় পরীক্ষার কোডল্যাব

এনক্রিপ্ট না করা ডিবাগ রিপোর্ট ব্যবহার করে একত্রিতকরণ এবং সারাংশ রিপোর্ট তৈরি করতে আপনি আপনার মেশিনের স্থানীয় পরীক্ষার সরঞ্জাম ব্যবহার করতে পারেন।

কোডল্যাব ধাপ

ধাপ ২.১. ট্রিগার রিপোর্ট : রিপোর্ট সংগ্রহ করতে সক্ষম হওয়ার জন্য ব্যক্তিগত সমষ্টি প্রতিবেদন চালু করুন।

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

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

ধাপ ২.৪. আউটপুট ডোমেইন AVRO তৈরি করুন : বাকেট কীগুলি পুনরুদ্ধার করা হয়ে গেলে, আউটপুট ডোমেইন AVRO ফাইল তৈরি করুন।

ধাপ ২.৫. লোকাল টেস্টিং টুল ব্যবহার করে সারাংশ প্রতিবেদন তৈরি করুন : লোকাল পরিবেশে সারাংশ প্রতিবেদন তৈরি করতে লোকাল টেস্টিং টুল ব্যবহার করুন।

ধাপ ২.৬. সারাংশ প্রতিবেদনটি পর্যালোচনা করুন : স্থানীয় পরীক্ষার সরঞ্জাম দ্বারা তৈরি সারাংশ প্রতিবেদনটি পর্যালোচনা করুন।

২.১. ট্রিগার রিপোর্ট

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

Chrome প্রাইভেট অ্যাগ্রিগেশন ইন্টার্নাল। Chrome প্রাইভেট অ্যাগ্রিগেশন ইন্টার্নাল।

যদি আপনার রিপোর্ট " Pending " অবস্থায় থাকে, তাহলে আপনি রিপোর্টটি নির্বাচন করতে পারেন এবং " Send Selected Reports " এ ক্লিক করতে পারেন।

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

২.২. ডিবাগ এগ্রিগেটেবল রিপোর্ট তৈরি করুন

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

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

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

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

vim report.json

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

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

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

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

২.৩. ডিবাগ রিপোর্ট থেকে বাকেট কী পার্স করুন

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

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

রিপোর্টের বডি থেকে debug_cleartext_payload কপি করুন।

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

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

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

পৃষ্ঠাটি বাকেট কী-এর দশমিক মান প্রদান করে। নিচে একটি নমুনা বাকেট কী দেওয়া হল।

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

২.৪. আউটপুট ডোমেইন AVRO তৈরি করুন

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

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

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

২.৫. লোকাল টেস্টিং টুল ব্যবহার করে সারাংশ প্রতিবেদন তৈরি করুন

আমরা সারাংশ প্রতিবেদন তৈরি করতে বিভাগ 1.1-এ ডাউনলোড করা LocalTestingTool_{version}.jar ব্যবহার করব। নিম্নলিখিত কমান্ডটি ব্যবহার করুন। আপনার LocalTestingTool_{version}.jar এর পরিবর্তে LocalTestingTool-এর জন্য ডাউনলোড করা সংস্করণটি ব্যবহার করা উচিত।

আপনার স্থানীয় উন্নয়ন পরিবেশে একটি সারাংশ প্রতিবেদন তৈরি করতে নিম্নলিখিত কমান্ডটি চালান:

java -jar LocalTestingTool_{version}.jar \
--input_data_avro_file report.avro \
--domain_avro_file output_domain.avro \
--output_directory .

কমান্ডটি চালানোর পর আপনি নিচের ছবির মতো কিছু দেখতে পাবেন। এটি সম্পন্ন হওয়ার পর একটি রিপোর্ট output.avro তৈরি হবে।

স্থানীয় পরীক্ষার সারাংশ রিপোর্ট avro ফাইল। স্থানীয় পরীক্ষার সারাংশ রিপোর্ট avro ফাইল।

২.৬। সারাংশ প্রতিবেদনটি পর্যালোচনা করুন।

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

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

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

এটি নিম্নলিখিত ছবির মতো একটি প্রতিবেদন ফেরত দেয়। একই ডিরেক্টরিতে তৈরি একটি প্রতিবেদন output.json সহ।

সারাংশ avro ফাইলটি json-এ রূপান্তরিত হয়েছে। সারাংশ avro ফাইলটি json-এ রূপান্তরিত হয়েছে।

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

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

একত্রীকরণ পরিষেবা স্থাপন করতে, নিম্নলিখিত পদক্ষেপগুলি ব্যবহার করুন:

ধাপ ৩. অ্যাগ্রিগেশন সার্ভিস ডিপ্লয়মেন্ট : AWS-এ অ্যাগ্রিগেশন সার্ভিস ডিপ্লয় করুন
ধাপ ৩.১. অ্যাগ্রিগেশন সার্ভিস রিপোজিটরি ক্লোন করুন
ধাপ ৩.২। পূর্বনির্ধারিত নির্ভরতা ডাউনলোড করুন
ধাপ ৩.৩. একটি উন্নয়ন পরিবেশ তৈরি করুন
ধাপ ৩.৪. সমষ্টি পরিষেবা স্থাপন করুন

৩.১. অ্যাগ্রিগেশন সার্ভিস রিপোজিটরি ক্লোন করুন

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

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

৩.২। পূর্বনির্ধারিত নির্ভরতা ডাউনলোড করুন

একবার আপনি Aggregation Service রিপোজিটরি ক্লোন করার পরে, রিপোজিটরির Terraform ফোল্ডারে এবং সংশ্লিষ্ট ক্লাউড ফোল্ডারে যান। যদি আপনার cloud_provider AWS হয়, তাহলে আপনি এগিয়ে যেতে পারেন /terraform/aws

cd <repository_root>/terraform/aws

ভিতরে /terraform/aws , download_prebuilt_dependencies.sh এক্সিকিউট করুন।

bash download_prebuilt_dependencies.sh

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

একটি ডেভেলপমেন্ট পরিবেশ তৈরি করুন /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 প্রধান টিএফ ফাইল। AWS প্রধান টিএফ ফাইল।

মন্তব্যবিহীন কোডটি নিচের মতো দেখাবে।

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 ফাইল সম্পাদনা করুন। dev auto tfvars ফাইল সম্পাদনা করুন।

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

ডেভ অটো tfvars ফাইল আপডেট করা হয়েছে। ডেভ অটো tfvars ফাইল আপডেট করা হয়েছে।

৩.৪. একত্রীকরণ পরিষেবা স্থাপন করুন

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

terraform init

এটি নিম্নলিখিত চিত্রের মতো কিছু ফিরিয়ে দেবে:

টেরাফর্ম শুরু। টেরাফর্ম শুরু।

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

terraform plan

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

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

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

terraform apply

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

টেরাফর্ম প্রয়োগের প্রম্পট। টেরাফর্ম প্রয়োগের প্রম্পট।

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

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

৪. সমষ্টি পরিষেবা ইনপুট তৈরি

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

ধাপ ৪. সমষ্টি পরিষেবা ইনপুট তৈরি : সমষ্টি পরিষেবার জন্য ব্যাচ করা সমষ্টি পরিষেবা প্রতিবেদন তৈরি করুন।
ধাপ ৪.১. ট্রিগার রিপোর্ট
ধাপ ৪.২। সমষ্টিগত প্রতিবেদন সংগ্রহ করুন
ধাপ ৪.৩. রিপোর্টগুলিকে AVRO তে রূপান্তর করুন
ধাপ ৪.৪. আউটপুট ডোমেইন AVRO তৈরি করুন

৪.১. ট্রিগার রিপোর্ট

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

Chrome প্রাইভেট অ্যাগ্রিগেশন ইন্টার্নাল। Chrome প্রাইভেট অ্যাগ্রিগেশন ইন্টার্নাল।

যদি আপনার রিপোর্ট " Pending " অবস্থায় থাকে, তাহলে আপনি রিপোর্টটি নির্বাচন করতে পারেন এবং " Send Selected Reports " এ ক্লিক করতে পারেন।

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

৪.২. সমষ্টিগত প্রতিবেদন সংগ্রহ করুন

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

  • ব্যক্তিগত সমষ্টি
    [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 এন্ডপয়েন্টে প্রাপ্ত " Report Body " কপি করুন।

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

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

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

vim report.json

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

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

৪.৩. রিপোর্টগুলিকে 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

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

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

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

রিপোর্ট বডি থেকে debug_cleartext_payload কপি করুন।

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

goo.gle/ags-payload-decoder খুলুন এবং " INPUT " বাক্সে আপনার debug_cleartext_payload পেস্ট করুন এবং " Decode " এ ক্লিক করুন।

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

পৃষ্ঠাটি বাকেট কী-এর দশমিক মান প্রদান করে। নিচে একটি নমুনা বাকেট কী দেওয়া হল।

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

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

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

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

৪.৫। রিপোর্টগুলি 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>/

৫. সমষ্টি পরিষেবার ব্যবহার

terraform apply থেকে, আপনাকে create_job_endpoint , get_job_endpoint এবং frontend_api_id ফেরত দেওয়া হবে। frontend_api_id কপি করুন এবং এটিকে postman global variable frontend_api_id এ রাখুন যা আপনি পূর্বশর্ত বিভাগ 1.9-এ সেটআপ করেছেন।

ধাপ ৫. সমষ্টি পরিষেবার ব্যবহার : সারাংশ প্রতিবেদন তৈরি করতে এবং সারাংশ প্রতিবেদনগুলি পর্যালোচনা করতে সমষ্টি পরিষেবা API ব্যবহার করুন।
ধাপ ৫.১. ব্যাচে createJob Endpoint ব্যবহার করা
ধাপ ৫.২. ব্যাচের অবস্থা পুনরুদ্ধার করতে getJob Endpoint ব্যবহার করা
ধাপ ৫.৩. সারাংশ প্রতিবেদন পর্যালোচনা করা

৫.১. ব্যাচে createJob এন্ডপয়েন্ট ব্যবহার করা

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

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

পোস্টম্যান তৈরির চাকরির অনুরোধের মূল অংশ পোস্টম্যান তৈরির চাকরির অনুরোধের মূল অংশ

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

" Send " এ ক্লিক করলে, job_request_id দিয়ে কাজ তৈরি হবে। Aggregation Service অনুরোধটি গ্রহণ করার পরে আপনি একটি HTTP 202 প্রতিক্রিয়া পাবেন। অন্যান্য সম্ভাব্য রিটার্ন কোড HTTP প্রতিক্রিয়া কোডগুলিতে পাওয়া যাবে।

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

৫.২. ব্যাচের অবস্থা পুনরুদ্ধার করতে getJob Endpoint ব্যবহার করা

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

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

পোস্টম্যানের চাকরি পাওয়ার অনুরোধ পোস্টম্যানের চাকরি পাওয়ার অনুরোধ

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

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

যেহেতু জেনারেট করা ডেমো রিপোর্টের রিপোর্টিং সাইটটি আপনার AWS আইডিতে থাকা অনবোর্ডেড সাইট থেকে আলাদা, তাই আপনি PRIVACY_BUDGET_AUTHORIZATION_ERROR রিটার্ন_কোড সহ একটি প্রতিক্রিয়া পেতে পারেন। এটি স্বাভাবিক কারণ রিপোর্টের রিপোর্টিং অরিজিনের সাইটটি 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"
}

৫.৩. সারাংশ প্রতিবেদন পর্যালোচনা করা

আপনার আউটপুট S3 Bucket-এ আপনার সারাংশ রিপোর্টটি পাওয়ার পর, আপনি এটি আপনার স্থানীয় পরিবেশে ডাউনলোড করতে পারেন। সারাংশ রিপোর্টগুলি 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 এ অবস্থিত debug ফোল্ডারে আপনার সারাংশ রিপোর্ট পেতে পারেন। রিপোর্টটি AVRO ফর্ম্যাটে এবং পূর্ববর্তী কমান্ড ব্যবহার করে JSON এ রূপান্তর করা যেতে পারে।

রিপোর্টটিতে বাকেট কী, আন-নয়েজড মেট্রিক এবং সারাংশ রিপোর্ট তৈরির জন্য আন-নয়েজড মেট্রিকের সাথে যোগ করা নয়েজ রয়েছে। রিপোর্টটি নিম্নলিখিত ছবির মতো।

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

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

  • in_reports - বাকেট কীটি সমষ্টিগত প্রতিবেদনের ভিতরে উপলব্ধ।
  • in_domain - বাকেট কীটি output_domain AVRO ফাইলের ভিতরে পাওয়া যায়।