مشاغل تجمیع خود را تشخیص دهید

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

مباحث راهنما:

خطاهای مجوزها و دسترسی‌ها

مسئله مشکلات مربوط به مجوزها هنگام اجرای terraform plan یا terraform apply بر پروژه ابر عمومی شما.
مثال خطا Error: UnauthorizedOperation: You are not authorized to perform this operation.
وضوح تصویر

بررسی کنید که به درستی در cli (رابط خط فرمان) ابر عمومی که از آن استفاده می‌کنید، احراز هویت شده باشید.

خدمات وب آمازون

AWS برای ایجاد نمونه‌ها و سایر سرویس‌های مورد نیاز برای سرویس تجمیع، به مجوزهای کاربر نیاز دارد. پس از اعمال این مجوز، باید بتوانید طرح terraform را اجرا کرده و بدون هیچ مشکلی اعمال کنید.

پلتفرم ابری گوگل

در Google Cloud، توجه داشته باشید که برای استقرار نیمه دوم Terraform، باید یک حساب کاربری سرویس را جعل هویت کنید. اگر این مرحله را نادیده بگیرید، ممکن است دستور terraform apply شما با شکست مواجه شود، زیرا حساب کاربری سرویس استقرار، تمام مجوزهای لازم برای ایجاد منابع را دارد. به مرحله 4 در «تنظیم محیط استقرار» در مستندات GitHub مراجعه کنید.

خطاهای بودجه حریم خصوصی

خطا PRIVACY_BUDGET_ERROR
علت این نشان می‌دهد که سرویس به دلیل خطایی در سرویس بودجه حریم خصوصی قادر به پردازش گزارش‌ها نبوده است.
بررسی وقتی دوباره کار را امتحان کردید تا ببینید آیا خطا متناوب بوده است یا خیر، از طریق فرم پشتیبانی فنی با ما تماس بگیرید.
خطا PRIVACY_BUDGET_AUTHORIZATION_ERROR
علت ممکن است از منبع گزارش‌دهی متفاوتی نسبت به آنچه که در زمان جذب نیرو ارائه داده‌اند، استفاده کنید.
بررسی

تأیید کنید که سایتی که در فیلد attribution_report_to از درخواست createJob ارسال می‌کنید، همان سایتی است که در هنگام ورود به سیستم ارسال شده است.

سایت باید با آنچه که ثبت شده است مطابقت داشته باشد یا زیردامنه آن باشد. توجه داشته باشید که ثبت دامنه در سرویس تجمیع در دامنه سطح بالا انجام می‌شود و همه زیردامنه‌ها پس از ثبت دامنه سطح بالا، واجد شرایط استفاده از سرویس تجمیع هستند.

خطا PRIVACY_BUDGET_AUTHENTICATION_ERROR
علت ممکن است از ARN قدیمی یا نادرست استفاده کنید.
بررسی پلتفرم ابری گوگل

بررسی کنید که حساب کاربری سرویس مورد استفاده در استقرار سرویس تجمیع شما با حساب کاربری سرویسی که در هنگام راه‌اندازی ارائه شده است، مطابقت داشته باشد. این حساب باید دقیقاً مطابقت داشته باشد، نه اینکه فقط متعلق به همان پروژه باشد.

خدمات وب آمازون

انتظار می‌رود که شما از همان هماهنگ‌کننده‌هایی که از طریق ایمیل برای شما ارائه شده‌اند استفاده کنید. اگر هنوز مشکل دارید، فایل auto.tfvars و اطلاعات مبدا گزارش خود را جمع‌آوری کرده و از طریق فرم پشتیبانی فنی با ما تماس بگیرید.

خطا PRIVACY_BUDGET_EXHAUSTED
علت خطا:
            "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: //
              Filename: privacy budget exhausted debugging information  \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": []
              },
              "finished_at": 
            }
          

