חומרי עזר

הדף הזה רלוונטי ל-Apigee ול-Apigee Hybrid.

לעיון במסמכי התיעוד של Apigee Edge

ממשק שורת הפקודה (CLI) של apigee-remote-service-cli עוזר לכם להקצות ולנהל את Apigee Adapter ל-Envoy.

פקודות לקישור

איגוד מקשר בין שירות שנפרס ב-Istio mesh לבין מוצר API של Apigee. ה-CLI מאפשר ליצור, להסיר, להציג ולאמת קישורים.

הצגת רשימת ההתאמות

מפרטים את כל מוצרי ה-API שמקושרים לשירות המרוחק.

Usage

ב-Apigee Hybrid:

apigee-remote-service-cli bindings list -o [organization] -e [environment] -t [token] -r [runtime]

פרמטרים

פרמטרים סוג תיאור
-c, --config String (חובה) הנתיב לקובץ התצורה של Apigee Remote Service.
הערה: הדגל הזה מאפשר להשמיט את רוב הפרמטרים האחרים של הפקודה, כי ה-CLI יכול לשלוף אותם ישירות מקובץ התצורה. איך משתמשים באפשרות --config
-e, --env String (חובה) סביבה בארגון שלכם.
-h, --help הצגת עזרה לגבי פרמטרים של פקודות.
--insecure אפשרות לחיבורים לא מאובטחים לשרתים כשמשתמשים ב-SSL
--legacy מגדירים את הדגל הזה אם משתמשים ב-Apigee Cloud. הוא מגדיר את כתובות ה-URL של הניהול ושל זמן הריצה של Edge Cloud.
--opdk מגדירים את הדגל הזה אם משתמשים ב-Apigee לענן פרטי.
-o, --org String (חובה) ארגון Apigee. צריך להיות לכם תפקיד אדמין בארגון.
-p, --password String (נדרש רק לאימות בסיסי – לא זמין לשיטה היברידית) הסיסמה שלכם ב-Apigee. אפשר גם לציין את הסיסמה בקובץ .netrc. אם תעשו את זה, לא תצטרכו להזין את הסיסמה בשורת הפקודה. מידע נוסף זמין במאמר בנושא שימוש בקובץ ‎ .netrc לפרטי כניסה.
-r, --runtime String כתובת URL שכוללת את hostAlias עבור מארח וירטואלי שהוגדר בהגדרה ההיברידית. כתובת ה-URL חייבת להתחיל ב-https://. לדוגמה: https://apitest.apigee-hybrid-docs.net
-t, --token String (חובה) טוקן גישה.
-u, --username String (נדרש רק לאימות בסיסי – לא זמין לשימוש היברידי) שם המשתמש שלכם ב-Apigee (בדרך כלל כתובת אימייל). אפשר גם לציין את שם המשתמש בקובץ .netrc. אם תעשו זאת, לא תצטרכו לספק את שם המשתמש בשורת הפקודה. אפשר גם לעיין במאמר בנושא שימוש ב-‎ .netrc לפרטי כניסה.
-v, --verbose (אופציונלי) יוצר פלט מפורט.

דוגמה

apigee-remote-service-cli bindings list -o myorg -e test -c config.yaml \
-r $RUNTIME -t $TOKEN
PI Products
============
Bound
-----
envoy-test:
  Quota: 5 requests every 1 minute
  Target bindings:
    httpbin.org
  Paths:
httpbin:
  Quota: 5 requests every 1 minute
  Target bindings:
    httpbin.org
  Paths:
    /httpbin
    /

Unbound
-------
product-1:
  Quota: 100 requests every 1 hour
product-2:
  Quota: 1000 requests every 1 month
product-3:
product-4:

אימות של קישור

הפקודה הזו הוצאה משימוש. בגרסה 1.4, אפליקציות למפתחים כבר לא דורשות שיוך למוצרי API שמשמשים עם יעדי שירות מרוחקים.

פקודת עזרה

עזרה אונליין זמינה לכל הפקודות של apigee-remote-service-cli. פשוט מקלידים:

apigee-remote-service-cli help

כדי לקבל עזרה לגבי פקודה כלשהי, מקלידים:

apigee-remote-service-cli [command] help

לדוגמה:

apigee-remote-service-cli provision help

פקודת הקצאה

הפקודה apigee-remote-service-cli provision מתקינה פרוקסי בארגון Apigee, מגדירה אישור ויוצרת פרטי כניסה שתצטרכו כדי להגדיר את Apigee Adapter ל-Envoy.

Usage

ב-Apigee Hybrid:

apigee-remote-service-cli provision  -o $ORG -e $ENV -r $RUNTIME -t $TOKEN

פרמטרים

פרמטרים סוג תיאור
--analytics-sa String משתמשים בדגל הזה כדי לציין את הנתיב לקובץ המפתח של חשבון שירות ב-Google Cloud, שבו לחשבון השירות יש את התפקיד Apigee Analytics Agent. ה-SA משמש את המתאם להעלאה ישירה של נתוני ניתוח ל-Apigee. אם אתם משתמשים ב-Apigee Hybrid, האפשרות הזו מאפשרת לכם להתקין את זמן הריצה של Hybrid באשכול אחד ואת המתאם באשכול אחר. הדגל הזה זמין רק בהתקנות של Apigee Hybrid ו-Apigee ב-Google Cloud.
-c, --config String הנתיב לקובץ התצורה של Apigee Remote Service. אפשר לעיין גם במאמר בנושא שימוש באפשרות --config.
-e, --environment String (חובה) סביבה בארגון שלכם.
-f, --force-proxy-install (אופציונלי) מאלץ התקנה מחדש של שרת ה-proxy של remote-service אם הוא כבר מותקן בארגון.
-h, --help הצגת עזרה לגבי פרמטרים של פקודות.
-k, --key String מציינת את המפתח שמוחזר מהפקודה apigee-remote-service-cli provision.
--legacy ‫Apigee Edge (הגדרת כתובת URL לניהול ולזמן ריצה)
-m, --management String (נדרש אם אתם משתמשים ב-Apigee Private Cloud) כתובת ה-URL הבסיסית של ניהול Apigee. ברירת מחדל: https://api.enterprise.apigee.com
-n, --namespace String הגדרת הפליטה כ-Envoy ConfigMap במרחב השמות שצוין. ברירת מחדל: apigee
--opdk String מגדירים את הדגל הזה אם משתמשים ב-Apigee לענן פרטי.
-o, --organization String

(חובה) הארגון שלכם ב-Apigee.

-p, --password String (נדרש רק לאימות בסיסי – לא זמין לשיטה היברידית) הסיסמה שלכם ב-Apigee. אפשר גם לציין את הסיסמה בקובץ .netrc. אם תעשו את זה, לא תצטרכו להזין את הסיסמה בשורת הפקודה. מידע נוסף זמין במאמר בנושא שימוש בקובץ ‎ .netrc לפרטי כניסה.
--rotate-int int אם n > 0, המערכת יוצרת מפתח פרטי חדש ושומרת n מפתחות ציבוריים (רק בהצפנה היברידית)
-r, --runtime String כתובת URL שכוללת את hostAlias עבור מארח וירטואלי שהוגדר בהגדרה ההיברידית. כתובת ה-URL חייבת להתחיל ב-https://. לדוגמה: https://apitest.apigee-hybrid-docs.net
-s, --secret String מציינים את הסוד שמוחזר מהפקודה apigee-remote-service-cli provision.
--strength int (אופציונלי) מציינים את עוצמת ההצפנה לאישורי SSL שמשמשים להקצאת המתאם. ברירת מחדל 2048
-t, --token String טוקן Apigee OAuth או SAML.
-u, --username String (נדרש רק לאימות בסיסי – לא זמין לשימוש היברידי) שם המשתמש שלכם ב-Apigee (בדרך כלל כתובת אימייל). אפשר גם לציין את שם המשתמש בקובץ .netrc. מידע נוסף זמין במאמר בנושא שימוש ב-‎ .netrc לפרטי כניסה.
-v, --verbose (אופציונלי) מפיק פלט מפורט.
--virtual-hosts String מבטל את ברירת המחדל של המארחים הווירטואליים.
--years int (אופציונלי) מספר השנים לפני פקיעת התוקף של אישור ה-SSL שמשמש להקצאת הרשאות. ברירת מחדל: 1

