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

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

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

اگر به بازیابی بودجه علاقه دارید، به راهنمایی عمومی ما در GitHub ادامه دهید

پیش نیاز

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

اشکال زدایی کاری که با خطای PRIVACY_BUDGET_EXHAUSTED ناموفق بود

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

مسیرها توسط 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"
       }
     }
   } ]
 }
}

مراحل بعدی

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