مشکل اتمام بودجه حریم خصوصی زمانی اتفاق می‌افتد که سعی می‌کنید گزارشی را که شناسه مشترک آن قبلاً در یک دسته موفق قبلی گنجانده شده است، دسته‌بندی کنید. این خطا به دلیل قانون "عدم تکرار" رخ می‌دهد که در آن گزارش‌های قابل جمع‌آوری فقط مجاز به نمایش در یک دسته واحد هستند و فقط می‌توانند در یک گزارش خلاصه مشارکت داشته باشند.

به هر گزارش یک "شناسه مشترک" اختصاص داده می‌شود که شامل فیلدهای shared_info API، reporting_origin ، destination_site ، source_registration_time (بر اساس روز)، scheduled_report_time (بر اساس ساعت) و version خواهد بود. این بدان معناست که چندین گزارش می‌توانند متعلق به یک "شناسه مشترک" باشند، در صورتی که ویژگی‌های یکسانی از فیلد shared_info را به اشتراک بگذارند.

بررسی

توصیه می‌کنیم برای بررسی و رفع خطای خود، از پشتیبانی Privacy Budget Exhausted که از job response ارائه می‌شود، استفاده کنید. این یک فایل JSON کمکی جدید ارائه می‌دهد که امکان مشاهده گزارش‌هایی که در بروز خطا نقش داشته‌اند را فراهم می‌کند.

توجه داشته باشید که اگر به درستی دسته‌بندی کنید، ممکن است واجد شرایط بازیابی بودجه ( توضیح‌نامه ) باشید. پیشنهاد کنید که آنها توضیح‌نامه را بخوانند و فرم را پر کنند، اما توجه داشته باشید که برای بازیابی موفقیت‌آمیز بودجه و اجرای مجدد کار، درخواست آنها باید تأیید شود.

خطا DEBUG_SUCCESS_WITH_PRIVACY_BUDGET_EXHAUSTED
علت این نشان می‌دهد که شما در حال اجرای کار در حالت اشکال‌زدایی هستید. پارامترهای job_parameters در درخواست createJob شامل debug_run: true است. هنگامی که پرچم debug_run فعال باشد، می‌توانید گزارش را چندین بار برای اهداف اشکال‌زدایی اجرا کنید. این پیام خطا به شما اطلاع می‌دهد که اگر کار در حالت اشکال‌زدایی اجرا نمی‌شد، به دلیل اتمام بودجه حریم خصوصی گزارش، با شکست مواجه می‌شد. این خطا فقط در نسخه‌های v2.10.0 یا قبل از آن معتبر خواهد بود.
بررسی بدنه درخواست createJob شامل debug_run در job_parameters خواهد بود.
            {
              "job_request_id": "{job_request_id}",
              "input_data_blob_prefix": "{input_prefix}",
              "input_data_bucket_name": "{input_bucket}",
              "output_data_blob_prefix": "{output_prefix}",
              "output_data_bucket_name": "{output_bucket}",
              "job_parameters": {
                "output_domain_blob_prefix": "{output_domain_prefix}",
                "output_domain_bucket_name": "{output_domain_bucket}",
                "attribution_report_to": "{reporting_origin}",
                "debug_run": "true"
              }
            }
          

خطاهای زمان اجرای کار

