שימוש בכלי השירות apigee-adminapi.sh

Edge for Private Cloud גרסה 4.18.05

משתמשים בכלי השירות apigee-adminapi.sh כדי לבצע את אותן משימות של הגדרת Edge שמבצעים קריאות ל-Edge Management API. היתרון של הכלי apigee-adminapi.sh הוא:

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

הכלי apigee-adminapi.sh לא מחליף את כלי השירות apigee-provision. הכלי apigee-provision משתמש בפועל בכלי apigee-adminapi.sh כדי לבצע את המשימות שלו.

ההבדלים העיקריים בין השניים הם:

  • תוכנת העזר apigee-adminapi.sh מבצעת פונקציות אטומיות שמחליפות קריאות נפרדות ל-Edge API. לדוגמה, כדי ליצור ארגון, סביבה ומארח וירטואלי, נדרשות שלוש פקודות apigee-adminapi.sh נפרדות שמותאמות לשלוש קריאות ל-API.
  • כלי העזר apigee-provision תוכנן לבצע פעולה מלאה ברמה גבוהה בפקודה אחת. לדוגמה, אפשר ליצור ארגון, סביבה ומארח וירטואלי באמצעות פקודת apigee-provision אחת, על ידי העברת קובץ תצורה עם כל המידע הנדרש.

במסמכי התיעוד של Edge נעשה שימוש בשני הכלים בהתאם לצורך.

מתקין את apigee-adminapi.sh

תוכנת השירות apigee-adminapi.sh מותקנת אוטומטית כשמתקינים את apigee-provision או את apigee-validate.

כלי השירות מותקן במיקום הבא:

/opt/apigee/apigee-adminapi/bin/apigee-adminapi.sh

תחביר /opt/apigee/apigee-adminapi/bin/apigee-adminapi.sh

כלי השירות apigee-adminapi.sh משתמש בתחביר פשוט של שורת פקודה. אתם תמיד יכולים להשתמש במקש Tab כדי להציג הנחיה עם פירוט של אפשרויות הפקודות הזמינות.

כדי לראות את כל הפקודות האפשריות, צריך להפעיל את כלי השירות ללא אפשרויות:

/opt/apigee/apigee-adminapi/bin/apigee-adminapi.sh

אם תקישו על מקש Tab אחרי שמקלידים apigee-adminapi.sh, תוצג רשימה של האפשרויות האפשריות:

analytics  classification  logsessions  regions  securityprofile  userroles
buildinfo  GET             orgs         runtime  servers          users

המקש Tab מציג אפשרויות בהתאם להקשר של הפקודה. אם תזין את מקש ה-Tab אחרי ההקלדה:

/opt/apigee/apigee-adminapi/bin/apigee-adminapi.sh orgs

יוצגו האפשרויות האפשריות להשלמת הפקודה orgs:

add  apis  apps  delete  envs  list  pods  userroles

הצגת עזרה לגבי כל פקודה באמצעות האפשרות -h. לדוגמה, אם משתמשים באפשרות -h כפי שמוצג בהמשך:

/opt/apigee/apigee-adminapi/bin/apigee-adminapi.sh orgs -h

כלי העזר מציג את פרטי העזרה המלאים לכל האפשרויות האפשריות לפקודה orgs. בפריט הראשון בפלט מוצג העזרה לפקודה orgs add:

+++++++++++++++++++++++++++++++++++++++++++
orgs add
  Required:
    -o ORG Organization name
  Optional:
    -H HEADER add http header in request
    --admin ADMIN_EMAIL admin email address
    --pwd ADMIN_PASSWORD admin password
    --host EDGE_SERVER edge server to make request to
    --port EDGE_PORT port to use for the http request
    --ssl set EDGE_PROTO to https, defaults to http
    --debug ( set in debug mode, turns on verbose in curl )
    -h      Displays Help

הגדרת פרמטרים באמצעות מתגי שורת הפקודה ומשתני סביבה

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

לדוגמה, מתוך העזרה שהוצגה למעלה לגבי הפקודה 'orgs add', תוכלו לציין את שם הארגון באחת מהדרכים הבאות:

  • באמצעות מתג שורת הפקודה -o:
    /opt/apigee/apigee-adminapi/bin/apigee-adminapi.sh orgs -o testOrg
  • מגדירים משתנה סביבה בשם ORG:
    > export ORG=testOrg
    /opt/apigee/apigee-adminapi/bin/apigee-adminapi.sh orgs

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

