שימוש בפייפליינים ללא שרת (serverless) עם Active Assist

Last reviewed 2021-06-09 UTC

המסמך הזה מיועד למומחי Cloud Architect ולמפתחי תוכנה שרוצים ליצור צינור אוטומציה כדי להשתמש ב-Active Assist בארגון שלהם Google Cloud . המאמר הזה הוא חלק מסדרה שדנה בדפוסי ארכיטקטורה שארגונים יכולים להשתמש בהם כדי לבצע אופטימיזציה של השימוש בענן בהיקף גדול באמצעות 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-collector Cloud Run משתמש במאפיינים האלה כדי לקבוע אילו סוגי המלצות יאוחזרו.
    • האוסף השני מכיל כללים עסקיים שמוחלים כשמעבדים המלצות.

מטרות

  • יוצרים שירות לדוגמה ב-Cloud Run כדי לאחזר המלצות של Active Assist לפרויקט לדוגמה ולדחוף אותן לנושא Pub/Sub.
  • יוצרים שתי קולקציות ב-Firestore לאחסון של מטא-נתונים לדוגמה וכללים עסקיים, בהתאמה.
  • יוצרים שירות שני ב-Cloud Run כדי לעבד המלצות בהתאם לכללים העסקיים לדוגמה שמוגדרים במדריך הזה.
  • יוצרים ערוץ ב-Slack שאליו שירות Cloud Run ישלח המלצות לדוגמה מ-Active Assist.
  • בודקים את הצינור מקצה לקצה באמצעות המלצות לדוגמה של Active Assist.

עלויות

במסמך הזה משתמשים ברכיבים הבאים של Google Cloud, והשימוש בהם כרוך בתשלום:

כדי להעריך את ההוצאות בהתאם לתחזית השימוש שלכם, אתם יכולים להיעזר במחשבון העלויות.

משתמשים חדשים של Google Cloud ? יכול להיות שאתם זכאים לתקופת ניסיון בחינם.

כשמסיימים את המשימות שמתוארות במסמך הזה אפשר למחוק את המשאבים שיצרתם כדי להימנע מחיובים נוספים. מידע נוסף זמין בקטע הסרת המשאבים.

לפני שמתחילים

  1. נכנסים לדף לבחירת הפרויקט במסוף Google Cloud .

    כניסה לדף לבחירת הפרויקט

  2. בוחרים או יוצרים Google Cloud פרויקט.

    תפקידים שנדרשים כדי לבחור או ליצור פרויקט

    • Select a project: כדי לבחור פרויקט לא צריך תפקיד IAM ספציפי – אפשר לבחור כל פרויקט שקיבלתם בו תפקיד.
    • יצירת פרויקט: כדי ליצור פרויקט, צריך את התפקיד Project Creator (יצירת פרויקטים) (roles/resourcemanager.projectCreator), שכולל את ההרשאה resourcemanager.projects.create. איך מקצים תפקידים
  3. רושמים את מזהה הפרויקט של כלי ניהול ההמלצות. Google Cloud תצטרכו את המזהה הזה בקטע הבא בנושא הגדרת הסביבה.
  4. מפעילים את ממשקי ה-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. איך מקצים תפקידים

    הפעלת ממשקי ה-API

    במדריך הזה משתמשים בפרטי הכניסה של האפליקציה שמוגדרים כברירת מחדל. אם מוצגת בקשה ליצור פרטי כניסה בדף הוספת פרטי כניסה לפרויקט, לוחצים על ביטול.
  5. מוודאים שהחיוב מופעל בפרויקט Google Cloud .

  6. יוצרים את הפריטים הבאים:
    • ערוץ לדוגמה ב-Slack.
    • אפליקציית Slack לדוגמה ו-webhook נכנס כדי לקבל התראות שנוצרו על ידי מנוע בשם recommendation-rules-engine. תגדירו את המנוע בהמשך המדריך הזה.
    מידע נוסף זמין במאמרים יצירת ערוץ Slack ושליחת הודעות באמצעות Webhooks נכנסים.

    אחרי שיוצרים אפליקציית 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

  1. נכנסים לדף Firestore במסוף Google Cloud .

    פתיחת Firestore

  2. אם עדיין אין לכם מסד נתונים של Firestore, צריך ליצור אחד. לחלופין, אם כבר יש לכם מסד נתונים של Firestore, אפשר לדלג לשלב הבא.

    יוצרים את מסד הנתונים:

    1. כדי להפעיל את Firestore, לוחצים על בחירת מצב מקורי.
    2. בוחרים מיקום אזורי שקרוב לאזור שבו שירותי Cloud Run פועלים.
    3. לוחצים על יצירת מסד נתונים. ההגדרה תימשך כמה רגעים.
  3. בדף Firestore, לוחצים על Start Collection (התחלת אוסף).

  4. בשדה מזהה האוסף, מזינים את הערך activeassist-metadata.

  5. ממלאים את השדות כמו שמופיע בטבלה הבאה. כדי להוסיף את השדה הבא, לוחצים על הוספת שדה.

    שם השדה סוג השדה ערך שדה נתונים
    project string Stub-Project-ID במדריך הזה נעשה שימוש ב-stub בשביל ערך השדה. אם רוצים להשתמש בהמלצות מפרויקט קיים של Google Cloud , מזינים את מזהה הפרויקט במקום זאת.
    locations array global חלק מההמלצות עשויות להיות ספציפיות לאזור או לאזור זמן, כמו המלצות להתאמת גודל מכונה וירטואלית. המלצות אחרות הן גלובליות, למשל המלצות ל-IAM.
    recommenderType string google.iam.policy.Recommender לא רלוונטי.

  6. אחרי שהשדות מתמלאים, לוחצים על שמירה.

