אתם יכולים לשלוח אירועי שגיאה אל Error Reporting מאפליקציות PHP באמצעות ספריית Error Reporting ל-PHP. אפשר להשתמש בספריית Error Reporting ל-PHP כדי ליצור קבוצות שגיאות במקרים הבאים:
- קטגוריה ביומן שמכילה את רשומות היומן שלכם כוללת מפתחות הצפנה בניהול הלקוח (CMEK).
- מאגר היומנים עומד באחד מהתנאים הבאים:
- קטגוריית היומן מאוחסנת באותו פרויקט שבו נוצרו רשומות היומן.
- הרשומות ביומן הועברו לפרויקט, ואז הפרויקט הזה אחסן את הרשומות ביומן בקטגוריית יומנים שבבעלותו.
- רוצים לדווח על אירועי שגיאה בהתאמה אישית.
השירות Error Reporting משולב עם חלק מהשירותים, כמו פונקציות של Cloud Run, App Engine, Compute Engine ו-Google Kubernetes Engine. Google Cloud ב-Error Reporting מוצגים אירועי השגיאות שנרשמים ב-Cloud Logging על ידי אפליקציות שפועלות בשירותים האלה. מידע נוסף זמין בקטע הפעלה ב Google Cloud בדף הזה.
אפשר גם לשלוח אירועי שגיאה אל Error Reporting באמצעות Logging. במאמר פורמט של רשומה ביומן לדיווח על אירועי שגיאה מוסבר על הדרישות בנוגע לפורמט הנתונים.
לפני שמתחילים
- נכנסים לחשבון Google Cloud . אם אתם משתמשים חדשים ב- Google Cloud, צרו חשבון כדי שתוכלו להעריך את הביצועים של המוצרים שלנו בתרחישים מהעולם האמיתי. לקוחות חדשים מקבלים בחינם גם קרדיט בשווי 300$ להרצה, לבדיקה ולפריסה של עומסי העבודה.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
Enable the Error Reporting API .
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles.-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
Enable the Error Reporting API .
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles.
התקנת ספריית הלקוח
ספריית Error Reporting ל-PHP מאפשרת לכם לעקוב אחרי אירועי שגיאה שדווחו על ידי אפליקציות PHP שפועלות כמעט בכל מקום, ולצפות בהם.
מידע נוסף על התקנה זמין במסמכי התיעוד של ספריית Error Reporting ל-PHP. אפשר גם לדווח על בעיות באמצעות הכלי למעקב אחרי בעיות.
הגדרת ספריית הלקוח
אפשר להתאים אישית את ההתנהגות של ספריית Error Reporting ל-PHP. רשימת אפשרויות ההגדרה האפשריות מופיעה במאמר בנושא הגדרת הספריה.
הפעלת אפליקציות ב- Google Cloud
כדי ליצור קבוצות שגיאות באמצעות projects.events.report, לחשבון השירות שלכם נדרש התפקיד Error Reporting Writer (roles/errorreporting.writer).
חלק משירותי Google Cloud Google Cloud מעניקים באופן אוטומטי את התפקיד Error Reporting Writer (roles/errorreporting.writer) לחשבון השירות המתאים. עם זאת, בשביל שירותים מסוימים, צריך להעניק את התפקיד הזה לחשבון השירות המתאים.
פונקציות Cloud Run ו-Cloud Run
לחשבון השירות שמוגדר כברירת מחדל ב-Cloud Run יש את ההרשאות של התפקיד Error Reporting Writer (roles/errorreporting.writer).
אפשר להשתמש בספריית Error Reporting ל-PHP בלי לספק באופן מפורש פרטי כניסה.
Cloud Run מוגדר לשימוש ב-Error Reporting באופן אוטומטי. חריגים שלא טופלו ב-JavaScript יופיעו ביומן ויתבצע עיבוד שלהם על ידי Error Reporting ללא צורך בשימוש בספריית Error Reporting ל-PHP.
סביבה גמישה של App Engine
ב-App Engine, לחשבון השירות שמוגדר כברירת מחדל מוענק באופן אוטומטי התפקיד 'כתיבה ביומן' (roles/errorreporting.writer).
אפשר להשתמש בספריית Error Reporting ל-PHP בלי לספק באופן מפורש פרטי כניסה.
כדי להפעיל את Error Reporting בסביבה הגמישה של App Engine, פועלים לפי השלבים הבאים:
מתקינים את הספריות הנדרשות באמצעות הפקודה הבאה:
$ composer require google/cloud-error-reporting
מוסיפים את השורה הבאה לקטע
runtime_configב-app.yaml:
לאחר מכן, הספרייה אוספת באופן אוטומטי את כל השגיאות והחריגים שלא נתפסו ל-Error Reporting. אם אתם משתמשים במסגרת אינטרנט שמתקינה מטפלים משלה בחריגים, תוכלו לקרוא מידע נוסף בקטע 'שילובים של מסגרות'.
Google Kubernetes Engine
כדי להשתמש ב-Error Reporting עם Google Kubernetes Engine, צריך לבצע את הפעולות הבאות:
מוודאים שלחשבון השירות שבו ישתמש הקונטיינר הוקצה התפקיד 'כתיבה ב-Error Reporting' (
roles/errorreporting.writer).אתם יכולים להשתמש בחשבון השירות שמוגדר כברירת מחדל ב-Compute Engine או בחשבון שירות מותאם אישית.
מידע על הקצאת תפקידים מופיע במאמר ניהול הגישה לפרויקטים, לתיקיות ולארגונים.
יוצרים את האשכול ומעניקים לאשכול את
cloud-platformהיקף הגישה.לדוגמה, בפקודת היצירה הבאה מצוינים היקף הגישה
cloud-platformוחשבון שירות:gcloud container clusters create CLUSTER_NAME --service-account SERVICE_ACCT_NAME --scopes=cloud-platform
Compute Engine
כדי להשתמש ב-Error Reporting עם מכונות וירטואליות ב-Compute Engine, צריך לבצע את הפעולות הבאות:
מוודאים שלחשבון השירות שבו המכונה הווירטואלית משתמשת הוקצה התפקיד 'כותב דוחות שגיאות' (
roles/errorreporting.writer).אתם יכולים להשתמש בחשבון השירות שמוגדר כברירת מחדל ב-Compute Engine או בחשבון שירות מותאם אישית.
מידע על הקצאת תפקידים מופיע במאמר ניהול הגישה לפרויקטים, לתיקיות ולארגונים.
-
נכנסים לדף VM instances במסוף Google Cloud :
אם משתמשים בסרגל החיפוש כדי למצוא את הדף הזה, בוחרים את התוצאה שבה כותרת המשנה היא Compute Engine.
בוחרים את מופע ה-VM שרוצים להעניק לו את
cloud-platformהיקף הגישה.לוחצים על עצירה ואז על עריכה.
בקטע Identity and API access בוחרים חשבון שירות עם התפקיד Error Reporting Writer (
roles/errorreporting.writer).בקטע Access scopes בוחרים באפשרות Allow full access to all Cloud APIs ושומרים את השינויים.
לוחצים על התחלה/המשך.
דוגמה
1. מתקינים ספריות ענן באמצעות הפקודה הבאה:
$ composer require google/cloud-error-reporting
php.ini, כאשר WORKSPACE
הוא הנתיב המוחלט לתיקיית השורש של סביבת העבודה:
auto_prepend_file='/WORKSPACE/vendor/google/cloud-error-reporting/src/prepend.php'
קובץ ה-prepend הזה מתקין מטפל בחריגים ומטפל בשגיאות, ששולחים שגיאות באופן אוטומטי ל-Error Reporting.
אם אתם משתמשים בסביבה גמישה של App Engine, תוכלו לעיין בקטע סביבה גמישה של App Engine בדף הזה.
הרצת אפליקציות בסביבת פיתוח מקומית
כדי להשתמש בספריית Error Reporting ל-PHP בסביבת פיתוח מקומית, למשל כדי להריץ את הספרייה בתחנת העבודה שלכם, אתם צריכים לספק לספריית Error Reporting ל-PHP את פרטי הכניסה המקומיים שמוגדרים כברירת מחדל לאפליקציה. מידע נוסף זמין במאמר אימות ל-Error Reporting.
כדי להשתמש בדוגמאות של PHP שבדף הזה בסביבת פיתוח מקומית, מתקינים ומפעילים את ה-CLI של gcloud, ואז מגדירים את Application Default Credentials באמצעות פרטי הכניסה של המשתמש.
-
התקינו את ה-CLI של Google Cloud.
-
אם אתם משתמשים בספק זהויות חיצוני (IdP), קודם אתם צריכים להיכנס ל-CLI של gcloud באמצעות המאגר המאוחד לניהול זהויות.
-
אם אתם משתמשים במעטפת מקומית, אתם צריכים ליצור פרטי כניסה לאימות מקומי עבור חשבון המשתמש:
gcloud auth application-default login
אם אתם משתמשים ב-Cloud Shell, אין צורך לבצע את הפעולה הזו.
אם מוחזרת שגיאת אימות ואתם משתמשים בספק זהויות חיצוני (IdP), ודאו ש נכנסתם ל-CLI של gcloud באמצעות המאגר המאוחד לניהול זהויות.
מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.
מפתחות API נתמכים גם על ידי projects.events.report method.
אם אתם רוצים להשתמש במפתחות API לצורך אימות, לא צריך להגדיר קובץ מקומי של Application Default Credentials.
מידע נוסף זמין במאמר בנושא יצירת מפתח API במסמכי האימות של Google Cloud .
הצגת קבוצות של שגיאות
נכנסים לדף Error Reporting במסוף Google Cloud :
אפשר גם להשתמש בסרגל החיפוש כדי למצוא את הדף הזה.
מידע נוסף זמין במאמר בנושא הצגה וסינון של קבוצות שגיאות.
שילובים של Framework
חלק ממסגרות האינטרנט מבטלות את הטיפול בחריגים. בהמשך מופיעות דוגמאות להפעלת Error Reporting עם Laravel ו-Symfony. במסגרות אחרות, אפשר להשתמש ב-Google\Cloud\ErrorReporting\Bootstrap::exceptionHandler כמטפל בחריגים.
Laravel
עורכים את הפונקציה report בקובץ app/Exceptions/Handler.php באופן הבא:
בנוסף, צריך להוסיף הצהרה של שורה אחת use בתחילת הקובץ:
use Google\Cloud\ErrorReporting\Bootstrap;
Symfony
יוצרים קובץ חדש src/AppBundle/EventSubscriber/ExceptionSubscriber.php עם התוכן הבא: