خطای اشکال زدایی از بودجه به پایان رسیده است

این راهنما نحوه استفاده از ویژگی جدید اشکال‌زدایی بودجه حریم خصوصی برای خطاهای PRIVACY_BUDGET_EXHAUSTED را که اکنون در سرویس تجمیع از v2.12.0 موجود است، توضیح می‌دهد. همانطور که مستند شده است، در حالی که گزارش‌های تجمیع‌پذیر از طریق کارها به یک سرویس تجمیع‌پذیر ارسال می‌شوند، زیرساخت برای محدود کردن استفاده از بودجه حریم خصوصی به سرویس حساب گزارش‌دهی تجمیع‌پذیر واقع در هماهنگ‌کننده‌های TEE (محیط اجرای مطمئن) متکی است. به عنوان یادآوری، بودجه حریم خصوصی حداکثر تعداد دفعاتی را که این گزارش‌های تجمیع‌پذیر می‌توانند برای تولید گزارش‌های خلاصه برای محدود کردن کسب اطلاعات استفاده شوند، تعیین می‌کند. هرگونه تجمیع یک گزارش فراتر از بودجه حریم خصوصی اختصاص داده شده به آن، با خطای PRIVACY_BUDGET_EXHAUSTED مواجه خواهد شد.

این راهنما شما را با یک ویژگی اشکال‌زدایی آشنا می‌کند که از v2.12.0 ، یک فایل JSON کمکی از گزارش‌های مرتبطی که در بروز هرگونه خطای PRIVACY_BUDGET_EXHAUSTED بعدی که توسط jobهای شما رخ می‌دهد، نقش داشته‌اند، تولید و ذخیره می‌کند.

اگر به بازیابی بودجه علاقه‌مند هستید، به راهنمایی‌های عمومی ما در GitHub مراجعه کنید.

پیش‌نیاز

با ادامه‌ی این راهنما، فرض بر این است که شما موارد زیر را دارید:

اشکال‌زدایی کاری که با خطای PRIVACY_BUDGET_EXHAUSTED شکست خورد

در این مرحله، انتظار داریم که شما نقطه پایانی getJob با آخرین شناسه درخواست کار خود اجرا کرده باشید و خطای PRIVACY_BUDGET_EXHAUSTED مشابه پاسخ زیر را دریافت کرده باشید. از Aggregation Service v2.12.0 ، باید یک فایل JSON اشکال‌زدایی privacy budget exhausted که به تازگی ایجاد شده است، در مخزن ذخیره‌سازی ابری عمومی خود داشته باشید.

مسیرها توسط return_message بیان می‌شوند و از قالب‌های زیر پیروی می‌کنند:

  • مسیر فایل: <output_data_bucket_name>/<output_data_blob_prefix>/
  • نام فایل: privacy_budget_exhausted_<request_received_at_timestamp>.json
{
  "job_status": "FINISHED",
  "request_received_at": <utc timestamp>,
  "request_updated_at": <utc timestamp>,
  "job_request_id": <customer assigned job id>,
  
  "request_processing_started_at": <utc timestamp>,
  "result_info": {
    "return_code": "PRIVACY_BUDGET_EXHAUSTED",
    "return_message": "com.google.aggregate.adtech.worker.exceptions.AggregationJobProcessException: Insufficient privacy budget for one or more aggregatable reports. No aggregatable report can appear in more than one aggregation job. Information related to reports that do not have budget can be found in the following file:
    File path: ags-privacy-budget-codelab/output-bucket/output-domain Filename: privacy budget exhausted debugging information <utc timestamp> \n com.google.aggregate.adtech.worker.aggregation.concurrent.ConcurrentAggregationProcessor.consumePrivacyBudgetUnits(ConcurrentAggregationProcessor.java:525) \n com.google.aggregate.adtech.worker.aggregation.concurrent.ConcurrentAggregationProcessor.process(ConcurrentAggregationProcessor.java:319) \n com.google.aggregate.adtech.worker.WorkerPullWorkService.run(WorkerPullWorkService.java:157)",
    "error_summary": {
      "error_counts": "",
      "error_messages": ""
    }
  }
}

مراحل رفع خطا

خروجی privacy_budget_exhausted_debugging_information_<utc timestamp>.json که در مخزن ذخیره‌سازی ابری عمومی شما ارائه شده است را پیدا کرده و باز کنید. این خروجی را می‌توانید در مسیر <output_data_bucket_name>/<output_data_blob_prefix> که در return_message ارائه شده است، پیدا کنید. در داخل آن فایل JSON، ویژگی‌های filtering_id (پیش‌فرض‌ها روی 0) و relevant_shared_info را با گزارش‌های ورودی قابل تجمیع shared_info مقایسه کنید. یافتن یک تطابق به این معنی است که آن گزارش‌ها از بودجه اختصاص داده شده فراتر رفته و منجر به شکست یک کار می‌شوند و باید در کارهای آینده فیلتر شوند. توجه داشته باشید که گزارش‌های منطبق همچنان می‌توانند با یک شناسه فیلتر متفاوت مورد استفاده مجدد قرار گیرند. پس از شناسایی و حذف گزارش‌های منطبق از فایل AVRO گزارش‌های دسته‌ای خود، آماده اجرای مجدد کار خود هستید.

در ادامه مثالی از خروجی privacy_budget_exhausted_debugging_information_<utc timestamp>.json آمده است.

{
 "privacy_budget_exhausted_info" : {
   "aggregatable_input_budget_consumption_info" : [ {
     "aggregateable_input_budget_id" : {
       "filtering_id" : 0,
       "relevant_shared_info" : {
         "api" : "attribution-reporting",
         "attribution_destination" : "f246a4e6-dde9-46a5-a6b2-ea523b484d0a",
         "reporting_origin" : "foo.com",
         "scheduled_report_time" : 1738814400.000000000,
         "source_registration_time" : 1738713600.000000000,
         "version" : "0.1"
       }
     }
   }, {
       "aggregateable_input_budget_id" : {
       "filtering_id" : 0,
       "relevant_shared_info" : {
         "api" : "attribution-reporting",
         "attribution_destination" : "f246a4e6-dde9-46a5-a6b2-ea523b484d0a",
         "reporting_origin" : "foo.com",
         "scheduled_report_time" : 1738796400.000000000,
         "source_registration_time" : 1738713600.000000000,
         "version" : "0.1"
       }
     }
   } ]
 }
}

مراحل بعدی

بررسی کنید که آیا شخص دیگری در داشبورد وضعیت Privacy Sandbox یا در مخزن عمومی GitHub با همین مشکل مواجه شده است یا خیر. اگر راه حلی برای مشکل سرویس تجمیع خود نمی‌بینید، یک مشکل GitHub ثبت کنید یا فرم پشتیبانی فنی را ارسال کنید.