יצירת האוסף activeassist-business-rules

  1. לוחצים על התחלת האוסף.
  2. בשדה Collection ID (מזהה האוסף), מזינים את הערך הבא: activeassist-business-rules

    מוסיפים ערכים במסמך כמו שמופיע בטבלה הבאה. כדי להוסיף את השדה הבא, לוחצים על הוספת שדה.

    שם השדה סוג השדה ערך שדה נתונים
    action string Notify הגדרת הערך ל-Apply גורמת לשירות להחיל את ההמלצה ולהסיר את התפקיד שלא נמצא בשימוש.
    projectId string Stub-Project-ID במדריך הזה נעשה שימוש בהמלצה מסוג stub. אם רוצים להשתמש בהמלצות מפרויקט קיים של Google Cloud , מזינים את מזהה הפרויקט במקום זאת.
    projectNumber string 999999999 במדריך הזה נעשה שימוש בהמלצה מסוג stub.

    אם אתם משתמשים בהמלצה מפרויקט קיים, Google Cloud צריך להזין את מספר הפרויקט במקום זאת. אפשר לראות את מספר הפרויקט בGoogle Cloud דף הפתיחה של המסוף
    recommenderType string google.iam.policy.Recommender לא רלוונטי.
    recommenderSubtype string REMOVE_ROLE לא רלוונטי.
    slackWebhookURL string מזינים את כתובת ה-URL של ה-Webhook ב-Slack שיצרתם בשלב הקודם. כתובת ה-URL דומה לכתובת הבאה:

    https://hooks.slack.com/services/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

    במדריך הזה מוסבר איך ליצור כלל שיקבע אם המלצה תוחל באופן אוטומטי או אם תישלח התראה לפלטפורמה כמו Slack. כדי ללמוד איך אפשר להחיל המלצה באופן אוטומטי על סמך הערכה של כללים עסקיים לדוגמה שהגדרתם, אפשר לעיין במאגר שקשור לנושא.

  3. אחרי שהמסמך מתמלא, לוחצים על שמירה.

יצירת שירות Cloud Run מתוזמן