خطا INVALID_JOB
نقطه پایانی createJob
علت این می‌تواند زمانی اتفاق بیفتد که اپسیلون حریم خصوصی اشکال‌زدایی ارائه شده در محدوده (0.64) نباشد، یا زمانی که پارامترهای کار اعتبارسنجی نشوند.
بررسی چه مقدار اپسیلونی استفاده شده است؟ چه پارامترهای کاری در درخواست createJob استفاده شده است و آیا آنها با محیط شما مطابقت دارند؟ آیا به درستی قالب بندی شده اند؟ اصلاحات لازم را انجام دهید و کار را دوباره امتحان کنید.
خطا INTERNAL_ERROR
نقطه پایانی getJob
علت می‌تواند یک مشکل قالب‌بندی باشد که باعث پردازش ناموفق برای دامنه خروجی یا گزارش‌ها می‌شود. همچنین می‌تواند مشکلی در استقرار سرویس تجمیع شما باشد.
بررسی تأیید کنید که مکان دامنه خروجی یک مسیر معتبر است. کار را دوباره امتحان کنید. اگر خطا همچنان ادامه داشت، فایل auto.tfvars و خروجی طرح Terraform را برای عیب‌یابی استقرار سرویس تجمیع آنها درخواست کنید.
خطا RESULT_WRITE_ERROR
نقطه پایانی getJob
علت این می‌تواند زمانی اتفاق بیفتد که نوشتن در دایرکتوری خروجی، چه به صورت موقت و چه به دلیل عدم وجود مجوز نوشتن در دایرکتوری، با شکست مواجه شود. توجه داشته باشید که خطاهای نوشتن، بودجه حریم خصوصی را مصرف می‌کنند و کار را نمی‌توان دوباره امتحان کرد. این می‌تواند به نتیجه خطای دیگری به نام PRIVACY_BUDGET_EXHAUSTED منجر شود.
بررسی آیا این خطا در هر کاری رخ می‌دهد یا فقط به صورت متناوب؟ اگر این خطا در هر کاری رخ می‌دهد، تأیید کنید که مجوزهای نوشتن را در دایرکتوری خروجی فعال کرده‌اید. اگر این یک خطای متناوب است، مجوزها باید صحیح باشند. این یک مشکل شناخته شده است که نوشتن گزارش‌های خلاصه می‌تواند با شکست مواجه شود اما بودجه حریم خصوصی همچنان مصرف می‌شود. در این صورت، می‌توانید درخواست بازیابی بودجه ( توضیح دهنده ) را بدهید.
مسئله هنگام اجرای یک کار و بازیابی توکن سرویس گواهی، با خطای 403 مواجه می‌شوید و کار همیشه با وضعیت "دریافت شده" (RECEIVED) برمی‌گردد.
خطا
            {
                "job_status": "RECEIVED",
                "request_received_at": "{utc timestamp}",
                "request_updated_at": "{utc timestamp}",
                "job_request_id": "0001",
                "input_data_blob_prefix": "reports/",
                "input_data_bucket_name": "{bucket_name}",
                "output_data_blob_prefix": "summary/",
                "output_data_bucket_name": "{bucket_name}",
                "postback_url": "",
                "job_parameters": {
                    "output_domain_bucket_name": "{bucket_name}",
                    "output_domain_blob_prefix": "output_domain/",
                    "attribution_report_to": 
                }
            }
          
وضوح تصویر

گیر کردن کارها در وضعیت RECEIVED و خطای 403 معمولاً زمانی رخ می‌دهد که حساب کاربری سرویس هنوز فعال نشده است. تأیید کنید که حساب کاربری سرویسی که استفاده می‌کنید با آنچه در درخواست فعال‌سازی ارائه کرده‌اید، مطابقت دارد. اگر درخواست فعال‌سازی را تکمیل نکرده‌اید، لطفاً فرم فعال‌سازی و فرم‌های ثبت‌نام را پر کنید.

پس از تأیید وضعیت ثبت‌نام و پذیرش ، بررسی کنید که چه اتفاقی برای شغل فعلی‌تان افتاده است.

خدمات وب آمازون

وقتی این اتفاق می‌افتد، احتمالاً AWS enclave اجرا نمی‌شود یا از کار افتاده است و بنابراین کارها انجام نمی‌شوند.

  1. به مدیر جلسه نمونه EC2 متصل شوید.
  2. این مستندات AWS را دنبال کنید که شامل مراحل زیر برای اتصال به Session Manager است.
  3. به مدیر کنسول AWS > EC2 > نمونه‌ها بروید.
  4. شناسه نمونه سرویس تجمیع در حال اجرا را انتخاب کنید.
  5. تب "Session Manager" > دکمه "Connect" را انتخاب کنید. این کار شما را به نمونه‌تان متصل می‌کند.
  6. پس از اجرای نمونه Enclave، دستور زیر را در ترمینال اجرا کنید:
    sudo nitro-cli describe-enclaves
    اگر این دستور آنطور که انتظار می‌رود گزارش‌ها را نشان نداد، قبل از امتحان دوباره، دستور زیر را اجرا کنید:
    sudo nitro-cli run-enclave --cpu-count=2 --memory=7000 --eif-path=/opt/google/worker/enclave.eif
  7. برای بررسی اینکه آیا AWS enclave از کار افتاده است یا خیر، دستور زیر را اجرا کنید: sudo journalctl -u aggregate-worker.service
  8. شما باید خروجی لاگ‌ها را در قالبی مانند زیر مشاهده کنید:
    Starting aggregate-worker.service - Watcher script for nitro enclave.
    در صورت وجود هرگونه خرابی و غیره، خطاها باید در اینجا قابل مشاهده باشند.
