נושאים במדריך:
אבחון התשתית
בדף הזה מוסבר איך לפתור בעיות בתשתית של שירות הצבירה ולאמת אותה. פועלים לפי השלבים לזיהוי בעיות ולפתרון שלהן.
פתרון בעיות ב-Terraform
Terraform, פלטפורמת התשתית כקוד (IaC) שנוצרה על ידי HashiCorp, היא הכלי העיקרי לפריסת שירות הצבירה בענן הציבורי שבחרתם. אם לא התקנתם את Terraform, תוכלו לעיין במסמכי HashiCorp בנושא השגת ממשק ה-CLI באופן מקומי.
אם אתם צריכים לעבור בין גרסאות של Terraform, כדאי לכם להתקין את tfenv.
אם לא מצאתם פתרון לבעיה בשירות הצבירה, אתם יכולים לדווח לנו על כך באמצעות פתיחת בעיה ב-GitHub או שליחת טופס תמיכה טכנית.
אם אתם מעדיפים להחליף את Terraform באופן ידני:
rm -rf $(which terraform)
wget https://releases.hashicorp.com/terraform/1.2.3/terraform_1.2.3_linux_amd64.zip
unzip terraform_1.2.3_linux_amd64.zip
mv terraform /usr/local/bin/terraform
terraform --version
אם שגיאה ב-Terraform לא ברורה, אפשר להציג את הפלט על ידי הפעלת רישום ביומן של Terraform ברמה TRACE.
Google Cloud
השימוש ב-Terraform עם Google Cloud פותח על ידי HashiCorp ו-Google במשותף. אם יש לכם שאלות נוספות או שאתם צריכים עזרה בפתרון בעיות, תוכלו לפנות אל התמיכה של Cloud Terraform לקבלת מידע נוסף, או לעבור אל הקטע של Google בפורטל Hashicorp Discuss.
Amazon Web Services
מסמכי תיעוד לניפוי באגים זמינים באתר של AWS. מומלץ גם לעיין בחלק של AWS בפורטל HashiCorp Discuss.
לשאלות נוספות לגבי Terraform, אפשר להיעזר בפורטל הקהילה של HashiCorp. אם אתם רוצים עצות כלליות לפתרון בעיות ב-Terraform, תוכלו להיעזר במסמכי התיעוד לניפוי באגים של Terraform.
צריך להיזהר מאוד כשמשנים את הספריות האלה, כי אם הן יוסרו, Terraform לא יזהה יותר את המצב. המערכת תנסה להקצות מחדש את כל המשאבים ותציג שגיאה אם יש משאב עם אותו שם בדיוק. אם הבעיה נמשכת, אפשר לפנות אלינו באמצעות טופס התמיכה הטכנית.
צריך להיזהר מאוד כשמשנים את הספריות האלה, כי אם הן יוסרו, Terraform לא יזהה יותר את המצב. המערכת תנסה להקצות מחדש את כל המשאבים ותציג שגיאה אם יש משאב עם אותו שם בדיוק. אם הבעיה נמשכת, אפשר לפנות אלינו באמצעות טופס התמיכה הטכנית.
אימות ההגדרה של Cloud
צריך לוודא שהתשתית של שירות הצבירה בענן הציבורי שבחרתם נפרסה בצורה תקינה. כדי לעשות את זה, נשתמש בדוחות ניפוי באגים לדוגמה ונריץ עבודה במצב ניפוי באגים. אם שירות הצבירה מצליח לקבל את בקשת ה-API ולהגיב, אנחנו יודעים שהוא פועל. אם עדיין לא הגדרתם את זה, מומלץ להשתמש ב-Postman או ב-cURL כדי להגדיר את קריאות ה-API לשירות הצבירה. חשוב לשים לב שצריך להשבית את מצבי הניפוי באגים או להגדיר אותם כ-false במהלך פעולות הצבירה הרגילות.
בנוסף לשלבים הבאים, כדי לאמת עוד יותר את התשתית של שירות הצבירה, צריך לבדוק את כל רכיבי הענן שמוקצים בענן הציבורי.
שלבים
כדי ליצור דוחות ניפוי באגים לדוגמה וקבצים של דומיינים לפלט, פועלים לפי השלבים הרלוונטיים ב-codelabs:
- Google Cloud: פועלים לפי שלבים 3.1.1 עד 3.1.4 ב-Google Cloud Codelab בנושא שירות צבירה.
- Amazon Web Services: פועלים לפי שלבים 4.1 עד 4.4 של ה-Codelab של Aggregation Service ב-AWS
מריצים בקשת
createJobעם הגוף הזה, ומחליפים את ה-placeholders המודגשים:{ "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>", "job_parameters": { "output_domain_blob_prefix": "<output_domain_folder>/<output_domain>.avro", "output_domain_bucket_name": "<output_domain_bucket_name>", "attribution_report_to": "<reporting_origin_domain>", "report_error_threshold_percentage": "10", // example value "debug_run": "true" // optional, but should be false by default } }מריצים בקשת
getJobכדי לראות את התשובה. אם אתם מקבלים את התגובה הבאה, המשמעות היא ש-Aggregation Service נפרס בצורה תקינה.{ "job_status": "FINISHED", "request_received_at": <utc_timestamp>, "request_updated_at": <utc_timestamp>, "job_request_id": "<job_request_id>", "input_data_blob_prefix": "<report_folder>/<input_report_prefix>.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": "<return_code_and_message>", "return_message": "Aggregation job successfully processed", "error_summary": { "error_counts": [], "error_messages": [] }, "finished_at": <utc_timestamp> }, "job_parameters": { "debug_run": "true", // optional, but should be false by default "output_domain_bucket_name": "<output_domain_bucket_name>", "output_domain_blob_prefix": "<output_domain_folder>/<output_domain>.avro", "attribution_report_to": "<reporting_origin_domain>" }, "request_processing_started_at": <utc_timestamp> }
אם לא קיבלתם תשובה עם job_status: FINISHED, תוכלו לאסוף מידע נוסף על ידי מעבר למשאב Compute Engine או EC2 של הענן הציבורי שבחרתם. בודקים את המופע של שירות הצבירה, בודקים את היומנים ורושמים את המידע שמופיע בין TEE container launcher initiating לבין TEE container launcher exiting כדי לספק אותו לצוות התמיכה הטכנית שלנו.
Google Cloud
- עוברים אל Google Cloud: Compute Engine.
- לוחצים על VM instances (מופעי מכונות וירטואליות) ובוחרים את המופע של שירות הצבירה.
- לוחצים על פרטים > יומנים > רישום ביומן (או מחפשים את Logs Explorer).
Amazon Web Services
- עוברים אל Amazon Web Services: EC2 Enclave.
- לוחצים על EC2 instances (מופעי EC2) ובוחרים את המופע של שירות הצבירה.
- לוחצים על פעולות > מעקב ופתרון בעיות > קבלת יומן המערכת.
בודקים אם יש התאמה בין ההתראות על השגיאות לבין ההנחיות הציבוריות שלנו ב-GitHub.
הערה: אם שדרגתם לאחרונה את הגרסה הנוכחית של Aggregation Service, יכול להיות שיחלפו כמה שעות עד שתהליך ההקצאה המלא יסתיים ותמונת המופע הנכונה תופיע במופע הסופי של שירות המחשוב. אם זה לא המצב אצלכם, אתם יכולים לפנות אלינו.
השלבים הבאים
אם לא מצאתם פתרון לבעיה בשירות הצבירה, אתם יכולים להודיע לנו על כך על ידי שליחת פנייה ב-GitHub או מילוי טופס התמיכה הטכנית.