בקטע הזה יוצרים שירות מתוזמן של Cloud Run בשם recommendation-collector שמפעיל את Recommender API ומאחזר המלצות פעילות. במדריך הזה נעשה שימוש ב-Recommender API של Identity and Access Management (ניהול זהויות והרשאות גישה) בתור Recommender API. השירות קורא מטא-נתונים מהאוסף activeassist-metadata Firestore שיצרתם כדי לקבוע אילו המלצות לאחזר.

  1. לוחצים על Open in Cloud Shell כדי לפתוח את Cloud Shell עבור הפרויקט של מרכז ההמלצות.

    פתיחה ב-Cloud Shell

    כשפותחים את Cloud Shell, הפקודות הבאות מופעלות:

    • פקודת השיבוט של מאגר GitHub.
    • הפקודה לשינוי ספרייה.

    כשמופיעה תיבת הדו-שיח פתיחה ב-Cloud Shell, בוחרים באפשרות אני סומך על האתר הזה ואז לוחצים על אישור.

  2. מגדירים את מזהה הפרויקט ואת מספר הפרויקט של הפרויקט הנוכחי של מרכז ההמלצות כמשתנים:

    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 במזהה הפרויקט. אחרי שמזינים את הפקודות, לוחצים על הרשאה כשמוצגת בקשה.

  3. מגדירים את המשתנה לאזור הפריסה:

    export REGION=us-central1
    

    למרות שבמדריך הזה נעשה שימוש באזור us-central1, אפשר להשתמש בכל אזור שבו Cloud Run זמין.

  4. יוצרים משתנה סביבה לקובץ האימג' של Docker:

    export RECOMMENDER_IMAGE=gcr.io/$RECO_MGR_PROJECT/recommendation-collector:1.0
    
  5. יוצרים את קובץ האימג' של Docker ומעלים אותו ל-Container Registry:

     gcloud builds submit --tag $RECOMMENDER_IMAGE
    
  6. יוצרים חשבון שירות לשירות 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. מידע נוסף מופיע במאמר זהות שירות.

  7. נותנים לחשבון השירות של שירות 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
    
  8. אם אתם מבצעים את המדריך הזה באמצעות הדוגמה 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.

  9. במדריך הזה, פורסים את השירות עם משתנה סביבה בשם 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

  1. ב-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
    
  2. נותנים לחשבון השירות את התפקיד 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
    
  3. מציאת כתובת ה-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
    
  4. יוצרים משימה ב-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.

  1. ב-Cloud Shell, פותחים את הספרייה recommendation-rules-engine:

    cd ../recommendation-rules-engine
    
  2. יוצרים משתנה סביבה לקובץ האימג' של Docker:

    export RULES_ENGINE_IMAGE=gcr.io/$RECO_MGR_PROJECT/recommendation-rules-engine:1.0
    
  3. יוצרים את קובץ האימג' של Docker ומעלים אותו ל-Container Registry:

    gcloud builds submit --tag $RULES_ENGINE_IMAGE
    
  4. יוצרים חשבון שירות לשירות 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
    
  5. נותנים לחשבון השירות של שירות 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
    
  6. פורסים את שירות 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
    

    מאשרים את כל ההודעות של המערכת.

  7. מציאת כתובת ה-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.

  1. ב-Cloud Shell, יוצרים נושא Pub/Sub:

    gcloud pubsub topics create activeassist-recommendations
    
  2. יוצרים חשבון שירות בשביל 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
    
  3. חשבון השירות של 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

  1. יוצרים מינוי לשירות 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
    
  2. נותנים לחשבון השירות 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 שיצרתם.
  1. בודקים את ההמלצות לדוגמה שמופיעות במאגר:

    cat ../recommendation-collector/stub.json
    

    בקובץ הזה מופיעה דוגמה להמלצה עם פעולה REMOVE עבור תפקיד לדוגמה שנקרא roles/gkehub.connect.

  2. מריצים את הפקודה הבאה כדי להגדיר את Cloud Scheduler להרצת המשימה באופן מיידי, במקום להמתין להרצה המתוזמנת הבאה:

    gcloud scheduler jobs run recommender-iam-scheduler
    
  3. בדף המסוף Cloud Scheduler, בעמודה Result של העבודה recommender-iam-scheduler, מוודאים שהתוצאה היא Success.

    כדי לקבל תצוגה מפורטת של השלבים שכל אחד מהשירותים מבצע, אפשר גם לצפות ביומני השירות של Cloud Run עבור השירות recommendation-collector והשירות recommendation-rules-engine.

  4. כשהפייפליין מקצה לקצה בלי שרת שיוצרים במדריך הזה פועל בהצלחה, הוא יוצר התראה ב-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 בגלל השימוש במשאבים שנעשה במסגרת המדריך הזה, אפשר למחוק את הפרויקט שמכיל את המשאבים, או להשאיר את הפרויקט ולמחוק את המשאבים בנפרד.

  • במסוף Google Cloud , נכנסים לדף Manage resources.

    כניסה לדף Manage resources

  • ברשימת הפרויקטים, בוחרים את הפרויקט שרוצים למחוק ולוחצים על Delete.
  • כדי למחוק את הפרויקט, כותבים את מזהה הפרויקט בתיבת הדו-שיח ולוחצים על Shut down.
  • המאמרים הבאים