דוגמה

חשוב לשמור את הפלט של הפקודה provision בקובץ, שמשמש כקלט לפעולות אחרות של Apigee Adapter ל-Envoy.

דוגמה ל-Apigee Hybrid:

apigee-remote-service-cli provision --organization $ORG --environment $ENV --runtime $RUNTIME \
--namespace $NAMESPACE --token $TOKEN > config.yaml

הפקודה Samples

יצירת קובץ תצורה לדוגמה

יוצר קובצי תצורה לדוגמה לפריסות של Envoy או Istio מקוריים.

Usage

apigee-remote-service-cli samples create [flags]

תיאור

הפקודה דורשת קובץ config.yaml תקין שנוצר באמצעות הקצאת הרשאות. כברירת מחדל, קובצי הדוגמה מועברים לספרייה בשם ./samples. הפקודה יוצרת את הספרייה הזו בשבילכם.

אם משתמשים ב-Envoy מקורי, הפקודה מקבלת את מארח שירות היעד ואת השם הרצוי לאשכול שלו. היא גם מגדירה חיבור SSL בהתאמה אישית מ-Envoy proxy לאשכול של שירות מרוחק, אם מסופקת תיקייה שמכילה את tls.key ו-tls.crt דרך --tls.

אם משתמשים ב-Istio, שבו שרת ה-Proxy של Envoy פועל כ-sidecar, ואם היעד לא צוין, ייווצר לדוגמה httpbin. אחרת, אתם אחראים להכנת קובצי התצורה שקשורים לפריסה של שירותי היעד.

פרמטרים

פרמטרים סוג תיאור
-c, --config String (חובה) הנתיב לקובץ התצורה של Apigee Remote Service.
הערה: הדגל הזה מאפשר להשמיט את רוב הפרמטרים האחרים של הפקודה, כי ה-CLI יכול לשלוף אותם ישירות מקובץ התצורה. איך משתמשים באפשרות --config
-f, --force כופה החלפה של הספרייה הקיימת.
-h, --help הצגת עזרה לגבי פרמטרים של פקודות.
--host מארח שירות היעד (ברירת המחדל היא httpbin.org)
-n, --name שם שירות היעד (ברירת המחדל היא httpbin)
--out הספרייה שבה ייצרו קובצי ההגדרות לדוגמה. ברירת מחדל: ./samples
-t, --template

שם התבנית. אם אתם מבצעים פריסה של Istio (היברידית בלבד), בוחרים באחת מהאפשרויות הזמינות של Istio. משתמשים באפשרות המקורית להטמעות מקוריות של Envoy. האפשרויות הזמינות הן:

  • istio-1.6 (ברירת מחדל)
  • istio-1.7
  • native
--tls הספרייה שבה יישמרו קובצי המפתח וה-crt של TLS.

דוגמה

apigee-remote-service-cli samples create -c ./config.yaml

הצגת אפשרויות התבניות הזמינות

רשימת האפשרויות שזמינות לשימוש עם הפרמטר --templates.

Usage

apigee-remote-service-cli samples templates

פרמטרים

אין.

דוגמה

apigee-remote-service-cli samples templates
Supported templates (native is deprecated):
  envoy-1.14
  envoy-1.15
  envoy-1.16
  istio-1.5
  istio-1.6
  istio-1.7
  istio-1.8
  native

