מודולים של ה-Backend מספקים תשתית לעיבוד של כמויות גדולות של הודעות שקשורות לתכונות ולאינטראקציה עם ממשק המשתמש של סוכן ה-Desktop. במדריך הזה מוסבר איך לשלב מודולים של קצה עורפי עם מערכת הסוכנים.
מידע נוסף על מושגים ומבנה של מודולים ברקע זמין במאמר יסודות המודולים של ה-backend.
דרישות מוקדמות
- אם לא הגדרתם אותו, מתקינים את Google Cloud CLI.
- יוצרים נושא Cloud Pub/Sub לכל סוג של התראה על אירוע שרוצים לקבל מ-Dialogflow. חשוב לשים לב למזהה הנושא ולשם הנושא כדי להשתמש בהם בהמשך בפריסת ה-Backend.
- מגדירים את פרופיל השיחה באמצעות מסוף Agent Assist עם נושאים ב-Pub/Sub.
פריסה אוטומטית
אפשר להפוך את הפריסה לאוטומטית באמצעות Google Cloud סקריפט אוטומטי או Terraform.
סקריפט אוטומציה
פרטים נוספים זמינים בקובץ ./deploy.sh.
החלת שינויים ב-Terraform
אפשר להפוך את הפריסה לאוטומטית באמצעות סקריפט אוטומציה של gcloud CLI או Terraform. לפני שמחילים שינויים ב-Terraform, צריך לבצע את השלבים הבאים.
- מקצים לחשבון את תפקידי ה-IAM הבאים:
-
Project IAM Admin(roles/resourcemanager.projectIamAdmin) -
Service Usage Admin(roles/serviceusage.serviceUsageAdmin) -
Service Account Admin(roles/iam.serviceAccountAdmin) -
Service Account User(roles/iam.serviceAccountUser) -
Pub/Sub Admin(roles/pubsub.admin) -
Secret Manager Admin(roles/secretmanager.admin) -
Cloud Build Editor(roles/cloudbuild.builds.editor) -
Artifact Registry Administrator(roles/artifactregistry.admin) -
Storage Admin(roles/storage.admin) -
Cloud Run Admin(roles/run.admin) -
Cloud Memorystore Redis Admin(roles/redis.admin) -
Serverless VPC Access Admin(roles/vpcaccess.admin)
-
- יוצרים קובצי אימג' עבור UI Connector ועבור Cloud Pub/Sub Interceptor ורושמים את שם קובץ האימג'.
- במקרה של UI Connector, מריצים את הפקודה הבאה בתיקייה
./ui-connector.$ gcloud builds submit --tag gcr.io/$GCP_PROJECT_ID/aa-integration-backend/ui-connector
- בשביל Cloud Pub/Sub Interceptor, מריצים את הפקודה הבאה בתיקייה
./cloud-pubsub-interceptor.$ gcloud builds submit --tag gcr.io/$GCP_PROJECT_ID/aa-integration-backend/cloud-pubsub-interceptor
- במקרה של UI Connector, מריצים את הפקודה הבאה בתיקייה
- יוצרים קטגוריה של Cloud Storage לאחסון מצב Terraform ומעדכנים את הערך של הקטגוריה בקצה העורפי במיקום
/terraform/backend.tfבאמצעות הפקודה הבאה.GCP_PROJECT_ID=$(gcloud config get-value project) # Create the Cloud storage bucket gcloud storage buckets create gs://${GCP_PROJECT_ID}-tfstate # Enable Object Versioning to keep the history of your deployments gcloud storage buckets update gs://${GCP_PROJECT_ID}-tfstate --versioning
- מייצאים את הערך של משתני Terraform הנדרשים
gcp_project_id,ui_connector_docker_imageו-cloud_pubsub_interceptor_docker_image. דוגמה: export TF_VAR_gcp_project_id='you-gcp-project-id'. אפשר גם למלא את הערכים שלהם ישירות ב-/terraform/variables.tf. - כדי להתאים אישית את שיטת האימות, משנים את
auth.check_auth()method ב-/ui-connector/auth.py.
אם רוצים להפוך את השלבים האלה לאוטומטיים באמצעות Cloud Build, צריך לפעול לפי ההוראות ולהשתמש בקובץ התצורה של ה-build ./terraform_cloudbuild.yaml. כדי לאפשר ל-Cloud Build לפרוס את השירותים, צריך להקצות לחשבון השירות של Cloud Build את תפקידי ה-IAM שמפורטים בשלב 1.
פריסה ידנית
בשלבים הבאים מוסבר איך לפרוס מודולים של קצה עורפי באופן ידני.
הגדרה של משתני סביבה
כדי לפשט את הפקודות לפריסה, מומלץ להגדיר במעטפת את משתני הסביבה השימושיים הבאים. אפשר להגדיר את המשתנים באמצעות פקודת הדוגמה הבאה:
$ export GCP_PROJECT_ID='aa-integration-service'
מגדירים את משתני הסביבה הבאים:
-
GCP_PROJECT_ID: מזהה הפרויקט שלכם ב-Cloud Platform שמארח משאבים קשורים. דוגמה:my-project. -
SERVICE_REGION: המיקום או האזור של השירותים והמשאבים הקשורים Google Cloud . משאבי הפלטפורמה. דוגמה:us-central1.
הגדרה של חשבון אדמין
מומלץ להשתמש בחשבונות נפרדים Google Cloud לניהול שירותים ולזהות בזמן ריצה. ניהול השירותים מתבצע בעיקר על ידי בני אדם עם חשבונות Google, ואילו הרשאות הגישה לשירותי Cloud Run ניתנות בזמן הריצה באמצעות חשבונות שירות כדי לאפשר גישה למשאבים הדרושים.
הכנת חשבון אדמין אנושי
אם אתם מתכננים להשתמש בחשבון שכבר יש לו הרשאות עריכה או בעלות בפרויקט, אתם יכולים לדלג אל הקטע הבא.
כדי לנהל את תשתית ה-Backend, צריך ליצור חשבון אדמין ולהעניק לו את התפקידים הבאים בניהול זהויות והרשאות גישה (IAM). כל ההרשאות שלהם כלולות בתפקידים הבסיסיים 'עריכה' ו'בעלים'.
-
roles/secretmanager.admin(Secret Manager Admin): ניהול סודות שמאוחסנים ב-Secret Manager ליצירה ולאימות של JWT. -
roles/run.admin(אדמין של Cloud Run): פריסה וניהול של שירותי Cloud Run. -
roles/iam.serviceAccountUser(משתמש בחשבון שירות): מתן הרשאות לחשבונות שירות של זמן הריצה של Cloud Runiam.serviceAccounts.actAs. -
roles/cloudbuild.builds.editor(Cloud Build Editor): יצירת קובצי אימג' של Docker לשירותי האינטגרציה באמצעות Cloud Build. - אדמין של Artifact Registry: אחסון וניהול של קובצי אימג' של Docker שנבנו עבור שירותי האינטגרציה.
-
roles/pubsub.editor(Cloud Pub/Sub Editor): יצירה וניהול של נושאים ומינויים ב-Cloud Pub/Sub. -
roles/redis.admin(Redis Admin): יצירה וניהול של משאבי Memorystore for Redis.
כדי להעניק תפקידים ב-IAM לחשבון של משתמש, משתמשים בפקודה add-iam-policy-binding של Google Cloud CLI. זוהי פקודה לדוגמה:
$ gcloud projects add-iam-policy-binding $GCP_PROJECT_ID \ --member='user:test-user@gmail.com' \ --role='roles/pubsub.editor'
הגדרת חשבון אדמין אנושי ב-gcloud
בדוגמה הבאה, מחליפים את $ADMIN_ACCOUNT בחשבון האדמין שרוצים להשתמש בו (לדוגמה: myaccount@gmail.com):
$ gcloud config set account $ADMIN_ACCOUNT
הגדרה של חשבונות שירות
כברירת מחדל, שירותים או משימות של Cloud Run מופעלים בתור חשבון השירות של Compute Engine שמוגדר כברירת מחדל. במקום להשתמש בברירת המחדל, מומלץ להקצות לכל שירות Cloud Run זהות ייעודית על ידי הקצאת חשבון שירות בניהול המשתמשים עם קבוצת ההרשאות המינימלית הנדרשת. אם אתם מתכננים להשתמש בחשבון השירות שמוגדר כברירת מחדל, אתם יכולים לדלג אל הגדרת משתני סביבה.
יצירת שני חשבונות שירות לכל זמן ריצה של Cloud Run
כדי ליצור את חשבונות השירות, מחליפים את הערך של
$CONNECTOR_SERVICE_ACCOUNT_IDושל$INTERCEPTOR_SERVICE_ACCOUNT_IDומריצים את הפקודות הבאות:$ export CONNECTOR_SERVICE_ACCOUNT_ID='aa-ui-connector' && gcloud iam service-accounts create $CONNECTOR_SERVICE_ACCOUNT_ID \ --description='Agent Assist integration - UI connector service account' \ --display-name='Agent Assist integration - UI connector' $ export INTERCEPTOR_SERVICE_ACCOUNT_ID='aa-pubsub-interceptor' && gcloud iam service-accounts create $INTERCEPTOR_SERVICE_ACCOUNT_ID \ --description='Agent Assist integration - Pubsub interceptor service account' \ --display-name='Agent Assist integration - Pubsub interceptor'
אפשר להשתמש בפקודה לדוגמה הבאה כדי להקצות את התפקידים הבאים לחשבונות השירות של מחבר ממשק המשתמש ומחבר Cloud Pub/Sub:
$ gcloud projects add-iam-policy-binding $GCP_PROJECT_ID \ --member='serviceAccount:$CONNECTOR_SERVICE_ACCOUNT_ID@$GCP_PROJECT_ID.iam.gserviceaccount.com' \ --role='roles/pubsub.editor'
מקצים לחשבון השירות של מחבר ממשק המשתמש את תפקידי ה-IAM הבאים:
roles/redis.editorroles/vpcaccess.userroles/compute.viewerroles/secretmanager.secretAccessorroles/dialogflow.agentAssistClient
מקצים לחשבון השירות של מחבר Cloud Pub/Sub את התפקידים הבאים:
roles/redis.editorroles/vpcaccess.userroles/compute.viewer
הגדרה של משתני סביבה
מגדירים את הערכים של משתני הסביבה הבאים לחשבונות השירות שיצרתם או לחשבון השירות שמוגדר כברירת מחדל ב-Compute Engine בפרויקט.
-
CONNECTOR_SERVICE_ACCOUNT: חשבון השירות של זמן הריצה של מחבר ממשק המשתמש. דוגמה:aa-ui-connector@my-project-id.iam.gserviceaccount.com. -
INTERCEPTOR_SERVICE_ACCOUNT: חשבון השירות של זמן הריצה של Cloud Pub/Sub Interceptor. דוגמה:aa-pubsub-interceptor@my-project-id.iam.gserviceaccount.com.
התאמה אישית של שיטת אימות המשתמש
מאגר המקורות של הקוד תומך גם במשתמשי בק-אנד וגם במשתמשים במודול הקצה הקדמי של Genesys Cloud ו-Twilio.
- במאגר המקורות של הקוד, פותחים את הקובץ
ui_connector/auth.py. מגדירים את משתנה הסביבה
AUTH_OPTIONכדי לציין את ספק הזהויות הנתמך, או מטמיעים את שיטת האימות באמצעותauth.check_auth.כברירת מחדל,
AUTH_OPTIONריקה ואף משתמש לא יכול לרשום JWT בשירות UI Connector. ערכים נתמכים:-
Salesforce: אימות אסימון ההרשאה באמצעות OpenID Connect של Salesforce. משתנה הסביבה הנדרש: SALESFORCE_ORGANIZATION_ID. -
SalesforceLWC: אימות של טוקן הרשאה של פרטי לקוח ב-OAuth של Salesforce באמצעות נקודת הקצה (endpoint) שלoauth2/userinfoREST. משתני הסביבה הנדרשים: SALESFORCE_ORGANIZATION_ID, SALESFORCE_DOMAIN. -
GenesysCloud: אימות אסימון ההרשאה באמצעות Genesys SDK UsersAPI. -
Twilio: אימות של טוקן האימות של Twilio. משתנה הסביבה הנדרש: TWILIO_FLEX_ENVIRONMENT. -
Skip: דילוג על אימות טוקן האימות. לא מומלץ להשתמש בו בסביבת ייצור.
דוגמה:
$ export AUTH_OPTION='Salesforce'
לכל סוג של טוקן יכול להיות אמצעי אימות שונה. אתם מחליטים איך האסימון מאומת. ללא שינויים, הפונקציה
auth.check_authמחזירהfalseלכל בקשה.-
התאמה אישית של המקורות המותרים (מומלץ)
כדי להגביל את המקורות שיכולים לגשת לשירות שלכם, משנים את הערך של המשתנה config.CORS_ALLOWED_ORIGINS. ערך ברירת המחדל * יאפשר לכל מקור לבקר בשירות שלכם.
יצירה ושמירה של מפתח סודי של JWT
כדי ששירות המחבר של ממשק המשתמש יוכל לשלוח בחזרה ללקוח אסימוני אימות מאובטחים, הוא צריך להצפין אותם באמצעות מפתח סודי של JWT. הערך של המפתח יכול להיות כל מחרוזת שרירותית, אבל הוא צריך להיות ייחודי וקשה לניחוש.
המפתח הסודי הזה יישמר ב-Secret Manager.
הגדרת משתנה סביבה
-
JWT_SECRET_NAME: השם של המפתח הסודי ב-Secret Manager. זה יכול להיות כל שם שרירותי. הערך המומלץ:aa-integration-jwt-secret.
יצירת המפתח
מומלץ ליצור גיבוב אקראי כמפתח הסודי של ה-JWT כדי שתוקפים לא יוכלו לנחש אותו. כדי לעשות את זה, אפשר להשתמש ב-python secrets כדי ליצור מספרים אקראיים מאובטחים.
# generate_secret_key.py import secrets jwt_secret_key = secrets.token_bytes(16) print(jwt_secret_key) # Output example: b'L\x9b\xd6i4\xc3\x1d\x95\xe3\xf78z\xdda\x97\xec'
אחסון המפתח ב-Secret Manager
בדוגמה הבאה של פקודה, מחליפים את my_key במפתח הסודי שרוצים להשתמש בו.
$ python generate_secret_key.py | gcloud secrets create $JWT_SECRET_NAME --data-file=- \ --replication-policy=user-managed --locations=$SERVICE_REGION
הגדרת Memorystore for Redis
כדי להגדיר את Redis, צריך את משתני הסביבה הבאים:
-
VPC_CONNECTOR_NAME: השם של מחבר Serverless VPC Access לחיבור שירותי Cloud Run אל Memorystore for Redis. ערך מומלץ:aa-integration-vpc. -
VPC_NETWORK: רשת ה-VPC שאליה רוצים לצרף את מחבר Serverless VPC Access. הערך צריך להיותdefaultאם לא מגדירים VPC לפרויקט Google Cloud . -
VPC_SUBNET: השם של רשת ה-VPC המורשית שמכונת Redis מצורפת אליה. הערך צריך להיותdefaultאם לא התאמתם אישית את הגדרות רשת ה-VPC. -
REDIS_IP_RANGE: רשת פנימית של כתובות IP לא שמורות עבור מחבר Serverless VPC Access. נדרש שטח אחסון לא מוקצה של/28. הערך המומלץ:10.8.0.0/28(הערך הזה מתאים לרוב הפרויקטים החדשים). -
REDIS_INSTANCE_ID: שם למכונת Redis. הערך המומלץ:aa-integration-redis.
יצירת מופע Redis באזור של שירותי Cloud Run
מריצים את הפקודה הבאה:
$ gcloud redis instances create $REDIS_INSTANCE_ID --size=5 --region=$SERVICE_REGION
אתם יכולים להתחבר למופע Redis מ-Cloud Run באמצעות תעבורת נתונים יוצאת (egress) ישירה או חיבור לרשת (VPC) מאפליקציית serverless.
יצירת מחבר של חיבור לרשת (VPC) מאפליקציית serverless {:#create-svpca-connector} (אופציונלי)
האפשרות הזו היא אופציונלית עכשיו אם הלקוחות בוחרים באפשרות 'יציאה ישירה'. אם בוחרים באפשרות 'חיבור לרשת (VPC) מאפליקציית serverless', צריך ליצור מחבר של חיבור לרשת (VPC) מאפליקציית serverless. פרטים נוספים על השלב הזה זמינים במדריך ל-Cloud Run.
מוודאים ש-Serverless VPC Access API מופעל בפרויקט:
$ gcloud services enable vpcaccess.googleapis.com
יצירת מחבר של חיבור לרשת (VPC) מאפליקציית serverless עם טווח כתובות IP מותאם אישית:
$ gcloud compute networks vpc-access connectors create $VPC_CONNECTOR_NAME \ --network $VPC_NETWORK \ --region $SERVICE_REGION \ --range $REDIS_IP_RANGE
שמירת מארח Redis ויציאת Redis כמשתני סביבה
- מגדירים את כתובת ה-IP של מופע Redis כמשתנה סביבה
REDIS_HOST. - מגדירים את מספר היציאה של מופע Redis למשתנה הסביבה
REDIS_PORT.
פריסת שירות המחבר של ממשק המשתמש
בשביל שירות המחבר של ממשק המשתמש, צריך את משתני הסביבה הבאים:
-
CONNECTOR_SERVICE_NAME: שם השירות של מחבר ממשק המשתמש ב-Cloud Run. הערך המומלץ:ui-connector. -
CONNECTOR_IMAGE_NAME: שם התמונה של שירות UI Connector. הערך יכול להיות זהה לערך שלCONNECTOR_SERVICE_NAME. הערך המומלץ:ui-connector.
יצירת קובץ האימג' של Docker
מריצים את הפקודה הבאה בתיקייה /ui-connector:
$ gcloud builds submit --tag gcr.io/$GCP_PROJECT_ID/$CONNECTOR_IMAGE_NAME
פריסת מחבר ממשק משתמש ב-Cloud Run
ב/ui-connector folder, מריצים את הפקודה הבאה:
- אם משתמשים ב-Direct Egress כדי להתחבר ל-Redis.
$ gcloud run deploy $CONNECTOR_IMAGE_NAME \ --image gcr.io/$GCP_PROJECT_ID/$CONNECTOR_IMAGE_NAME \ --platform managed \ --service-account=$CONNECTOR_SERVICE_ACCOUNT_NAME \ --allow-unauthenticated \ --timeout 3600 \ --region $SERVICE_REGION \ --network $VPC_NETWORK \ --subnet $VPC_SUBNET \ --clear-vpc-connector \ --min-instances=1 \ --set-env-vars REDISHOST=$REDIS_HOST,REDISPORT=$REDIS_PORT,GCP_PROJECT_ID=$GCP_PROJECT_ID,AUTH_OPTION=$AUTH_OPTION \ --update-secrets=/secret/jwt_secret_key=${JWT_SECRET_NAME}:latest
- אם משתמשים במחבר חיבור לרשת (VPC) מאפליקציית serverless שנוצר לחיבור Redis.
$ gcloud run deploy $CONNECTOR_IMAGE_NAME \ --image gcr.io/$GCP_PROJECT_ID/$CONNECTOR_IMAGE_NAME \ --platform managed \ --service-account=$CONNECTOR_SERVICE_ACCOUNT_NAME \ --allow-unauthenticated \ --timeout 3600 \ --region $SERVICE_REGION \ --vpc-connector $VPC_CONNECTOR_NAME \ --clear-network \ --min-instances=1 \ --no-cpu-throttling \ --set-env-vars REDISHOST=$REDIS_HOST,REDISPORT=$REDIS_PORT,GCP_PROJECT_ID=$GCP_PROJECT_ID,AUTH_OPTION=$AUTH_OPTION \ --update-secrets=/secret/jwt_secret_key=${JWT_SECRET_NAME}:latest
רושמים את כתובת ה-URL של השירות של מחבר ממשק המשתמש שנפרס, שבה ישתמשו לקוחות (מחשבים של סוכנים).
פריסת שירות מיירט של Cloud Pub/Sub
כדי להשתמש בשירות interceptor של Pub/Sub, צריך להגדיר את משתני הסביבה הבאים:
-
INTERCEPTOR_SERVICE_NAME: שם השירות של Cloud Run של ה-interceptor של Cloud Pub/Sub. הערך המומלץ:cloud-pubsub-interceptor. -
INTERCEPTOR_IMAGE_NAME: שם התמונה של שירות ה-interceptor של Cloud Pub/Sub. יכול להיות זהה לערך שלINTERCEPTOR_SERVICE_NAME. הערך המומלץ:cloud-pubsub-interceptor. -
INTERCEPTOR_SERVICE_ACCOUNT_NAME: חשבון השירות של זמן הריצה של Cloud Pub/Sub interceptor.
יצירת קובץ האימג' של Docker
מריצים את הפקודה הבאה בתיקייה /cloud-pubsub-interceptor:
$ gcloud builds submit --tag gcr.io/$GCP_PROJECT_ID/$INTERCEPTOR_IMAGE_NAME
פריסת interceptor של Pub/Sub ב-Cloud Run
מריצים את הפקודה הבאה בתיקייה /cloud-pubsub-interceptor:
- אם משתמשים ב-Direct Egress כדי להתחבר ל-Redis.
$ gcloud run deploy $INTERCEPTOR_SERVICE_NAME \ --image gcr.io/$GCP_PROJECT_ID/$INTERCEPTOR_IMAGE_NAME \ --platform managed \ --service-account=$INTERCEPTOR_SERVICE_ACCOUNT_NAME \ --region $SERVICE_REGION \ --network $VPC_NETWORK \ --subnet $VPC_SUBNET \ --clear-vpc-connector \ --ingress=internal \ --min-instances=1 \ --no-cpu-throttling \ # You can also add LOGGING_FILE here to specify the logging file path on Cloud Run. --set-env-vars REDISHOST=$REDIS_HOST,REDISPORT=$REDIS_PORT
- אם משתמשים במחבר חיבור לרשת (VPC) מאפליקציית serverless שנוצר לחיבור Redis.
$ gcloud run deploy $INTERCEPTOR_SERVICE_NAME \ --image gcr.io/$GCP_PROJECT_ID/$INTERCEPTOR_IMAGE_NAME \ --platform managed \ --service-account=$INTERCEPTOR_SERVICE_ACCOUNT_NAME \ --region $SERVICE_REGION \ --vpc-connector $VPC_CONNECTOR_NAME \ --clear-network \ --ingress=internal \ --min-instances=1 \ # You can also add LOGGING_FILE here to specify the logging file path on Cloud Run. --set-env-vars REDISHOST=$REDIS_HOST,REDISPORT=$REDIS_PORT
שמירת כתובת ה-URL של הפריסה
מגדירים את כתובת ה-URL של הפריסה כמשתנה הסביבה INTERCEPTOR_SERVICE_URL.
הגדרת מינויים ל-Cloud Pub/Sub
המינויים ל-Cloud Pub/Sub משתמשים ב:
- נושאים
- פרופיל שיחה
- חשבון שירות
- הרשאה לחשבון שירות עבור שירות interceptor
יצירה של נושאים ב-Cloud Pub/Sub
יוצרים נושא Cloud Pub/Sub לכל סוג של התראה לגבי אירוע שרוצים לקבל מ-Dialogflow. אלה סוגי ההתראות על אירועים שזמינים:
- אירועים של הצעות חדשות: אירועים שנשלחים כשזמינות הצעות חדשות של Agent Assist (לדוגמה, הצעות חדשות של תשובות חכמות בתגובה לאמירה של לקוח).
- אירועים של הודעות חדשות: אירועים שנשלחים בכל פעם שמזוהה אמירה חדשה מסוכן או מלקוח (לדוגמה, הלקוח אומר
Hi). - אירועים חדשים של מחזור החיים של שיחה: אירועים שנשלחים לשינויים מסוימים במחזור החיים של שיחה (לדוגמה, כששיחה מתחילה או מסתיימת).
- אירועי התראה על תוצאת זיהוי חדשה: אירועים שנשלחים כשמזוהה תמליל ביניים מסוכן או מלקוח (לדוגמה, הלקוח אומר
Hi, how can I help you?, תמליל הביניים הואHi how canבזמן שהלקוח מדבר).
חשוב לרשום את מזהה הנושא ואת שם הנושא כדי להשתמש בהם בהמשך בהטמעה של ה-backend.
הגדרת פרופיל שיחה
מגדירים פרופיל שיחה עם נושאי Cloud Pub/Sub שיצרתם בשלב הקודם.
- כשיוצרים פרופיל שיחה חדש, בוחרים באפשרות התראות Pub/Sub ואז באפשרות הפעלת התראות Pub/Sub. אחרי ההפעלה, אפשר לסמן את התיבות לצד סוגי ההתראות שרוצים להפעיל ולהזין את מזהה הנושא של נושא Cloud Pub/Sub שמשויך להתראה.
- בוחרים באפשרות
JSONכפורמט ההודעה לכל נושא.
יצירת חשבון שירות לזהות של מינוי Pub/Sub
יוצרים חשבון שירות שמייצג את זהות המינוי ל-Pub/Sub באמצעות הפקודה הבאה:
$ gcloud iam service-accounts create cloud-run-pubsub-invoker \ --display-name "Cloud Run Pub/Sub Invoker"
מתן הרשאה לחשבון השירות להפעיל את שירות ה-interceptor
מריצים את הפקודה הבאה:
$ gcloud run services add-iam-policy-binding $INTERCEPTOR_SERVICE_NAME \ --member=serviceAccount:cloud-run-pubsub-invoker@$GCP_PROJECT_ID.iam.gserviceaccount.com \ --role=roles/run.invoker
יצירת מינויים לנושאים ב-Cloud Pub/Sub
לכל נושא שיצרתם, אתם צריכים ליצור מינוי תואם ל-Cloud Pub/Sub.
אירועים חדשים של הצעות
מחליפים את your-new-suggestion-topic-id בנושא Cloud Pub/Sub שהגדרתם להצעות חדשות:
$ export TOPIC_ID='your-new-suggestion-topic-id' && gcloud pubsub subscriptions create $SUBSCRIPTION_NAME --topic $TOPIC_ID \ --push-endpoint=$INTERCEPTOR_SERVICE_URL/human-agent-assistant-event \ --push-auth-service-account=cloud-run-pubsub-invoker@$GCP_PROJECT_ID.iam.gserviceaccount.com
אירועים חדשים של הודעות
מחליפים את your-new-message-event-topic-id בנושא Cloud Pub/Sub שהגדרתם לאירועים של הודעות חדשות:
$ export TOPIC_ID='your-new-message-event-topic-id' && gcloud pubsub subscriptions create $SUBSCRIPTION_NAME --topic $TOPIC_ID \ --push-endpoint=$INTERCEPTOR_SERVICE_URL/new-message-event \ --push-auth-service-account=cloud-run-pubsub-invoker@$GCP_PROJECT_ID.iam.gserviceaccount.com
אירועים במחזור החיים של שיחה
מחליפים את your-conversation-lifecycle-event-topic בנושא Cloud Pub/Sub שהגדרתם לאירועים חדשים במחזור החיים של השיחה:
$ export TOPIC_ID='your-conversation-lifecycle-event-topic' && gcloud pubsub subscriptions create $SUBSCRIPTION_NAME --topic $TOPIC_ID \ --push-endpoint=$INTERCEPTOR_SERVICE_URL/conversation-lifecycle-event \ --push-auth-service-account=cloud-run-pubsub-invoker@$GCP_PROJECT_ID.iam.gserviceaccount.com
אירועים חדשים של התראות על תוצאות זיהוי
$ export TOPIC_ID='your-new-recognition-result-notification-event-topic' && gcloud pubsub subscriptions create $SUBSCRIPTION_NAME --topic $TOPIC_ID \ --push-endpoint=$INTERCEPTOR_SERVICE_URL/new-recognition-result-notification-event \ --push-auth-service-account=cloud-run-pubsub-invoker@$GCP_PROJECT_ID.iam.gserviceaccount.com