הרבה Google Cloud אירועים מתועדים ביומני הביקורת של Cloud. אפשר לסנן את היומנים האלה ולהעביר אותם לנושאים ב-Pub/Sub באמצעות יעדים. אחר כך, נושאי Pub/Sub האלה יכולים לשלוח התראות שמפעילות פונקציות Cloud Run. אפשר ליצור אירועים מותאמים אישית מכל Google Cloud שירות שמפיק יומני ביקורת.
בדף הזה מוצגת דוגמה להפעלת פונקציות מתוך רשומות ביומן שמועברות לנושא Pub/Sub.
מבנה האירועים של פונקציות שמופעלות על ידי Pub/Sub
בדומה לכל הפונקציות שמופעלות על ידי Pub/Sub, פונקציות שמופעלות על ידי רשומות ביומן של Cloud Logging מקבלות אובייקט PubsubMessage שהפרמטר data שלו הוא מחרוזת עם קידוד base64. באירועים ביומן של Cloud Logging, פענוח הערך הזה מחזיר את הרשומה הרלוונטית ביומן כמחרוזת JSON.
לפני שמתחילים
הקוד לדוגמה מעביר את יומני הביקורת של Cloud לפונקציית Cloud Run. לפני שמריצים את הקוד לדוגמה, צריך:
במדריך בנושא טריגרים ב-Pub/Sub מפורטים ממשקי ה-API שצריך להפעיל והתפקידים הנדרשים לפריסת פונקציות שמופעלות על ידי Pub/Sub.
קוד לדוגמה
אתם יכולים להשתמש בפונקציה שמופעלת על ידי Pub/Sub כדי לזהות יומנים של Cloud Logging שיוצאו ולהגיב להם:
Node.js
Python
Go
Java
פריסה והפעלה של פונקציה
כדי להגדיר טריגר במהלך פריסת הפונקציה:
מריצים את הפקודה הבאה בספרייה שמכילה את הקוד לדוגמה כדי לפרוס את הפונקציה:
Node.js
gcloud run deploy nodejs-log-function \ --source . \ --function processLogEntry \ --base-image nodejs20 \ --region REGIONPython
gcloud run deploy python-log-function \ --source . \ --function process_log_entry \ --base-image python312 \ --region REGIONGo
gcloud run deploy go-log-function \ --source . \ --function ProcessLogEntry \ --base-image go122 \ --region REGIONJava
gcloud run deploy java-log-function \ --source . \ --function StackdriverLogging \ --base-image java21 \ --region REGIONמחליפים את:
REGION עם Google Cloud האזור שבו רוצים לפרוס את הפונקציה. לדוגמה,
europe-west1.הדגל
--functionמציין את נקודת הכניסה לפונקציה בקוד המקור לדוגמה. זה הקוד ש-Cloud Run מריץ כשהפונקציה פועלת. הערך של הדגל הזה צריך להיות שם של פונקציה או שם מלא של מחלקה שקיימים בקוד המקור.הדגל
--base-imageמציין את סביבת קובץ האימג' הבסיסי של הפונקציה. מידע נוסף על תמונות בסיס ועל החבילות שכלולות בכל תמונה זמין במאמר תמונות בסיס של סביבות ריצה.
מריצים את הפקודה הבאה כדי ליצור טריגר שמסנן אירועים:
gcloud eventarc triggers create TRIGGER_NAME \ --location=EVENTARC_TRIGGER_LOCATION \ --destination-run-service=SERVICE \ --destination-run-region=REGION \ --event-filters="type=google.cloud.pubsub.topic.v1.messagePublished" \ --service-account=PROJECT_NUMBER-compute@developer.gserviceaccount.comמחליפים את:
TRIGGER_NAME בשם של הטריגר.
EVENTARC_TRIGGER_LOCATION עם המיקום של טריגר Eventarc. באופן כללי, המיקום של טריגר Eventarc צריך להיות זהה למיקום של Google Cloud המשאב שרוצים לעקוב אחרי האירועים שלו. ברוב התרחישים, כדאי גם לפרוס את הפונקציה באותו אזור. מידע נוסף על מיקומי טריגרים של Eventarc זמין במאמר הסבר על מיקומי Eventarc.
SERVICE בשם הפונקציה שאתם פורסים.
REGION עם האזור של פונקציית Cloud Run.
PROJECT_NUMBER במספר הפרויקט. Google Cloud טריגרים של Eventarc מקושרים לחשבונות שירות כדי לשמש כזהות כשמפעילים את הפונקציה. לחשבון השירות של טריגר Eventarc צריכה להיות הרשאה להפעלת הפונקציה. כברירת מחדל, Cloud Run משתמש בחשבון השירות שמוגדר כברירת מחדל של Compute.
הדגל
--event-filtersמציין את מסנני האירועים שהטריגר עוקב אחריהם. אירוע שתואם לכלevent-filters, המסננים מפעילים קריאות לפונקציה. לכל טריגר צריך להיות סוג אירוע נתמך. אי אפשר לשנות את סוג המסנן של האירוע אחרי שיוצרים אותו. כדי לשנות את סוג המסנן של האירוע, צריך ליצור טריגר חדש ולמחוק את הטריגר הישן. אפשר גם לחזור על הדגל--event-filtersעם מסנן נתמך בצורהATTRIBUTE=VALUEכדי להוסיף עוד מסננים.
רשומה ביומן Cloud
כשנוצרת רשומה ביומן של Cloud שתואמת לאחד מהמסננים שלכם, הרשומות המתאימות ביומן של הפונקציה בGoogle Cloud מסוף אמורות להיראות כך:
Method: METHOD Resource: projects/YOUR_GCLOUD_PROJECT/... Initiator: YOUR_EMAIL_ADDRESS