پلتفرم ابری گوگل

ممکن است گروه نمونه مدیریت‌شده (MIG) سالم نباشد. اگر این اولین راه‌اندازی است، یا adtech_setup Terraform را از بین برده و دوباره ایجاد کرده‌اید، تأیید کنید که حساب سرویس شما فعال شده است. اگر حساب سرویس فعال نشده باشد، MIGها فعال نخواهند بود.

  1. کنسول ابری، به موتور محاسبات > گروه‌های نمونه بروید
  2. ستون‌های وضعیت خود را بررسی کنید (علامت‌های سبز نشان‌دهنده‌ی سلامت هستند)
  3. روی یکی از گروه‌های نمونه کلیک کنید و برای کسب اطلاعات بیشتر در مورد مشکل، به تب خطاها (Errors) مراجعه کنید. برای دسترسی به اطلاعات سطح ماشین مجازی، روی نام نمونه (Instance) کلیک کنید.
  4. همچنین می‌توانید از ترمینال خود برای تعامل با گروه Instance و دریافت همان اطلاعات استفاده کنید. دستور list-errors را امتحان کنید:
    gcloud compute instance-groups managed list-errors --region=
    در ادامه یک نمونه خروجی آمده است.
                      INSTANCE_URL: https://www.googleapis.com/compute/v1/projects/aggservice-sandbox/zones/us-central1-c/instances/collector-operator-demo-env-67hd
                      ACTION: VERIFYING
                      ERROR_CODE: WAITING_FOR_HEALTHY_TIMEOUT_EXCEEDED
                      ERROR_MESSAGE: Waiting for HEALTHY state timed out (autohealingPolicy.initialDelay=200 sec) for instance projects/aggservice-sandbox/zones/us-central1-c/instances/collector-operator-demo-env-67hd and health check projects/aggservice-sandbox/global/healthChecks/operator-demo-env-collector-auto-heal-hc.
                      TIMESTAMP: 
                      INSTANCE_TEMPLATE: https://www.googleapis.com/compute/v1/projects/aggservice-sandbox/global/instanceTemplates/operator-demo-env-collector
                      VERSION_NAME: primary
                    
اگر همچنان با مشکل مواجه شدید، این را ذخیره کرده و به تیم ما ارائه دهید. به مراحل بعدی بروید.

آیا گزارش خلاصه شما طبق انتظار در حال تبدیل است؟

ممکن است شرایطی پیش بیاید که فراخوانی getJob شما موفقیت‌آمیز باشد، اما مشکلی در گزارش خلاصه‌ای که توسط سرویس تجمیع برگردانده می‌شود، وجود داشته باشد. گزارش خلاصه با فرمت AVRO است و باید به فرمت JSON تبدیل شود. پس از تبدیل به فرمت json، مشابه زیر خواهد بود.

{
  "bucket": "\u0005Y",
  "metric": 26308
}

اگر تبدیل AVRO با مشکل مواجه شد، سعی کنید از ابزارهای AVRO استفاده کنید و دستور زیر را روی گزارش AVRO اجرا کنید. java -jar avro-tools-1.11.1.jar tojson [report_name].avro > [report_name].json نسخه‌های پایدار را می‌توانید از اینجا دانلود کنید. اگر به کمک بیشتری نیاز دارید، به مراحل بعدی ما بروید.

مراحل بعدی

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

اگر راه‌حلی برای مشکل سرویس تجمیع خود مشاهده نکردید، با ثبت مشکل در گیت‌هاب یا ارسال فرم پشتیبانی فنی ، به ما اطلاع دهید.