Error with required variable or parameter
ADMIN_PASSWORD....OK
ADMIN_EMAIL....OK
EDGE_SERVER....null

שני פרמטרים נפוצים שמגדירים בדרך כלל כמשתני סביבה הם כתובת האימייל של האדמין וכתובת ה-IP של מנהל המערכת של שרת הניהול:

export ADMIN_EMAIL=foo@bar.com
export EDGE_SERVER=192.168.56.101

העברת קובץ לתוכנת השירות apigee-adminapi.sh

חלק מהפקודות של הכלי apigee-adminapi.sh תואמות לקריאות PUT ו-POST API שמקבלות גוף בקשה. לדוגמה, יצירת מארח וירטואלי תואמת לקריאה ל-API של POST שנדרשת לה מידע על המארח הווירטואלי בגוף הבקשה.

כשמשתמשים בכלי העזר apigee-adminapi.sh כדי ליצור מארח וירטואלי, או בכל פקודה שמקבלת גוף בקשה, אפשר להעביר את כל המידע הנדרש בשורת הפקודה כפי שמוצג כאן:

/opt/apigee/apigee-adminapi/bin/apigee-adminapi.sh orgs envs virtual_hosts add -e prod -o testOrg --host localhost --admin foo@bar.com -v myVHostUtil -p 9005 -a 192.168.56.101:9005

לחלופין, אפשר להעביר קובץ שמכיל את אותו המידע שיצוין בגוף הבקשה של ה-POST. לדוגמה, הפקודה הבאה לוקחת קובץ שמגדיר את המארח הווירטואלי:

/opt/apigee/apigee-adminapi/bin/apigee-adminapi.sh orgs envs virtual_hosts add -e prod -o testOrg --host localhost --admin foo@bar.com -f vhostcreate

כאשר הקובץ vhostcreate מכיל את גוף ה-POST של הקריאה. בדוגמה הזו, זהו גוף בקשה בפורמט XML:

<VirtualHost name="myVHostUtil">
   <HostAliases>
     <HostAlias>192.168.56.101:9005</HostAlias>
   </HostAliases>
   <Interfaces/>
   <Port>9005</Port>
</VirtualHost>

הצגת מידע על ניפוי באגים וממשק API

שימוש באפשרות --debug לכלי השירות apigee-adminapi.sh כדי להציג מידע מפורט על הפקודה. המידע הזה כולל את פקודת ה-Curl שנוצרה על ידי כלי השירות apigee-adminapi.sh כדי לבצע את הפעולה.

לדוגמה, בפקודה הזו משתמשים באפשרות --debug:

/opt/apigee/apigee-adminapi/bin/apigee-adminapi.sh orgs add -o testOrg2 --admin foo@bar.com --host localhost --debug

וגם מציג את הפלט הבא, כולל פקודת ה-curl שנוצרה:

curl -H Content-Type: application/xml -v -X POST     -s -k -w \n==> %{http_code}
-u ***oo@bar.com:*****     http://localhost:8080/v1/o -d <Organization name="testOrg2" 
type="paid"/>
* About to connect() to localhost port 8080 (#0)
*   Trying ::1... connected
* Connected to localhost (::1) port 8080 (#0)
* Server auth using Basic with user 'foo@bar.com'
> POST /v1/o HTTP/1.1
> Authorization: Basic c2dp234234NvbkBhcGlnZ2342342342342341Q5
> User-Agent: curl/7.19.7 (x86_64-redhat-linux-gnu) libcurl/7.19.7 NSS/3.19.1
Basic ECC zlib/1.2.3 libidn/1.18 libssh2/1.4.2
> Host: localhost:8080
> Accept: */*
> Content-Type: application/xml
> Content-Length: 43
>
} [data not shown]
< HTTP/1.1 201 Created
< Content-Type: application/json
< Date: Tue, 03 May 2016 02:08:32 GMT
< Content-Length: 291
<
{ [data not shown]
* Connection #0 to host localhost left intact
* Closing connection #0