בקטע הזה מוסבר איך להשתמש ב-Apigee Connect (בטא) לתקשורת בין מישור הניהול ההיברידי לבין שירות MART במישור זמן הריצה.
מבוא
Apigee Connect מאפשר למישור הניהול של Apigee Hybrid להתחבר בצורה מאובטחת לשירות MART במישור זמן הריצה, בלי שתצטרכו לחשוף את נקודת הקצה של MART באינטרנט. אם אתם משתמשים ב-Apigee Connect, אתם לא צריכים להגדיר את שער הכניסה של MART עם כינוי מארח ואישור DNS מורשה.

דרישות מוקדמות
צריך להתקין ולתת הגדרות ל-Apigee Hybrid בגרסה 1.2.0 ומעלה לפני שמגדירים את Apigee Connect.
- אם זו הפעם הראשונה שאתם מתקינים את Apigee hybrid, אתם צריכים לפעול לפי הוראות ההתקנה במסמכי Apigee hybrid.
- אם אתם משתמשים כרגע ב-Apigee hybrid בגרסה 1.1.x, אתם צריכים לשדרג את ההתקנה לגרסה 1.2.0 לפני שתמשיכו. שלבי השדרוג מפורטים במאמר שדרוג Apigee Hybrid
הוספת Apigee Connect לסביבת זמן הריצה ההיברידית
בקטע הזה מניחים שהתקנתם את Apigee Hybrid 1.2.0 ואילך, או שדרגתם לגרסה הזו והגדרתם אותה.
כש-Apigee Connect מוגדר ומופעל, המערכת מתעלמת מ-MART ingress: מישור הניהול מתחבר ל-MART רק באמצעות Apigee Connect. כל התנועה ב-MART בין מישור זמן הריצה ההיברידי עוברת דרך החיבור המאובטח של Apigee Connect.
כדי להפעיל את Apigee Connect ולהשתמש בו עם Apigee hybrid:
- מפעילים את Apigee Connect API ב
Google Cloud API Library. אפשר להפעיל את ה-API ב
מסוף Google Cloud (GCP) או באמצעות
gcloud. הוראות להפעלת ממשקי API במסוף Google Cloud מופיעות במאמר שלב 3: הפעלת ממשקי API. כדי להשתמש ב-gcloudכדי להפעיל את ה-API:
$ gcloud config set project YOUR_GCP_PROJECT_ID $ gcloud services enable apigeeconnect.googleapis.com
כאשרYOUR_GCP_PROJECT_IDהוא אותו פרויקט GCP שבו הופעל Apigee וסופק לכם ארגון Apigee. - מוסיפים את התפקיד Apigee Connect Agent לחשבון השירות של MART שיצרתם בשלב
Create service accounts (יצירת חשבונות שירות) בהוראות ההתקנה של Apigee hybrid:
$ gcloud projects add-iam-policy-binding YOUR_GCP_PROJECT_ID --member serviceAccount:YOUR_MART_SERVICE_ACCOUNT_EMAIL --role roles/apigeeconnect.Agent
כאשרYOUR_GCP_PROJECT_IDהוא אותו פרויקט GCP שבו הופעל Apigee וסופק לכם ארגון Apigee, ו-YOUR_MART_SERVICE_ACCOUNT_EMAILהוא שם חשבון השירות של MART. השם הוא בצורה של כתובת אימייל. לדוגמה:apigee-mart@my-project.iam.gserviceaccount.com.
התפקיד Apigee Connect Agent מוגדר מראש ומוקצית לו ההרשאה הבאה:
הרשאה תיאור apigeeconnect.endpoints.connectזו ההרשאה להגדרת סוכן Apigee Connect. פרטים על הקצאת הרשאות גישה דרך מסוף GCP או ממשקי API זמינים במאמרים הבאים:
- חשוב לוודא שקובץ המפתח של חשבון השירות של MART נמצא בספרייה
hybrid_files/service_accounts, כפי שמוסבר במאמר יצירת חשבונות שירות. - פותחים את קובץ ההחלפות ומוסיפים את הפסקאות הבאות. במהלך ההגדרה תצטרכו לציין את הנתיב לקובץ המפתח של חשבון השירות שהורדתם. המפתח צריך להיות של חשבון שירות עם התפקיד Apigee Connect Agent .
# Apigee Connect Agent connectAgent: enabled: true serviceAccountPath: ./service-accounts/connect_agent_sa_key.json
מוסיפים את הבית מתחת לכותרת k8sCluster, לדוגמה:
k8sCluster: name: your_cluster_name region: your_cluster_region # Apigee Connect Agent connectAgent: enabled: true serviceAccountPath: ./service-accounts/connect_agent_sa_key.json
# Apigee Connect Agent connectAgent: enabled: true replicaCountMin: 3 serviceAccountPath: ./service-accounts/connect_agent_sa_key.json - מאתרים את המפתח של חשבון השירות עם התפקיד Apigee Organization Admin (אדמין של ארגון Apigee) שהורדתם כשביצעתם את ההתקנה המקורית של Apigee hybrid, כפי שמתואר בקטע הפעלת גישה למסנכרן. המפתח הזה נדרש כדי ליצור טוקן שנדרש לביצוע קריאה ל-API, כמו שמוסבר בהמשך.
- מריצים את שתי הפקודות האלה כדי לקבל אסימון:
$ export GOOGLE_APPLICATION_CREDENTIALS=org-admin-service-account-file $ export TOKEN=$(gcloud auth application-default print-access-token)
כאשר org-admin-service-account-file הוא הנתיב במערכת שלכם למפתח חשבון השירות שהורדתם עם התפקיד אדמין של ארגון Apigee. - כדי להפעיל את Apigee Connect בארגון, צריך להתקשר אל Apigee API הבא:
curl -v -X PUT \ https://apigee.googleapis.com/v1/organizations/your_org_name \ -H "Content-Type: application/json" \ -H "Authorization: Bearer $TOKEN" \ -d '{ "name" : "your_org_name", "properties" : { "property" : [ { "name" : "features.hybrid.enabled", "value" : "true" }, { "name" : "features.mart.connect.enabled", "value" : "true" } ] } }'
- מפעילים את סוכן Apigee Connect באשכול:
$ $APIGEECTL_HOME/apigeectl apply -f your_overrides_file.yaml -c connect-agent
- בודקים את היומן של Apigee Connect Agent. אם לא מדווח על שגיאות, השדרוג הצליח:
$ kubectl logs -n namespace apigee-connect-agent-pod-name
הסוכן של Apigee Connect מדווח על קטגוריות היומן הבאות:
לקבלת עזרה בצפייה ביומני ביקורת ב-Apigee Hybrid, אפשר לעיין במאמר מידע על יומני ביקורת.קטגוריית יומני הביקורת תפעול DATA_READ ConnectionService.ListConnectionsDATA_WRITE Tether.Egress - בדיקת ההתקנה.
mart: hostAlias: "mart.apigee-hybrid-docs.net" serviceAccountPath: ./service-accounts/example-project-apigee-mart.json sslCertPath: ./certs/fullchain.pem sslKeyPath: ./certs/privkey.key
בעקבות השדרוג הזה, מישור זמן הריצה ההיברידי מתקשר עם מישור הניהול באמצעות Apigee Connect.
אפשר לעיין גם במאמר בנושא הסרת Apigee Connect.
בדיקת ההתקנה
- פותחים את ממשק המשתמש של Apigee Hybrid.
- מוודאים שכל המפתחים ואפליקציות המפתחים שיצרתם בעבר מופיעים בממשק המשתמש. השאילתות לגבי הישויות האלה מופנות לשרת ה-MART, ולכן הן יופיעו רק אם התקשורת בין מישורי הניהול והזמן מוגדרת בצורה נכונה.
- כדי לוודא שהבקשות עוברות דרך Apigee Connect ולא דרך MART ingress, צריך לבדוק את היומן של שרת MART. אמורות להופיע רשומות של סוכן Apigee Connect בשם
apigee-connect-agent-1.0:
$ kubectl logs -n apigee apigee-mart-orgname-rc101-q72tl -c apigee-mart | grep connect
לדוגמה:
"2019-12-11 04:59:52,321 org: env: target: action: context-id: mode: pool-1-thread-1 INFO MART_AUDITLOG - MartAuditListener.eventOccurred() : Type:Audit edge-gaambo-controlplane@system.gserviceaccount.com 1576040392317 /v1/organizations/apigee-connect-hybrid-prod/developers/ count=100&expand=true&startKey=4ee9e8f7-12b2-4cde-bf10-32d991469876 200 GET apigee-connect-hybrid-prod 10.40.11.3 10.40.0.5 apigee-connect-agent-1.0 null"
- בממשק המשתמש ההיברידי, יוצרים מוצר API, מפתח ואפליקציית מפתח. לאחר מכן, בודקים את יומן השירות של MART כדי לוודא שרשומות היומן מאשרות שהישויות נשלחו למישור זמן הריצה. לדוגמה, רשומת היומן הבאה מראה שמוצר API בשם
foo-productהתקבל:
$ kubectl logs -n apigee apigee-mart-orgname-rc101-q72tl -c apigee-mart
2019-12-16 22:15:29,572 org: env: target: action: context-id: mode: pool-1-thread-1 INFO MART_AUDITLOG - MartAuditListener.eventOccurred() : Type:Audit edge-gaambo-controlplane@system.gserviceaccount.com 1576534529566 /v1/organizations/myorg/apiproducts/foo-product/ -NA- 201 CREATE myorg 10.16.1.61 10.16.1.64 apigee-connect-agent-1.0 null 2019-12-16 22:15:30,412 org: env: target: action: context-id: mode: pool-1-thread-1 INFO MART_AUDITLOG - MartAuditListener.eventOccurred() : Type:Audit edge-gaambo-controlplane@system.gserviceaccount.com 1576534530407 /v1/organizations/myorg/apps/ apiProduct=foo-product&expand=false 200 GET myorg 10.16.1.61 10.16.1.64 apigee-connect-agent-1.0 null
- אפשר לנסות ליצור ולפרוס שרת proxy חדש, כמו שמוסבר במאמר יצירה ופריסה של שרת proxy.
- כדי להגדיר את ה-proxy ל-API עם אימות של מפתח API, פועלים לפי השלבים במאמר אבטחת proxy ל-API באמצעות דרישה של מפתחות API. סביבת זמן הריצה מקבלת את הנתונים שנדרשים לאימות מפתח API ממישור הניהול דרך Apigee Connect. לכן, אם אימות מפתח ה-API פועל, אתם יודעים ש-Apigee Connect פועל בצורה תקינה. אפשר גם לבדוק את היומנים של Apigee Connect כדי לראות דוח של העברות הנתונים.
הסרת Apigee Connect
אם מוחקים את פריסת Apigee Connect, הסטטוס של ה-pod יכול להישאר במצב 'סיום' למשך עד שבע דקות. הזמן הזה הוא צפוי. סוכני Apigee Connect מחכים שהחיבורים הקיימים יפוגו במקום להפסיק אותם באופן פתאומי. ההשהיה מבטיחה שבקשות שנשלחות לא יאבדו.