פקודות טוקן

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

יצירת טוקן JWT

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

Usage

ב-Apigee Hybrid:
apigee-remote-service-cli token create -c [config_file] --id [consumer_key] --secret [consumer_secret] -r [runtime] -o [org] -e [env]

פרמטרים

פרמטרים סוג תיאור
-c, --config String (חובה) הנתיב לקובץ התצורה של Apigee Remote Service.
הערה: הדגל הזה מאפשר להשמיט את רוב הפרמטרים האחרים של הפקודה, כי ה-CLI יכול לשלוף אותם ישירות מקובץ התצורה. איך משתמשים באפשרות --config
-e, --env String (חובה) סביבה בארגון שלכם.
-h, --help הצגת עזרה לגבי פרמטרים של פקודות.
--insecure אפשרות להשתמש בחיבורים לא מאובטחים לשרת כשמשתמשים ב-SSL.
-o, --org String (חובה) ארגון Apigee. צריך להיות לכם תפקיד אדמין בארגון.
-r, --runtime String כתובת URL שכוללת את hostAlias עבור מארח וירטואלי שהוגדר בהגדרה ההיברידית. כתובת ה-URL חייבת להתחיל ב-https://. לדוגמה: https://apitest.apigee-hybrid-docs.net
-v, --verbose (אופציונלי) יוצר פלט מפורט.

דוגמה

./apigee-remote-service-cli token create -o $ORG -e $ENV -i YUmlZAcBKNsTAelJqPZFl3sh58ObATX9 \
-s icTARgaKHqvUH1dq -c config.yaml -r $RUNTIME -t $TOKEN

תשובה

אם הפעולה תצליח, יוצג אסימון JST שדומה לזה:
eyJraWQiOiIxIiwidHlwIjoiSldUIiwiYWxnIjoiUlMyNTYifQ.eyJhY2Nlc3NfdG9rZW4iOiJ0a2tlVzVKQTY2a0pZYTB4bFV1cVBsUW1BMU43IiwiYXVkIjoiaXN0aW8iLCJuYmYiOjE1MzAxMzg1OTEsImFwaV9wcm9kdWN0X2xpc3QiOlsiaXN0aW8tcHJvZHVjdCJdLCJhcHBsaWNhdGlvbl9uYW1lIjoiaXN0aW8tYXBwIiwiZGV2ZWxvcGVyX2VtYWlsIjoicFluZ2Zsb3lkQGdvb2dsZS5jb20iLCJpc3MiOiJodHRwczovL2FwaWdlZXNlYXJjaC10ZXN0LmFwaWdlZS5uZXQvaXN0aW8tYXV0aC90b2tlbiIsImV4cCI6MTUzMDEzOTQ5MSwiaWF0IjoxNTMwMTM4NTkxLCJqdGkiOiIxODgzMzViZi0wMmE4LTRjZGUsOGFkOS0yMWJmNDZjNmRjZDkiLCJjbGllbnRfaWQiOiJZVW1sWkFjQktOc1RBZWxKcVBZRmwzc2g1OE9iQVRYOSJ9.AL7pKSTmond-NSPRNNHVbIzTdAnZjOXcjQ-BbOJ_8lsQvF7PuiOUrGIhY5XTcJusisKgbCdtIxBl8Wq1EiQ_fKnUc3JYYOqzpTB5bGoFy0Yqbfu96dneuWyzgZnoQBkqwZkbQTIg7WNTGx1TJX-UTePvBPxAefiAbaEUcigX9tTsXPoRJZOTrm7IOeKpxpB_gQYkxQtV1_NbERxjTPyMbHdMWal9_xRVzSt7mpTGudMN9OR-VtQ1uXA67GOqhZWcOzq57qImOiCMbaoKnKUADevyWjX_VscN5ZZUtzQUQhTrmv8aR69-uVhMIPKp9juMyYKaYn2IsYZEeCWfhfV45Q

