יצירת ארגון, סביבה ומארח וירטואלי

Edge for Private Cloud גרסה 4.18.01

יצירת ארגון, סביבה ומארח וירטואלי בו-זמנית

סרטון: צפייה בסרטון קצר עם סקירה כללית של ההגדרה והתצורה של Apigee Organization.

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

יצירת סביבה באמצעות קריאות ל-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 של מעבד ההודעות. כדי למצוא את ה-UUID, משתמשים בפקודה:

curl http://mp-ip:8082/v1/servers/self

כאשר mp-ip היא כתובת ה-IP של מעבד ההודעות.

הקריאה הבאה ל-API מפעילה את Analytics בסביבה נתונה. האימות מאמת את הקיום של שרתי Qpid ו-Postgres ב-POD של כל מרכזי הנתונים. לאחר מכן הוא מתחיל את תהליך ההצטרפות של 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 לממשק API בענן הפרטי מוסבר באופן מלא על יצירת מארח וירטואלי, כולל יצירת מארח וירטואלי מאובטח שמשתמש ב-TLS/SSL ב-HTTPS.