כדי שמישור זמן הריצה ומישור הבקרה יוכלו לתקשר, צריך להפעיל את ההרשאות הנדרשות לגישה של Synchronizer ושל מפרסם הניתוחים באמצעות updateControlPlaneAccess API.
קבלת טוקן הרשאה
כדי לבצע את הקריאות ל-Apigee API שמתוארות בהמשך הנושא, צריך לקבל אסימון הרשאה עם התפקיד "אדמין ארגוני ב-Apigee".
- אם אתם לא הבעלים של הפרויקט בענן ב-Google Cloud שמשויך לארגון שלכם ב-Apigee Hybrid, ודאו שלחשבון המשתמש שלכם ב-Google Cloud יש את התפקיד roles/apigee.admin (אדמין של ארגון ב-Apigee). כדי לבדוק את התפקידים שהוקצו לכם, אתם יכולים להשתמש בפקודה הבאה:
gcloud projects get-iam-policy ${PROJECT_ID} \ --flatten="bindings[].members" \ --format='table(bindings.role)' \ --filter="bindings.members:your_account_email"לדוגמה:
gcloud projects get-iam-policy my-project \ --flatten="bindings[].members" \ --format='table(bindings.role)' \ --filter="bindings.members:myusername@example.com"
הפלט אמור לכלול את
roles/apigee.admin. - אם אין לכם את
roles/apigee.admin, הוסיפו את התפקיד אדמין ארגוני ב-Apigee לחשבון המשתמש שלכם. כדי להוסיף את התפקיד לחשבון המשתמש, משתמשים בפקודה הבאה:gcloud projects add-iam-policy-binding ${PROJECT_ID} \ --member user:your_account_email \ --role roles/apigee.adminלדוגמה:
gcloud projects add-iam-policy-binding my-project \ --member user:myusername@example.com \ --role roles/apigee.admin
-
בשורת הפקודה, משיגים את פרטי הכניסה לאימות של
gcloudבאמצעות הפקודה הבאה:Linux או MacOS
export TOKEN=$(gcloud auth print-access-token)
כדי לוודא שהאסימון אוכלס, משתמשים ב-
echo, כמו בדוגמה הבאה:echo $TOKEN
האסימון אמור להופיע כמחרוזת מקודדת.
Windows
for /f "tokens=*" %a in ('gcloud auth print-access-token') do set TOKEN=%aכדי לוודא שהאסימון אוכלס, משתמשים ב-
echo, כמו בדוגמה הבאה:echo %TOKEN%
האסימון אמור להופיע כמחרוזת מקודדת.
הפעלת הגישה לסנכרון
כדי להפעיל את הגישה לסנכרון:
- משיגים את כתובת האימייל של חשבון השירות שאתם נותנים לו גישה לסנכרון.
בסביבות ייצור, הערך צריך להיות
apigee-synchronizer. בסביבות ללא ייצור, הערך צריך להיותapigee-non-prod. משתמשים בפקודה הבאה:ייצור
gcloud iam service-accounts list --project ${PROJECT_ID} --filter "apigee-synchronizer"לא בסביבת ייצור
gcloud iam service-accounts list --project ${PROJECT_ID} --filter "apigee-non-prod" - מפעילים את ה-API updateControlPlaneAccess כדי להפעיל את ההרשאות הנדרשות לסנכרון באמצעות הפקודה הבאה:
אין מיקום לאחסון הנתונים
curl -X PATCH -H "Authorization: Bearer $TOKEN" \ -H "Content-Type:application/json" \ "https://apigee.googleapis.com/v1/organizations/${ORG_NAME}/controlPlaneAccess?update_mask=synchronizer_identities" \ -d "{\"synchronizer_identities\": [\"serviceAccount:apigee-synchronizer@${ORG_NAME}.iam.gserviceaccount.com\"]}"כאשר:
-
${ORG_NAME}: השם של הארגון ההיברידי. -
apigee-synchronizer@${ORG_NAME}.iam.gserviceaccount.com: כתובת האימייל של חשבון השירות.
מיקום אחסון הנתונים
curl -X PATCH -H "Authorization: Bearer $TOKEN" \ -H "Content-Type:application/json" \ "https://$CONTROL_PLANE_LOCATION-apigee.googleapis.com/v1/organizations/${ORG_NAME}/controlPlaneAccess?update_mask=synchronizer_identities" \ -d "{\"synchronizer_identities\": [\"serviceAccount:apigee-synchronizer@${ORG_NAME}.iam.gserviceaccount.com\"]}"כאשר:
-
CONTROL_PLANE_LOCATION: המיקום של נתוני מישור הבקרה אם בהתקנה ההיברידית נעשה שימוש במיקום אחסון הנתונים. זהו המיקום שבו מאוחסן תוכן הליבה של הלקוח, כמו חבילות שרת proxy. רשימת האזורים הזמינים של מישור הבקרה של Apigee API -
${ORG_NAME}: השם של הארגון ההיברידי. -
apigee-synchronizer@${ORG_NAME}.iam.gserviceaccount.com: כתובת האימייל של חשבון השירות.
-
- כדי לוודא שחשבון השירות הוגדר, משתמשים בפקודה הבאה כדי לשלוח קריאה ל-API ולקבל רשימה של חשבונות שירות:
אין מיקום לאחסון הנתונים
curl -X GET -H "Authorization: Bearer $TOKEN" \ -H "Content-Type:application/json" \ "https://apigee.googleapis.com/v1/organizations/${ORG_NAME}/controlPlaneAccess"מיקום אחסון הנתונים
curl -X GET -H "Authorization: Bearer $TOKEN" \ -H "Content-Type:application/json" \ "https://CONTROL_PLANE_LOCATION-apigee.googleapis.com/v1/organizations/${ORG_NAME}/controlPlaneAccess"הפלט אמור להיראות כך:
{ "synchronizerIdentities": [ "serviceAccount:apigee-synchronizer@YOUR_ORG_NAME.iam.gserviceaccount.com" ] }
הפעלת גישה לבעלי תוכן דיגיטלי ב-Analytics
כמה רכיבי זמן ריצה של Apigee hybrid מפרסמים רשומות של ניתוח נתונים וניפוי באגים כדי לספק מידע לדיווח ולניפוי באגים. כדי לאפשר פרסום של הנתונים האלה, צריך לתת הרשאות נוספות לחשבונות השירות שמריצים את רכיבי Apigee האלה, כדי לפרסם נתונים ישירות במישור הבקרה.
כדי לתת לבעלי האתרים גישה ל-Analytics:
- משיגים את כתובת האימייל של חשבונות השירות שאתם רוצים לתת להם גישה של בעלי תוכן דיגיטלי ב-Analytics.
בסביבות ייצור, התפקידים צריכים להיות
apigee-runtime,apigee-martו-apigee-mint-task-scheduler(אם מפעילים את Monetization for Apigee hybrid). בסביבות ללא ייצור, הערך צריך להיותapigee-non-prod.ייצור
gcloud iam service-accounts list --project ${PROJECT_ID} --filter "apigee-runtime OR apigee-mart OR apigee-mint-task-scheduler"לא בסביבת ייצור
gcloud iam service-accounts list --project ${PROJECT_ID} --filter "apigee-non-prod" - מגדירים הרשאות לחשבונות השירות של רכיבי זמן הריצה, MART ומתזמן המשימות של mint (אם מפעילים את Monetization for Apigee hybrid בגרסה v1.15.1 ואילך) כדי לפרסם נתונים במישור הבקרה באמצעות הפקודה הבאה:
אין מיקום לאחסון הנתונים
מפעילים את ה-API של
updateControlPlaneAccessכדי להפעיל הרשאות לחשבונות השירות של סביבת זמן הריצה ו-MART:curl -X PATCH -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type:application/json" \ "https://apigee.googleapis.com/v1/organizations/$ORG_NAME/controlPlaneAccess?update_mask=analytics_publisher_identities" \ -d "{\"analytics_publisher_identities\": [\"serviceAccount:apigee-mart@$ORG_NAME.iam.gserviceaccount.com\",\"serviceAccount:apigee-runtime@$ORG_NAME.iam.gserviceaccount.com\"]}"אם אתם מפעילים את המונטיזציה ב-Apigee hybrid, הגדירו את ההרשאות לחשבון השירות של מתזמן המשימות של mint:
curl -X PATCH -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type:application/json" \ "https://apigee.googleapis.com/v1/organizations/$ORG_NAME/controlPlaneAccess?update_mask=analytics_publisher_identities" \ -d "{\"analytics_publisher_identities\": [\"serviceAccount:apigee-mart@$ORG_NAME.iam.gserviceaccount.com\",\"serviceAccount:apigee-runtime@$ORG_NAME.iam.gserviceaccount.com\",\"serviceAccount:apigee-mint-task-scheduler@$ORG_NAME.iam.gserviceaccount.com\"]}"כאשר אלה כתובות האימייל של חשבונות השירות:
apigee-mart@${ORG_NAME}.iam.gserviceaccount.comapigee-mint-task-scheduler@${ORG_NAME}.iam.gserviceaccount.comapigee-runtime@${ORG_NAME}.iam.gserviceaccount.com
מיקום אחסון הנתונים
קוראים ל-API של
updateControlPlaneAccessכדי להפעיל הרשאות לחשבונות השירות של סביבת זמן הריצה ו-MART:curl -X PATCH -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type:application/json" \ "https://$CONTROL_PLANE_LOCATION-apigee.googleapis.com/v1/organizations/$ORG_NAME/controlPlaneAccess?update_mask=analytics_publisher_identities" \ -d "{\"analytics_publisher_identities\": [\"serviceAccount:apigee-mart@$ORG_NAME.iam.gserviceaccount.com\",\"serviceAccount:apigee-runtime@$ORG_NAME.iam.gserviceaccount.com\"]}"אם אתם מפעילים את Monetization ב-Apigee hybrid, הגדירו את ההרשאות לחשבון השירות של מתזמן המשימות של mint:
curl -X PATCH -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type:application/json" \ "https://$CONTROL_PLANE_LOCATION-apigee.googleapis.com/v1/organizations/$ORG_NAME/controlPlaneAccess?update_mask=analytics_publisher_identities" \ -d "{\"analytics_publisher_identities\": [\"serviceAccount:apigee-mart@$ORG_NAME.iam.gserviceaccount.com\",\"serviceAccount:apigee-runtime@$ORG_NAME.iam.gserviceaccount.com\",\"serviceAccount:apigee-mint-task-scheduler@$ORG_NAME.iam.gserviceaccount.com\"]}"כאשר:
-
CONTROL_PLANE_LOCATIONהוא המיקום של נתוני מישור הבקרה אם ההתקנה ההיברידית משתמשת במיקום אחסון הנתונים. זהו המיקום שבו מאוחסן תוכן הליבה של הלקוח, כמו חבילות שרת proxy. רשימת האזורים הזמינים של מישור הבקרה של Apigee API - אלה כתובות האימייל של חשבונות השירות:
apigee-mart@${ORG_NAME}.iam.gserviceaccount.comapigee-mint-task-scheduler@${ORG_NAME}.iam.gserviceaccount.comapigee-runtime@${ORG_NAME}.iam.gserviceaccount.com
התגובה אמורה להיראות כך:
{ "name": "organizations/YOUR_ORG_NAME/operations/8316aa78-c137-4733-92ec-cc0d2d92fd29", "metadata": { "@type": "type.googleapis.com/google.cloud.apigee.v1.OperationMetadata", "operationType": "UPDATE", "targetResourceName": "organizations/YOUR_ORG_NAME/controlPlaneAccess", "state": "IN_PROGRESS" } } - מאמתים את מצב הפעולה באמצעות המזהה בשדה name של תגובת העדכון:
אין מיקום לאחסון הנתונים
curl -X GET -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type:application/json" \ "https://apigee.googleapis.com/v1/organizations/$ORG_NAME/operations/$OPERATION_ID"
מיקום אחסון הנתונים
curl -X GET -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type:application/json" \ "https://CONTROL_PLANE_LOCATION-apigee.googleapis.com/v1/organizations/$ORG_NAME/operations/$OPERATION_ID"
התגובה אמורה להיראות כך:
{ "name": "organizations/YOUR_ORG_NAME/operations/$OPERATION_ID", "metadata": { "@type": "type.googleapis.com/google.cloud.apigee.v1.OperationMetadata", "operationType": "UPDATE", "targetResourceName": "organizations/YOUR_ORG_NAME/controlPlaneAccess", "state": "FINISHED" }, "done": true, "response": { "@type": "type.googleapis.com/google.cloud.apigee.v1.ControlPlaneAccess", "name": "organizations/YOUR_ORG_NAME/controlPlaneAccess" } } - מאמתים את ההגדרה של ControlPlaneAccess בארגון:
אין מיקום לאחסון הנתונים
curl "https://apigee.googleapis.com/v1/organizations/$ORG_NAME/controlPlaneAccess" \ -H "Authorization: Bearer $(gcloud auth print-access-token)"
מיקום אחסון הנתונים
curl "https://CONTROL_PLANE_LOCATION-apigee.googleapis.com/v1/organizations/$ORG_NAME/controlPlaneAccess" \ -H "Authorization: Bearer $(gcloud auth print-access-token)"
התגובה אמורה להיראות כך:
{ "synchronizerIdentities": [ "serviceAccount:apigee-synchronizer@YOUR_ORG_NAME.iam.gserviceaccount.com" ], "analyticsPublisherIdentities": [ "serviceAccount:apigee-mart@YOUR_ORG_NAME.iam.gserviceaccount.com", "serviceAccount:apigee-mint-task-scheduler@YOUR_ORG_NAME.iam.gserviceaccount.com", "serviceAccount:apigee-runtime@YOUR_ORG_NAME.iam.gserviceaccount.com" ] }
עכשיו הפעלתם את מישור הניהול ומישור זמן הריצה של Apigee Hybrid כדי שהם יוכלו לתקשר. בשלב הבא, מתקינים את cert-manager כדי לאפשר ל-Apigee hybrid לפרש ולנהל אישורים.