בדיקת טוקן JWT

אפשר לבדוק אסימון JWT באמצעות הפקודה הזו. אפשר לעיין גם במאמר בדיקת אסימון.

Usage

ב-Apigee Hybrid:
apigee-remote-service-cli token inspect -o [organization] -e [environment] -f [token_file] --runtime [host_alias]

פרמטרים

פרמטרים סוג תיאור
-c, --config String (חובה) הנתיב לקובץ התצורה של Apigee Remote Service.
הערה: הדגל הזה מאפשר להשמיט את רוב הפרמטרים האחרים של הפקודה, כי ה-CLI יכול לשלוף אותם ישירות מקובץ התצורה. איך משתמשים באפשרות --config
-e, --env String (חובה) סביבה בארגון שלכם.
-h, --help הצגת עזרה לגבי פרמטרים של פקודות.
--insecure אפשרות להשתמש בחיבורים לא מאובטחים לשרת כשמשתמשים ב-SSL.
-o, --org String (חובה) ארגון Apigee. צריך להיות לכם תפקיד אדמין בארגון.
-r, --runtime String כתובת URL שכוללת את hostAlias עבור מארח וירטואלי שהוגדר בהגדרה ההיברידית. כתובת ה-URL חייבת להתחיל ב-https://. לדוגמה: https://apitest.apigee-hybrid-docs.net
-v, --verbose (אופציונלי) יוצר פלט מפורט.

דוגמה

apigee-remote-service-cli token inspect -c config.yaml <<< $TOKEN

תשובה

אם הפעולה תצליח, הפלט ייראה כך:
{
	"aud": [
		"remote-service-client"
	],
	"exp": 1591741549,
	"iat": 1591740649,
	"iss": "https://apigee-docs-test.apigee.net/remote-service/token",
	"jti": "99325d2e-6440-4278-9f7f-b252a1a79e53",
	"nbf": 1591740649,
	"access_token": "VfzpXzBGAQ07po0bPMKY4JgQjus",
	"api_product_list": [
		"httpbin"
	],
	"application_name": "httpbin",
	"client_id": "GYDGHy5TRpV8AejXCOlreP7dPVepA8H",
	"developer_email": "user@example.com",
	"scope": ""
}
verifying...
token ok.

ביצוע רוטציה של טוקן JWT

בשלב מסוים אחרי שיוצרים JWT בפעם הראשונה, יכול להיות שתצטרכו לשנות את זוג המפתחות הציבוריים/הפרטיים שמאוחסן על ידי Apigee במפת מפתח/ערך (KVM) המוצפנת שלו. התהליך הזה של יצירת זוג מפתחות חדש נקרא רוטציית מפתחות. כשמבצעים רוטציה של מפתחות, נוצר זוג חדש של מפתחות פרטיים/ציבוריים והוא מאוחסן ב-KVM ‏istio בארגון או בסביבה שלכם ב-Apigee. בנוסף, המפתח הציבורי הישן נשמר יחד עם ערך מזהה המפתח המקורי שלו.

Usage

ב-Apigee Hybrid

apigee-remote-service-cli token rotate-cert -o [organization] -e [environment] -t [token] -r [runtime] -k [provision_key] -s [provision_secret] --kid [new_key_id]

פרמטרים

