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

אפשר ליצור ארגון, סביבה ומארח וירטואלי בשורת הפקודה באמצעות פקודה אחת, או ליצור כל אחד מהם בנפרד. נוסף לכך, אפשר להשתמש ב-Edge API כדי לבצע רבות מהפעולות האלו.

סרטון: מומלץ לצפות בסרטון קצר כדי לקבל סקירה כללית על ההגדרה של הארגון ב-Apigee.

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

לפני שיוצרים שרת proxy ל-API ב-Apigee Edge, צריך ליצור לפחות ארגון אחד, ובכל ארגון, לפחות סביבה אחת ומארח וירטואלי אחד.

בדרך כלל, ארגונים וסביבות נוצרים יחד. כדי לפשט את התהליך, אפשר להשתמש בכלי העזר apigee-provision. מפעילים אותו משורת הפקודה בשרת Edge Management Server:

/opt/apigee/apigee-service/bin/apigee-service apigee-provision setup-org -f configFile

כאשר configFile הוא הנתיב לקובץ תצורה שנראה דומה לדוגמה הבאה:

# Set Edge sys admin credentials.
ADMIN_EMAIL=your@email.com
APIGEE_ADMINPW=admin_password  # If omitted, you are prompted for it.
NEW_USER="y"
USER_NAME=orgAdmin@myCo.com
FIRST_NAME=foo
LAST_NAME=bar
USER_PWD="userPword"
ORG_NAME=example  # lowercase only, no spaces, underscores, or periods.
ENV_NAME=prod  # lowercase only
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

כשמגדירים ארגון, הסקריפט setup-org מבצע את הפעולות הבאות:

  • יצירת הארגון.
  • משייך את הארגון ל-pod "gateway". אי אפשר לשנות אותה.
  • הוספת המשתמש שצוין כמנהל המערכת של הארגון. אם המשתמש לא קיים, אפשר ליצור אותו.
  • יצירת סביבה אחת או יותר.
  • יוצר מארח וירטואלי אחד או יותר לכל סביבה.
  • משייך את הסביבה לכל מעבדי ההודעות.
  • הפעלת ניתוח נתונים.

כברירת מחדל, האורך המקסימלי של שם הארגון ושם הסביבה הוא 20 תווים כשמשתמשים בכלי השירות apigee-provision. המגבלה הזו לא רלוונטית אם משתמשים ב-Edge API ישירות כדי ליצור את הארגון או את הסביבה. שם הארגון ושם הסביבה חייבים להיות באותיות קטנות.

יצירת ארגון

כדי ליצור ארגון משתמשים בפקודה create-org, כמו בדוגמה הבאה:

/opt/apigee/apigee-service/bin/apigee-service apigee-provision create-org -f configFile

הסקריפט יוצר את הארגון, אבל לא מוסיף או מגדיר את הסביבות והמארחים הווירטואליים שנדרשים על ידי הארגון כדי לטפל בקריאות ל-API.

קובץ התצורה מכיל את שם הארגון ואת כתובת האימייל של מנהל הארגון. התווים שאפשר להשתמש בהם במאפיין name מוגבלים ל- a-z0-9\-$%. אין להשתמש ברווחים, בנקודות או באותיות רישיות בשם:

APIGEE_ADMINPW=admin_password    # If omitted, you are prompted for it.
ORG_NAME=example  # lowercase only, no spaces, underscores, or periods.
ORG_ADMIN=orgAdmin@myCo.com

הסקריפט create-org:

  • יצירת הארגון.
  • משייך את הארגון ל-pod "gateway".
  • הוספת המשתמש שצוין כמנהל המערכת של הארגון. המשתמש חייב כבר קיים. אחרת הסקריפט יוצר שגיאה.

יצירת ארגון באמצעות קריאות ל-API

כדי ליצור ארגון אפשר להשתמש בקריאות הבאות ל-API. הקריאה הראשונה יוצרת את הארגון:

curl -H "Content-Type:application/xml" -u sysAdminEmail:adminPasswd \
  -X POST http://management_server_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://management_server_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=admin_password  # If omitted, you are prompted for it.
ORG_NAME=example  # lowercase only, no spaces, underscores, or periods.
ENV_NAME=prod  # lowercase only
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

הפקודה add-env:

  • יוצרים את הסביבה.
  • יוצר מארח וירטואלי יחיד עבור הסביבה.
  • משייכת את הסביבה לכל מעבדי ההודעות ב-pod שמשויך לארגון שמכיל את הסביבה.
  • הפעלת ניתוח נתונים

יצירת סביבה באמצעות קריאות ל-API

לחלופין, אפשר להשתמש בקריאות הבאות ל-API כדי ליצור סביבה. הקריאה הראשונה יוצרת את הסביבה:

curl -H "Content-Type:application/xml" -u sysAdminEmail:adminPasswd \
  -X POST http://management_server_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://management_server_IP:8080/v1/organizations/org_name/environments/env_name/servers \
  -d "action=add&uuid=uuid"

כאשר uuid הוא מזהה ייחודי אוניברסלי (UUID) של מעבד ההודעות. אפשר למצוא את ה-UUID באמצעות הפקודה:

curl http://Message_Processor_IP:8082/v1/servers/self

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

הקריאה הבאה ל-API מפעילה את Analytics בסביבה נתונה. האימות מאמת את הקיום של שרתי Qpid ו-Postgres ב-POD של כל מרכזי הנתונים. לאחר מכן הוא מתחיל את תהליך ההצטרפות של Analytics לארגון ולסביבה שצוינו.

קובץ התצורה הזה מכיל:

ORG_NAME=orgName  # lowercase only, no spaces, underscores, or periods.
ENV_NAME=envName  # lowercase only

כאשר 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:password http://management_server_IP/v1/servers?pod=central

הפלט של הפקודה הזו הוא אובייקט JSON. עבור כל שרת Qpid, הפלט יופיע בצורה הבאה:

"type" : [ "qpid-server" ],
"uUID" : "d3c5acf0-f88a-478e-948d-6f3094f12e3b"

עבור Postgres, מריצים את הפקודה הבאה:

curl -u sysAdminEmail:admin_password http://management_server_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://management_server_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 בענן הפרטי.