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

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

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

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

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

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

/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 מבצע את הפעולות הבאות:

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

כברירת מחדל, האורך המקסימלי של שם הארגון ושם הסביבה הוא 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:

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

יצירת ארגון באמצעות קריאות ל-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

קובץ התצורה הזה מכיל את המידע הדרוש כדי ליצור את הסביבה Host (מארח):

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

כאשר example.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 המוצפן של Google.

אפשר להשתמש בקריאה הבאה ל-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 לענן הפרטי.