טריגרים של צד שני עם Cloud Logging
הרבה Google Cloud אירועים מתועדים ביומני הביקורת של Cloud. אפשר לסנן את היומנים האלה ולהעביר אותם לנושאים ב-Pub/Sub באמצעות יעדים. אחר כך, נושאי Pub/Sub האלה יכולים לשלוח התראות שמפעילות פונקציות Cloud Run. כך תוכלו ליצור אירועים בהתאמה אישית מכל שירות שמפיק יומני ביקורת. Google Cloud
הגדרות אישיות
כדי להריץ את הדוגמה במאמר הזה, תצטרכו נושא Pub/Sub ויעד (sink) ב-Cloud Logging. בדוגמה נעשה שימוש ביומנים כדי להעביר יומני ביקורת של Cloud לפונקציית Cloud Run.
מבנה האירוע
בדומה לכל הפונקציות שמופעלות על ידי Pub/Sub, פונקציות שמופעלות על ידי רשומות ביומן של Cloud מקבלות אובייקט PubsubMessage שהפרמטר data שלו הוא מחרוזת עם קידוד base64. באירועים של יומן Cloud, פענוח הערך הזה מחזיר את הרשומה הרלוונטית ביומן כמחרוזת JSON.
קוד לדוגמה
אתם יכולים להשתמש בפונקציה שמופעלת על ידי Pub/Sub כדי לזהות יומני Cloud מיוצאים ולהגיב להם:
Node.js
Python
Go
Java
פריסת פונקציה
כדי לפרוס את הפונקציה, מריצים את הפקודה הבאה:
Node.js
gcloud functions deploy processLogEntry \ --runtime nodejs22 \
--trigger-topic YOUR_PUBSUB_TOPIC/
FLAGS...
משתמשים בדגל --runtime כדי לציין את מזהה זמן הריצה של גרסת Node.js נתמכת להרצת הפונקציה.
Python
gcloud functions deploy process_log_entry \ --runtime python312 \
--trigger-topic YOUR_PUBSUB_TOPIC/
FLAGS...
משתמשים בדגל --runtime כדי לציין את מזהה זמן הריצה של גרסת Python נתמכת להרצת הפונקציה.
Go
gcloud functions deploy ProcessLogEntry \ --runtime go121 \
--trigger-topic YOUR_PUBSUB_TOPIC/
FLAGS...
כדי לציין את מזהה זמן הריצה של גרסת Go נתמכת להרצת הפונקציה, משתמשים בדגל --runtime.
Java
gcloud functions deploy java-log-function \ --entry-point StackdriverLogging \ --runtime java17 \ --memory 512MB \
--trigger-topic YOUR_PUBSUB_TOPIC/
FLAGS...
משתמשים בדגל --runtime כדי לציין את מזהה זמן הריצה של גרסת Java נתמכת להרצת הפונקציה.
הפעלת פונקציה
כשנוצר רשומה ביומן של Cloud שתואמת לאחד מהמסננים שלכם, אמורות להופיע רשומות יומן תואמות לפונקציה שלכם:
Method: METHOD Resource: projects/YOUR_GCLOUD_PROJECT/... Initiator: YOUR_EMAIL_ADDRESS