Edge for Private Cloud גרסה 4.17.05
יצירת ארגון, סביבה ומארח וירטואלי בו-זמנית
לפני שיוצרים שרת proxy ל-API ב-Apigee Edge, צריך ליצור ארגון אחד לפחות, ובכל ארגון סביבה אחת או יותר ומארחים וירטואליים.
בדרך כלל, ארגונים וסביבות נוצרים יחד. כדי לפשט את התהליך, משתמשים בכלי apigee-provision. מריצים אותו משורת הפקודה ב-Edge Management Server:
> /opt/apigee/apigee-service/bin/apigee-service apigee-provision setup-org -f configFile
קובץ התצורה מכיל:
# Set Edge sys admin credentials. ADMIN_EMAIL=your@email.com APIGEE_ADMINPW=adminPword # If omitted, you are prompted for it. NEW_USER="y" USER_NAME=orgAdmin@myCo.com FIRST_NAME=foo LAST_NAME=bar USER_PWD="userPwrod" ORG_NAME=example # lowercase only, no spaces, underscores, or periods. ENV_NAME=prod VHOST_PORT=9001 VHOST_NAME=default VHOST_ALIAS="$IP1:9001" # Optionally configure TLS/SSL for virtual host. # VHOST_SSL=y # Set to "y" to enable TLS/SSL on the virtual host. # KEYSTORE_JAR= # JAR file containing the cert and private key. # KEYSTORE_NAME= # Name of the keystore. # KEYSTORE_ALIAS= # The key alias. # KEY_PASSWORD= # The key password, if it has one. # Optionally set the base URL displayed by the Edge UI for an # API proxy deployed to the virtual host. # VHOST_BASEURL="http://myCo.com" # AXGROUP=axgroup-001 # Default value is axgroup-001
לאחר מכן הפקודה:
- יוצרים את הארגון
הערה: אי אפשר לשנות את שם הארגון אחרי שיוצרים אותו. - שיוך הארגון ל-pod. כברירת מחדל, הוא משויך ל-pod 'gateway'.
- מוסיפים את המשתמש שצוין כאדמין הארגוני. אם המשתמש לא קיים, אפשר ליצור אותו.
- יצירת סביבה אחת או יותר
- יצירת מארח וירטואלי אחד או יותר לכל סביבה
- שיוך הסביבה לכל מעבדי ההודעות
- הפעלת ניתוח נתונים
למידע על קובץ תצורה שקט מלא, ראו הצטרפות לארגון.
כברירת מחדל, האורך המקסימלי של שם הארגון ושם הסביבה הוא 20 תווים כשמשתמשים בכלי apigee-provision. המגבלה הזו לא חלה אם משתמשים ב-Edge API ישירות כדי ליצור את הארגון או הסביבה.
יצירת ארגון
משתמשים בפקודה create-org כדי ליצור ארגון:
> /opt/apigee/apigee-service/bin/apigee-service apigee-provision create-org -f configFile
הסקריפט הזה יוצר את הארגון, אבל לא מוסיף או מגדיר את הסביבות והמארחים הווירטואליים שנדרשים לארגון כדי לטפל בקריאות ל-API.
קובץ התצורה מכיל את שם הארגון ואת כתובת האימייל של האדמין הארגוני. התווים שבהם אפשר להשתמש במאפיין השם מוגבלים ל: a-z0-9\-$%. אסור להשתמש ברווחים, בנקודות ובאותיות רישיות בשם:
APIGEE_ADMINPW=adminPword # If omitted, you are prompted for it. ORG_NAME=example # lowercase only, no spaces, underscores, or periods. ORG_ADMIN=orgAdmin@myCo.com
הפקודה תגרום לכך:
- יצירת הארגון
- משייך את הארגון ל-Pod, כברירת מחדל הוא משייך אותו לתא האפליקציות 'השער'
- הוספת המשתמש שצוין כאדמין הארגוני. המשתמש חייב להיות קיים, אחרת תופיע הודעת שגיאה בסקריפט.
<Error> <Code>organizations.OrganizationAlreadyExists</Code> <Message>Organization : test already exists</Message> <Contexts/> </Error>
יצירת ארגון באמצעות קריאות API
לחלופין, אפשר להשתמש בקריאות ה-API הבאות כדי ליצור ארגון. הקריאה הראשונה יוצרת את הארגון:
curl -H "Content-Type:application/xml" -u <sysAdminEmail>:<adminPasswd> \ -X POST http://<ms-ip>:8080/v1/organizations \ -d '<Organization name="<org-name>" type="paid"/>'
הקריאה הבאה משייכת את הארגון ל-pod:
curl -H "Content-Type:application/x-www-form-urlencoded" \ -u <sysAdminEmail>:<adminPasswd> -X POST \ http://<ms-ip>:8080/v1/organizations/<org-name>/pods \ -d "region=default&pod=gateway"
אפשר לבצע את הקריאה הזו כמה פעמים כדי לשייך את הארגון לכמה רצפי מודעות.
בשיחה האחרונה מתווספת משתמש קיים כמנהל הארגון בארגון:
curl -H "Content-Type:application/xml" -u <sysAdminEmail>:<adminPasswd> \ -X POST \ http://<ms-ip>:8080/v1/organizations/<org-name>/users/<user-email>/userroles/ \ -d '<Roles><Role name="orgadmin"/></Roles>'
אם המשתמש לא קיים, אפשר להשתמש בקריאה הבאה כדי ליצור אותו, כפי שמתואר בקטע הוספת משתמש.
יצירת סביבה
משתמשים בפקודה add-env כדי ליצור סביבה בארגון קיים:
> /opt/apigee/apigee-service/bin/apigee-service apigee-provision add-env -f configFile
קובץ התצורה הזה מכיל את המידע הנדרש ליצירת הסביבה והמארח הווירטואלי:
APIGEE_ADMINPW=adminPword # If omitted, you are prompted for it. ORG_NAME=example # lowercase only, no spaces, underscores, or periods. ENV_NAME=prod VHOST_PORT=9001 VHOST_NAME=default VHOST_ALIAS="$IP1:9001" # Optionally configure TLS/SSL for virtual host. # VHOST_SSL=y # Set to "y" to enable TLS/SSL on the virtual host. # KEYSTORE_JAR= # JAR file containing the cert and private key. # KEYSTORE_NAME= # Name of the keystore. # KEYSTORE_ALIAS= # The key alias. # KEY_PASSWORD= # The key password, if it has one. # Optionally set the base URL displayed by the Edge UI for an # API proxy deployed to the virtual host. # VHOST_BASEURL="http://myCo.com" # AXGROUP=axgroup-001 # Default value is axgroup-001
הפקודה:
- יצירת הסביבה
- יצירת מארח וירטואלי יחיד לסביבה
- שיוך הסביבה לכל מעבדי ההודעות ב-pod שמשויך לארגון שמכיל את הסביבה.
- הפעלת ניתוח נתונים
הערה: אם מפעילים את Analytics בסביבה אחת בארגון, צריך להפעיל את ניתוח הנתונים לכל הסביבות בארגון.
יצירת סביבה באמצעות קריאות API
לחלופין, אפשר להשתמש בקריאות ה-API הבאות כדי ליצור סביבה. הקריאה הראשונה יוצרת את הסביבה:
curl -H "Content-Type:application/xml" -u <sysAdminEmail>:<adminPasswd> \ -X POST http://<ms-ip>:8080/v1/organizations/<org-name>/environments \ -d '<Environment name="<env-name>"/>'
בקריאה הבאה, הסביבה משויכת למעבד הודעות. צריך לבצע את הקריאה הזו לכל מעבד הודעות שרוצים לשייך לסביבה:
curl -H "Content-Type:application/x-www-form-urlencoded" \ -u <sysAdminEmail>:<adminPasswd> -X POST \ http://<ms-ip>:8080/v1/organizations/<org-name>/environments/<env-name>/servers \ -d "action=add&uuid=<uuid>"
כאשר <uuid> הוא מזהה ה-UUID של Message Processor. אפשר לקבל את ה-UUID באמצעות הפקודה:
> curl http://<mp-ip>:8082/v1/servers/self
כאשר <mp-ip> היא כתובת ה-IP של מעבד ההודעות.
הקריאה הבאה ל-API מפעילה את Analytics בסביבה נתונה. הוא מאמת את קיומם של שרתי Qpid ו-Postgres ב-PODs של כל מרכזי הנתונים. לאחר מכן היא מתחילה את תהליך ההצטרפות של Analytics לארגון ולסביבה הנתונים.
> /opt/apigee/apigee-service/bin/apigee-service apigee-provision enable-ax -f configFile
קובץ התצורה הזה מכיל:
ORG_NAME=orgName # lowercase only, no spaces, underscores, or periods. ENV_NAME=envName
curl -H "Content-Type:application/json" -u <sysAdminEmail>:<adminPasswd> -X POST http://<ms-ip>:8080/v1/organizations/<org-name>/environments/<env-name>/analytics/admin -d "@sample.json"
הקובץ sample.json מכיל את הפרטים הבאים:
{ "properties" : { "samplingAlgo" : "reservoir_sampler", "samplingTables" : "10=ten;1=one;", "aggregationinterval" : "300000", "samplingInterval" : "300000", "useSampling" : "100", "samplingThreshold" : "100000" }, "servers" : { "postgres-server" : [ "1acff3a5-8a6a-4097-8d26-d0886853239c", "f93367f7-edc8-4d55-92c1-2fba61ccc4ab" ], "qpid-server" : [ "d3c5acf0-f88a-478e-948d-6f3094f12e3b", "74f67bf2-86b2-44b7-a3d9-41ff117475dd"] } }
המאפיין postgres-servers מכיל רשימה מופרדת בפסיקים של מזהי ה-UUID של Postgres, והמאפיין qpid-server מכיל את מזהי ה-UUID של Qpid. אם אתם צריכים לקבל את מזהי ה-UUID האלה, תוכלו להשתמש בפקודות הבאות.
ב-Qpid, מריצים את הפקודה:
curl -u <sysAdminEmail>:<passwd> http://<ms-ip>/v1/servers?pod=central
הפלט של הפקודה הזו הוא אובייקט JSON. לכל שרת Qpid תוצג פלט בפורמט הבא:
"type" : [ "qpid-server" ], "uUID" : "d3c5acf0-f88a-478e-948d-6f3094f12e3b"
בשביל Postgres, מריצים את הפקודה:
curl -u <sysAdminEmail>:<passwd> http://<ms-ip>/v1/servers?pod=analytics
לכל שרת Postgres יוצג פלט בפורמט:
"type" : [ "postgres-server" ], "uUID" : "d3c5acf0-f88a-478e-948d-6f3094f12e3b"
יצירת מארח וירטואלי
אפשר ליצור מארח וירטואלי בסביבה קיימת בארגון. לרוב, בסביבה יש תמיכה במספר מארחים וירטואליים. לדוגמה, מארח וירטואלי אחד עשוי לתמוך בפרוטוקול HTTP, בעוד שמארח וירטואלי אחר באותה סביבה תומך בפרוטוקול HTTPS מוצפן.
אפשר להשתמש בקריאת ה-API הבאה כדי ליצור עוד מארחים וירטואליים, או כדי ליצור מארח וירטואלי בסביבה ללא מארח וירטואלי:
curl -H "Content-Type:application/xml" -u <sysAdminEmail>:<adminPasswd> \ -X POST \ http://<ms-ip>:8080/v1/organizations/<org-name>/environments/<env-name>/virtualhosts \ -d '<VirtualHost name="default"> \ <HostAliases> \ <HostAlias>myorg-test.apigee.net</HostAlias> \ </HostAliases> \ <Interfaces/> \ <Port>443</Port> \ </VirtualHost>'
לתיאור מלא של יצירת מארח וירטואלי, כולל יצירת מארח וירטואלי מאובטח שמשתמש ב-TLS/SSL ב-HTTPS, ראו הגדרת גישה של TLS לממשק API בשביל הענן הפרטי.