המסמך הזה מיועד למומחי Cloud Architect ולמפתחי תוכנה שרוצים ליצור צינור אוטומציה כדי להשתמש ב-Active Assist בארגון שלהם Google Cloud . המאמר הזה הוא חלק מסדרה שדנה בדפוסי ארכיטקטורה שארגונים יכולים להשתמש בהם כדי לבצע אופטימיזציה של השימוש בענן בהיקף גדול באמצעות Active Assist. הסדרה מורכבת מהחלקים הבאים:
- תבניות לשימוש ב-Active Assist בהיקף נרחב
- שימוש בפייפליינים בלי שרת (serverless) באמצעות Active Assist (המסמך הזה)
- שימוש בשרשרת הכלים של GKE Enterprise עם Active Assist
במדריך הזה נסביר איך להשתמש ב Google Cloud טכנולוגיות serverless כדי ליצור צינור אוטומציה לאחזור ולעיבוד של המלצות מ-Active Assist. אתם מבססים את ההמלצות על הכללים העסקיים שהוגדרו על ידי הארגון שלכם. צינור האוטומציה שהגדרתם במדריך הזה עוזר לכם לעבוד עם Active Assist בהיקף גדול, תוך שמירה על תהליך בדיקה והפעלה בהובלת הצוות. הגישה הזו שימושית כשרוצים להרחיב את השימוש בחבילת Active Assist בארגון, אבל לשמור על שליטה בתהליך הבדיקה וההפעלה בתוך הצוותים. הוא מציע חלופה לשימוש בפייפליין של אינטגרציה רציפה (CI) ופיתוח רציף (CD).
הארכיטקטורה שמוצגת במדריך הזה היא כללית, ואפשר להרחיב אותה כדי שתפעל עם מוצרים אחרים ללא שרתים. במדריך הזה אנחנו יוצאים מנקודת הנחה שאתם מכירים את הטכנולוגיות הבאות: Google Cloud
כדי להשלים את המדריך הזה, צריך חשבון ב-Slack או בכלי דומה לעיבוד כרטיסים או להצגת התראות. הכלי צריך להיות מוגדר במחשב ומוכן לשימוש.
ארכיטקטורה
הארכיטקטורה שמוצגת במדריך הזה היא מודולרית, ולכן אפשר להתאים את רכיב ההתראות לדרישות של העסק. במדריך הזה מוסבר איך ליצור התראות ולשלוח אותן ל-Slack. אפשר גם לבחור לשלוח התראות ל-Pub/Sub או לכל כלי אחר לעיבוד התראות או כרטיסים.
בתרשים הארכיטקטורה הבא מוצגים הרכיבים שבהם משתמשים במדריך הזה:
הארכיטקטורה כוללת את הרכיבים הבאים:
- שירות Cloud Run שמופעל על ידי מתזמן במרווחי זמן קבועים. השירות מפעיל את Recommender APIs על ידי קריאת המטא-נתונים (מזהי פרויקטים וסוגי המלצות) שמוגדרים ונשמרים באוסף Firestore.
- נושא ב-Pub/Sub שההמלצות של Active Assist נדחפות אליו ומעובדות בו.
- שירות Cloud Run שני שמנתח את ההמלצות של Active Assist. השירות הזה קובע איך המלצות מעובדות על סמך הכללים העסקיים שהוגדרו על ידי הארגון שלכם ונשמרו באוסף Firestore.
- שני אוספים של Firestore לאחסון המטא-נתונים העסקיים והכללים העסקיים. האוספים ב-Firestore פועלים באופן הבא:
- האוסף הראשון מאחסן את המטא-נתונים העסקיים שרלוונטיים לאחזור ההמלצות של Active Assist. במדריך הזה, המאפיינים
recommendation type,Google Cloud project IDsו-locationsמשמשים כמטא-נתונים של העסק. שירותrecommendation-collectorCloud Run משתמש במאפיינים האלה כדי לקבוע אילו סוגי המלצות יאוחזרו. - האוסף השני מכיל כללים עסקיים שמוחלים כשמעבדים המלצות.
- האוסף הראשון מאחסן את המטא-נתונים העסקיים שרלוונטיים לאחזור ההמלצות של Active Assist. במדריך הזה, המאפיינים
מטרות
- יוצרים שירות לדוגמה ב-Cloud Run כדי לאחזר המלצות של Active Assist לפרויקט לדוגמה ולדחוף אותן לנושא Pub/Sub.
- יוצרים שתי קולקציות ב-Firestore לאחסון של מטא-נתונים לדוגמה וכללים עסקיים, בהתאמה.
- יוצרים שירות שני ב-Cloud Run כדי לעבד המלצות בהתאם לכללים העסקיים לדוגמה שמוגדרים במדריך הזה.
- יוצרים ערוץ ב-Slack שאליו שירות Cloud Run ישלח המלצות לדוגמה מ-Active Assist.
- בודקים את הצינור מקצה לקצה באמצעות המלצות לדוגמה של Active Assist.
עלויות
במסמך הזה משתמשים ברכיבים הבאים של Google Cloud, והשימוש בהם כרוך בתשלום:
כדי להעריך את ההוצאות בהתאם לתחזית השימוש שלכם, אתם יכולים להיעזר במחשבון העלויות.
כשמסיימים את המשימות שמתוארות במסמך הזה אפשר למחוק את המשאבים שיצרתם כדי להימנע מחיובים נוספים. מידע נוסף זמין בקטע הסרת המשאבים.
לפני שמתחילים
-
נכנסים לדף לבחירת הפרויקט במסוף Google Cloud .
-
בוחרים או יוצרים Google Cloud פרויקט.
תפקידים שנדרשים כדי לבחור או ליצור פרויקט
- Select a project: כדי לבחור פרויקט לא צריך תפקיד IAM ספציפי – אפשר לבחור כל פרויקט שקיבלתם בו תפקיד.
-
יצירת פרויקט: כדי ליצור פרויקט, צריך את התפקיד Project Creator (יצירת פרויקטים) (
roles/resourcemanager.projectCreator), שכולל את ההרשאהresourcemanager.projects.create. איך מקצים תפקידים
- רושמים את מזהה הפרויקט של כלי ניהול ההמלצות. Google Cloud תצטרכו את המזהה הזה בקטע הבא בנושא הגדרת הסביבה.
-
מפעילים את ממשקי ה-API של Cloud Build, Firestore, App Engine, Pub/Sub, Cloud Run, Cloud Scheduler ו-Cloud Source Repositories.
במדריך הזה משתמשים בפרטי הכניסה של האפליקציה שמוגדרים כברירת מחדל. אם מוצגת בקשה ליצור פרטי כניסה בדף הוספת פרטי כניסה לפרויקט, לוחצים על ביטול.תפקידים שנדרשים להפעלת ממשקי API
כדי להפעיל ממשקי API, צריך את תפקיד ה-IAM 'אדמין של Service Usage' (
roles/serviceusage.serviceUsageAdmin), שכולל את ההרשאהserviceusage.services.enable. איך מקצים תפקידים -
יוצרים את הפריטים הבאים:
- ערוץ לדוגמה ב-Slack.
- אפליקציית Slack לדוגמה ו-webhook נכנס כדי לקבל התראות שנוצרו על ידי מנוע בשם
recommendation-rules-engine. תגדירו את המנוע בהמשך המדריך הזה.
אחרי שיוצרים אפליקציית Slack וכתובת URL של webhook נכנס, צריך לרשום את כתובת ה-URL כי נצטרך אותה בהמשך המדריך הזה.
פיתוח צינור עיבוד הנתונים ללא שרת
בקטע הזה יוצרים את הרכיבים שדרושים לבניית צינור הנתונים ללא שרת. הפלטפורמה יוצרת המלצות של Active Assist על סמך דפוסי שימוש ומדדים של המערכת. בהתאם להמלצות שנוצרות, כל קטגוריית המלצות עשויה להשתמש בתקופת זמן שונה כברירת מחדל מהעבר כדי לנתח את נתוני השימוש והמדדים.
אם יש לכם פרויקט לדוגמה Google Cloud עם משאבים קיימים והמלצות של Active Assist, אתם יכולים להריץ את צינור עיבוד הנתונים כדי לעבד את ההמלצות האלה אחרי שתבצעו את השינויים המתאימים בקוד לדוגמה שסופק.
יצירת אוספים ב-Firestore
בקטע הזה, יוצרים שתי קולקציות של Firestore.
האוסף הראשון, activeassist-metadata, מאחסן את המטא-נתונים של העסק שרלוונטיים לאחזור ההמלצות של Active Assist. האוסף השני, activeassist-business-rules, מאחסן את הכללים העסקיים שמוחלים כשצינור הנתונים מעבד המלצות.
כשמנתחים המלצות של Active Assist, על סמך הכללים העסקיים באוסף Firestore, נוצרת התראה ונשלחת, או שההמלצה מוחלת באופן אוטומטי על המשאב הרלוונטי Google Cloud.
יצירת האוסף activeassist-metadata
נכנסים לדף Firestore במסוף Google Cloud .
אם עדיין אין לכם מסד נתונים של Firestore, צריך ליצור אחד. לחלופין, אם כבר יש לכם מסד נתונים של Firestore, אפשר לדלג לשלב הבא.
יוצרים את מסד הנתונים:
- כדי להפעיל את Firestore, לוחצים על בחירת מצב מקורי.
- בוחרים מיקום אזורי שקרוב לאזור שבו שירותי Cloud Run פועלים.
- לוחצים על יצירת מסד נתונים. ההגדרה תימשך כמה רגעים.
בדף Firestore, לוחצים על Start Collection (התחלת אוסף).
בשדה מזהה האוסף, מזינים את הערך
activeassist-metadata.ממלאים את השדות כמו שמופיע בטבלה הבאה. כדי להוסיף את השדה הבא, לוחצים על הוספת שדה.
שם השדה סוג השדה ערך שדה נתונים projectstringStub-Project-IDבמדריך הזה נעשה שימוש ב-stub בשביל ערך השדה. אם רוצים להשתמש בהמלצות מפרויקט קיים של Google Cloud , מזינים את מזהה הפרויקט במקום זאת. locationsarrayglobalחלק מההמלצות עשויות להיות ספציפיות לאזור או לאזור זמן, כמו המלצות להתאמת גודל מכונה וירטואלית. המלצות אחרות הן גלובליות, למשל המלצות ל-IAM. recommenderTypestringgoogle.iam.policy.Recommenderלא רלוונטי. אחרי שהשדות מתמלאים, לוחצים על שמירה.
יצירת האוסף activeassist-business-rules
- לוחצים על התחלת האוסף.
בשדה Collection ID (מזהה האוסף), מזינים את הערך הבא:
activeassist-business-rulesמוסיפים ערכים במסמך כמו שמופיע בטבלה הבאה. כדי להוסיף את השדה הבא, לוחצים על הוספת שדה.
שם השדה סוג השדה ערך שדה נתונים actionstringNotifyהגדרת הערך ל- Applyגורמת לשירות להחיל את ההמלצה ולהסיר את התפקיד שלא נמצא בשימוש.projectIdstringStub-Project-IDבמדריך הזה נעשה שימוש בהמלצה מסוג stub. אם רוצים להשתמש בהמלצות מפרויקט קיים של Google Cloud , מזינים את מזהה הפרויקט במקום זאת. projectNumberstring999999999במדריך הזה נעשה שימוש בהמלצה מסוג stub.
אם אתם משתמשים בהמלצה מפרויקט קיים, Google Cloud צריך להזין את מספר הפרויקט במקום זאת. אפשר לראות את מספר הפרויקט בGoogle Cloud דף הפתיחה של המסוףrecommenderTypestringgoogle.iam.policy.Recommenderלא רלוונטי. recommenderSubtypestringREMOVE_ROLEלא רלוונטי. slackWebhookURLstringמזינים את כתובת ה-URL של ה-Webhook ב-Slack שיצרתם בשלב הקודם. כתובת ה-URL דומה לכתובת הבאה:
https://hooks.slack.com/services/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במדריך הזה מוסבר איך ליצור כלל שיקבע אם המלצה תוחל באופן אוטומטי או אם תישלח התראה לפלטפורמה כמו Slack. כדי ללמוד איך אפשר להחיל המלצה באופן אוטומטי על סמך הערכה של כללים עסקיים לדוגמה שהגדרתם, אפשר לעיין במאגר שקשור לנושא.
אחרי שהמסמך מתמלא, לוחצים על שמירה.
יצירת שירות Cloud Run מתוזמן
בקטע הזה יוצרים שירות מתוזמן של Cloud Run בשם recommendation-collector שמפעיל את Recommender API ומאחזר המלצות פעילות. במדריך הזה נעשה שימוש ב-Recommender API של Identity and Access Management (ניהול זהויות והרשאות גישה) בתור Recommender API. השירות קורא מטא-נתונים מהאוסף activeassist-metadata Firestore שיצרתם כדי לקבוע אילו המלצות לאחזר.
לוחצים על Open in Cloud Shell כדי לפתוח את Cloud Shell עבור הפרויקט של מרכז ההמלצות.
כשפותחים את Cloud Shell, הפקודות הבאות מופעלות:
- פקודת השיבוט של מאגר GitHub.
- הפקודה לשינוי ספרייה.
כשמופיעה תיבת הדו-שיח פתיחה ב-Cloud Shell, בוחרים באפשרות אני סומך על האתר הזה ואז לוחצים על אישור.
מגדירים את מזהה הפרויקט ואת מספר הפרויקט של הפרויקט הנוכחי של מרכז ההמלצות כמשתנים:
export RECO_MGR_PROJECT=PROJECT_ID gcloud config set project $RECO_MGR_PROJECT export RECO_MGR_PROJECT_NUMBER=$(gcloud projects describe $DEVSHELL_PROJECT_ID --format='value(projectNumber)')מחליפים את
PROJECT_IDבמזהה הפרויקט. אחרי שמזינים את הפקודות, לוחצים על הרשאה כשמוצגת בקשה.מגדירים את המשתנה לאזור הפריסה:
export REGION=us-central1למרות שבמדריך הזה נעשה שימוש באזור
us-central1, אפשר להשתמש בכל אזור שבו Cloud Run זמין.יוצרים משתנה סביבה לקובץ האימג' של Docker:
export RECOMMENDER_IMAGE=gcr.io/$RECO_MGR_PROJECT/recommendation-collector:1.0יוצרים את קובץ האימג' של Docker ומעלים אותו ל-Container Registry:
gcloud builds submit --tag $RECOMMENDER_IMAGEיוצרים חשבון שירות לשירות
recommendation-collectorכדי ליצור אינטראקציה עם שירותים אחרים של Google Cloud בצינור עיבוד הנתונים:gcloud iam service-accounts create recommendation-collector-sa \ --description "Service Account that the recommendation-collector service uses to invoke other Google Cloud services" \ --display-name "recommendation-collector-sa" \ --project $RECO_MGR_PROJECTמומלץ להקצות תפקידים מוגדרים מראש לחשבון השירות כדי לתת הרשאות פרטניות לשירותי Cloud Run. מידע נוסף מופיע במאמר זהות שירות.
נותנים לחשבון השירות של שירות
recommendation-collectorגישה ל-Firestore ול-Recommender API:gcloud projects add-iam-policy-binding $RECO_MGR_PROJECT \ --member serviceAccount:recommendation-collector-sa@$RECO_MGR_PROJECT.iam.gserviceaccount.com \ --role roles/datastore.user gcloud projects add-iam-policy-binding $RECO_MGR_PROJECT \ --member serviceAccount:recommendation-collector-sa@$RECO_MGR_PROJECT.iam.gserviceaccount.com \ --role roles/pubsub.publisherאם אתם מבצעים את המדריך הזה באמצעות הדוגמה
stubשסופקה במאגר ששיבטתם, דלגו לשלב הבא.אם אתם בונים את צינור העיבוד במדריך הזה באמצעות המלצות שנוצרו עבור פרויקט קיים Google Cloud , אתם צריכים להקצות הרשאות IAM לחשבונות השירות שיצרתם כדי להריץ את שני שירותי Cloud Run.
מגדירים משתנה סביבה,
TEST_PROJECT_ID, עם מזהה הפרויקט שמריצים עבורו את צינור העיבוד הזה לפני שמבצעים את הפקודות:export TEST_PROJECT_ID=TEST_PROJECT_ID gcloud projects add-iam-policy-binding $TEST_PROJECT_ID \ --member serviceAccount:recommendation-collector-sa@$RECO_MGR_PROJECT.iam.gserviceaccount.com \ --role roles/recommender.iamAdmin gcloud projects add-iam-policy-binding $TEST_PROJECT_ID \ --member serviceAccount:recommendation-collector-sa@$RECO_MGR_PROJECT.iam.gserviceaccount.com \ --role roles/serviceusage.serviceUsageConsumer gcloud services enable recommender.googleapis.com --project $TEST_PROJECT_IDחשוב לוודא שמזהה הפרויקט שבו אתם משתמשים זהה לזה שהזנתם ביצירת אוספי Firestore.
במדריך הזה, פורסים את השירות עם משתנה סביבה בשם
STUB_RECOMMENDATIONS. המשתנה הזה מאפשר להשתמש ב-stub כדי לבדוק את הצינור.פורסים את שירות Cloud Run:
gcloud run deploy recommendation-collector \ --image=$RECOMMENDER_IMAGE \ --no-allow-unauthenticated \ --region $REGION \ --platform managed \ --service-account recommendation-collector-sa@$RECO_MGR_PROJECT.iam.gserviceaccount.com \ --set-env-vars="STUB_RECOMMENDATIONS=true" \ --project $RECO_MGR_PROJECT \מאשרים את כל ההודעות של המערכת.
אם רוצים להריץ את צינור הנתונים באמצעות המלצות של Active Assist שנוצרו עבור פרויקט Google Cloud , צריך להסיר את השורה הבאה מהפקודה לפני שמבצעים פריסה:
--set-env-vars="STUB_RECOMMENDATIONS=true"
הגדרת משימה של Cloud Scheduler להרצת recommender-collector service
ב-Cloud Shell, יוצרים חשבון שירות בשביל משימות Cloud Scheduler כדי להריץ את שירות
recommendation-collector:gcloud iam service-accounts create recommender-scheduler-sa \ --description "Service Account used by Cloud Scheduler to invoke the recommender-parser service" \ --display-name "recommender-scheduler-sa" \ --project $RECO_MGR_PROJECTנותנים לחשבון השירות את התפקיד
run/invokerכדי לאפשר לו להפעיל את שירות Cloud Run:gcloud run services add-iam-policy-binding recommendation-collector \ --member=serviceAccount:recommender-scheduler-sa@$RECO_MGR_PROJECT.iam.gserviceaccount.com \ --role=roles/run.invoker \ --region=$REGION \ --platform=managedמציאת כתובת ה-URL של שירות
recommendation-collector:export RECOMMENDER_SERVICE_URI=`gcloud run services describe recommendation-collector \ --platform managed \ --project $RECO_MGR_PROJECT \ --region $REGION \ --format="value(status.url)"`/runיוצרים משימה ב-Cloud Scheduler בשם
recommender-iam-scheduler:gcloud scheduler jobs create http recommender-iam-scheduler \ --project $RECO_MGR_PROJECT \ --time-zone "America/Los_Angeles" \ --schedule="0 */3 * * *" \ --uri=$RECOMMENDER_SERVICE_URI \ --description="Scheduler job to invoke recommendation pipeline" \ --oidc-service-account-email="recommender-scheduler-sa@$RECO_MGR_PROJECT.iam.gserviceaccount.com" \ --headers="Content-Type=application/json" \ --http-method="POST"מגדירים את אזור הזמן בהתאם למיקום. פורמט הערך של אזור הזמן מבוסס על tz database.
מידע נוסף זמין במאמר בנושא gcloud scheduler jobs create http.
הג'וב שלכם ב-Cloud Scheduler מפעיל את המסלול
/runבשירותrecommendation-collector.הגדרת הדגל
--schedule="0 */3 * * *"מריצה את משימת Scheduler כל שלוש שעות. אתם יכולים לשנות את ההגדרה הזו בהתאם לדרישות שלכם. מידע נוסף זמין במאמר הגדרת לוחות זמנים של משימות cron.
יצירת מנוע כללי ההמלצות לעיבוד ההמלצות
בקטע הזה יוצרים שירות שני של Cloud Run בשם recommendation-rules-engine לעיבוד ההמלצות שנאספות על ידי השירות recommendation-collector. שירות recommendation-rules-engine מופעל על ידי Pub/Sub כשדוחפים המלצות חדשות לנושא activeassist-recommendations.
השירות הזה מנתח המלצות על סמך הכללים העסקיים שהגדרתם באוסף activeassist-business-rules.
ב-Cloud Shell, פותחים את הספרייה
recommendation-rules-engine:cd ../recommendation-rules-engineיוצרים משתנה סביבה לקובץ האימג' של Docker:
export RULES_ENGINE_IMAGE=gcr.io/$RECO_MGR_PROJECT/recommendation-rules-engine:1.0יוצרים את קובץ האימג' של Docker ומעלים אותו ל-Container Registry:
gcloud builds submit --tag $RULES_ENGINE_IMAGEיוצרים חשבון שירות לשירות
recommendation-rules-engineכדי ליצור אינטראקציה עם שירותים אחרים של Google Cloud בצינור עיבוד הנתונים:gcloud iam service-accounts create recommendation-rules-sa \ --description "Service Account that recommendation-rules-engine uses to invoke other Google Cloud services" \ --display-name "recommendation-rules-sa" \ --project $RECO_MGR_PROJECTנותנים לחשבון השירות של שירות
recommendation-rules-engineגישה ל-Firestore:gcloud projects add-iam-policy-binding $RECO_MGR_PROJECT \ --member serviceAccount:recommendation-rules-sa@$RECO_MGR_PROJECT.iam.gserviceaccount.com \ --role roles/datastore.userאם אתם משתמשים ב-stub שסופק במדריך הזה, המשיכו לשלב הבא.
אם אתם בודקים את צינור עיבוד הנתונים באמצעות המלצות שנוצרו עבור פרויקטGoogle Cloud במקום באמצעות ה-stub שסופק במדריך הזה, מריצים את הפקודות הבאות כדי לאפשר לחשבון השירות של מנוע הכללים לגשת לפרויקט:
gcloud projects add-iam-policy-binding $TEST_PROJECT_ID \ --member serviceAccount:recommendation-rules-sa@$RECO_MGR_PROJECT.iam.gserviceaccount.com \ --role roles/serviceusage.serviceUsageConsumer gcloud projects add-iam-policy-binding $TEST_PROJECT_ID \ --member serviceAccount:recommendation-rules-sa@$RECO_MGR_PROJECT.iam.gserviceaccount.com \ --role roles/recommender.iamAdmin gcloud projects add-iam-policy-binding $TEST_PROJECT_ID \ --member serviceAccount:recommendation-rules-sa@$RECO_MGR_PROJECT.iam.gserviceaccount.com \ --role roles/resourcemanager.projectIamAdminפורסים את שירות Cloud Run:
gcloud run deploy recommendation-rules-engine \ --image=$RULES_ENGINE_IMAGE \ --no-allow-unauthenticated \ --region $REGION \ --platform managed \ --service-account recommendation-rules-sa@$RECO_MGR_PROJECT.iam.gserviceaccount.com \ --project $RECO_MGR_PROJECTמאשרים את כל ההודעות של המערכת.
מציאת כתובת ה-URL של
recommendation-rules-engine:export RECOMMENDER_SERVICE_RULES_URI=`gcloud run services describe recommendation-rules-engine \ --platform managed \ --project $RECO_MGR_PROJECT \ --region $REGION \ --format="value(status.url)"`/processכתובת ה-URL שמאחזרים בשלב הזה מופעלת כשנוצרות המלצות חדשות בנושא Pub/Sub שיוצרים בשלב הבא.
יצירת נושא Pub/Sub להמלצות פעילות
בקטע הזה יוצרים נושא Pub/Sub להמלצות של Active Assist ששירות recommender-collector מאחזר על ידי הפעלת Recommender API.
ב-Cloud Shell, יוצרים נושא Pub/Sub:
gcloud pubsub topics create activeassist-recommendationsיוצרים חשבון שירות בשביל Pub/Sub כדי להפעיל את שירות Cloud Run
recommendation-rules-engine:gcloud iam service-accounts create recommendation-engine-sub-sa \ --description "Service Account used by Pub/Sub to push recommendations to the recommendation-rules-engine service" \ --display-name "recommendation-engine-sub-sa" \ --project $RECO_MGR_PROJECTחשבון השירות של Pub/Sub צריך להיות משויך לתפקידים שנדרשים לו כדי לפרסם הודעות ולהפעיל את שירות
recommendation-rules-engine:gcloud projects add-iam-policy-binding $RECO_MGR_PROJECT \ --member serviceAccount:recommendation-engine-sub-sa@$RECO_MGR_PROJECT.iam.gserviceaccount.com \ --role roles/run.invoker \ --project $RECO_MGR_PROJECT
יצירת מינוי לנושא Pub/Sub
יוצרים מינוי לשירות
recommendation-rules-engine:# grant Pub/Sub the permission to create tokens PUBSUB_SERVICE_ACCOUNT="service-$RECO_MGR_PROJECT_NUMBER@gcp-sa-pubsub.iam.gserviceaccount.com" gcloud projects add-iam-policy-binding $RECO_MGR_PROJECT \ --member="serviceAccount:$PUBSUB_SERVICE_ACCOUNT"\ --role='roles/iam.serviceAccountTokenCreator' # configure the subscription push identity gcloud pubsub subscriptions create active-assist-recommendations-for-rules-engine \ --topic=activeassist-recommendations \ --topic-project=$RECO_MGR_PROJECT \ --push-auth-service-account=recommendation-engine-sub-sa@$RECO_MGR_PROJECT.iam.gserviceaccount.com \ --ack-deadline=60 \ --push-endpoint=$RECOMMENDER_SERVICE_RULES_URIנותנים לחשבון השירות
recommendation-engine-sub-saשיצרתם הרשאה להפעיל את השירותrecommendation-rules-engine:gcloud run services add-iam-policy-binding recommendation-rules-engine \ --member=serviceAccount:recommendation-engine-sub-sa@$RECO_MGR_PROJECT.iam.gserviceaccount.com \ --role=roles/run.invoker \ --region=$REGION \ --platform=managed
הפעלת בדיקות מקצה לקצה באמצעות stub
ההמלצות של Active Assist נוצרות על ידי הפלטפורמה על סמך דפוסי שימוש ומדדי מערכת. כל קטגוריה של המלצות עשויה להשתמש בחלון זמן שונה שמוגדר כברירת מחדל בעבר כדי לנתח את נתוני השימוש והמדדים שלפיהם נוצרות ההמלצות. לדוגמה, ההמלצות ל-IAM נוצרות על ידי הפלטפורמה על סמך דפוסי שימוש מ-90 הימים האחרונים.
כדי לבדוק את צינור הנתונים מקצה לקצה, במאגר ששיבטתם לצורך המדריך הזה יש המלצות לדוגמה (stubs) שבהן אתם משתמשים כדי להריץ את צינור הנתונים מקצה לקצה.
בקטע הזה תבצעו את הפעולות הבאות:
- בודקים את ההמלצות לגבי ה-stub.
- מפעילים את הצינור באופן ידני.
- בודקים אם נוצרה התראה ונשלחה לערוץ Slack שיצרתם.
בודקים את ההמלצות לדוגמה שמופיעות במאגר:
cat ../recommendation-collector/stub.jsonבקובץ הזה מופיעה דוגמה להמלצה עם פעולה
REMOVEעבור תפקיד לדוגמה שנקראroles/gkehub.connect.מריצים את הפקודה הבאה כדי להגדיר את Cloud Scheduler להרצת המשימה באופן מיידי, במקום להמתין להרצה המתוזמנת הבאה:
gcloud scheduler jobs run recommender-iam-schedulerבדף המסוף Cloud Scheduler, בעמודה Result של העבודה
recommender-iam-scheduler, מוודאים שהתוצאה היא Success.כדי לקבל תצוגה מפורטת של השלבים שכל אחד מהשירותים מבצע, אפשר גם לצפות ביומני השירות של Cloud Run עבור השירות
recommendation-collectorוהשירותrecommendation-rules-engine.כשהפייפליין מקצה לקצה בלי שרת שיוצרים במדריך הזה פועל בהצלחה, הוא יוצר התראה ב-Slack שמכילה פרטים על קישור התפקיד המומלץ שצריך להסיר. זו דוגמה להתראה שתקבלו:
Project xxxxxxxx\ **Impact**: SECURITY\ This role has not been used during the observation window.\ **Role**: roles/gkehub.connect\ **Member**: serviceAccount:sample-sa@recommendation-sample.iam.gserviceaccount.com\ **Action**: remove
הסרת המשאבים
כדי להימנע מחיובים בחשבון Google Cloud בגלל השימוש במשאבים שנעשה במסגרת המדריך הזה, אפשר למחוק את הפרויקט שמכיל את המשאבים, או להשאיר את הפרויקט ולמחוק את המשאבים בנפרד.