פרמטרים סוג תיאור
-c, --config String (חובה) הנתיב לקובץ התצורה של Apigee Remote Service.
הערה: הדגל הזה מאפשר להשמיט את רוב הפרמטרים האחרים של הפקודה, כי ה-CLI יכול לשלוף אותם ישירות מקובץ התצורה. איך משתמשים באפשרות --config
-e, --env String (חובה) סביבה בארגון שלכם.
-h, --help הצגת עזרה לגבי פרמטרים של פקודות.
--insecure אפשרות לחיבורים לא מאובטחים לשרתים כשמשתמשים ב-SSL
--truncate int מספר האישורים שיישארו ב-jwks (ברירת מחדל: 2)
-o, --org String (חובה) ארגון Apigee. צריך להיות לכם תפקיד אדמין בארגון.
-r, --runtime String כתובת URL שכוללת את hostAlias עבור מארח וירטואלי שהוגדר בהגדרה ההיברידית. כתובת ה-URL חייבת להתחיל ב-https://. לדוגמה: https://apitest.apigee-hybrid-docs.net
-v, --verbose (אופציונלי) יוצר פלט מפורט.

דוגמה

./apigee-remote-service-cli token create -o $ORG -e $ENV -i YUmlZAcBKNsTAelJqPZFl3sh58ObATX9 \
-s icTARgaKHqvUH1dq -c config.yaml -r $RUNTIME -t $TOKEN

תשובה

certificate successfully rotated

שימוש ב-‎ .netrc לפרטי כניסה

apigee-remote-service-cli מאחזר באופן אוטומטי את username ואת password (לאימות בסיסי כשצריך) מקובץ .netrc בספריית הבית, אם אתם משתמשים ב-Edge Public Cloud ויש לכם רשומה למכונה api.enterprise.apigee.com. אם אתם משתמשים ב-Apigee Private Cloud, ערך המכונה זהה לכתובת ה-URL של management (לדוגמה: http://192.162.55.100). לדוגמה ב-Edge Public Cloud:
machine api.enterprise.apigee.com
login jdoe@google.com
password abc123
לדוגמה ב-Edge Private Cloud:
machine http://192.162.55.100
login jdoe@google.com
password abc123

פקודת גרסה

מדפיסים את גרסת ה-CLI.

apigee-remote-service-cli version

שימוש באפשרות הפקודה --config

האפשרות --config מציינת את המיקום של קובץ התצורה שנוצר על ידי הפקודה provision. יתרון חשוב של האפשרות הזו הוא שאפשר לדלג על רוב הפרמטרים האחרים של הפקודה, כי ה-CLI שולף אותם מקובץ התצורה. האפשרויות האלה כוללות:
  • ארגון
  • environment
  • סביבת זמן ריצה
  • ניהול
  • לא מאובטח
  • מרחב שמות
  • מדור קודם
  • opdk

לדוגמה, אפשר להריץ את הפקודה provision כך:

apigee-remote-service-cli provision --config='old-config.yaml' > new-config.yaml

קובץ תצורה

בקטע הזה מוצגת דוגמה לקובץ תצורה עם כל האפשרויות הזמינות.

global:
  temp_dir: /tmp/apigee-istio
  keep_alive_max_connection_age: 1m
  api_address: :5000
  metrics_address: :5001
  tls:
    cert_file: tls.crt
    key_file: tls.key
tenant:
  internal_api: https://istioservices.apigee.net/edgemicro
  remote_service_api: https://org-test.apigee.net/remote-service
  org_name: org
  env_name: env
  key: mykey
  secret: mysecret
  client_timeout: 30s
  allow_unverified_ssl_cert: false
products:
  refresh_rate: 2m
analytics:
  legacy_endpoint: false
  file_limit: 1024
  send_channel_size: 10
  collection_interval: 10s
  fluentd_endpoint: apigee-udca-myorg-test.apigee.svc.cluster.local:20001
  tls:
    ca_file: /opt/apigee/tls/ca.crt
    cert_file: /opt/apigee/tls/tls.crt
    key_file: /opt/apigee/tls/tls.key
    allow_unverified_ssl_cert: false
auth:
  api_key_claim: claim
  api_key_cache_duration: 30m
  api_key_header: x-api-key
  api_target_header: :authority
  reject_unauthorized: true
  jwks_poll_interval: 0s
  jwt_provider_key: https://org-test.apigee.net/remote-service/token