איך להגדיר את Edge

כדי להגדיר את Edge אחרי ההתקנה, משתמשים בשילוב של קובצי .properties וכלי שירות של Edge. לדוגמה, כדי להגדיר TLS/SSL בממשק המשתמש של Edge, עורכים קובצי .properties כדי להגדיר את המאפיינים הנדרשים. אם משנים קובצי .properties, צריך להפעיל מחדש את רכיב Edge שהושפע.

ב-Apigee, הטכניקה של עריכת קובצי .properties נקראת קוד עם הגדרות (לפעמים בקיצור CwC). בעיקרון, קוד עם הגדרות אישיות הוא כלי חיפוש של מפתח/ערך שמבוסס על הגדרות בקובצי .properties. בקוד עם הגדרות אישיות, המפתחות נקראים אסימונים. לכן, כדי להגדיר את Edge, צריך להגדיר טוקנים בקובצי .properties.

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

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

  1. לקוח
  2. מתקין
  3. רכיב

איך בודקים את הערך הנוכחי של טוקן

לפני שמגדירים ערך חדש לטוקן בקובץ .properties, צריך קודם לקבוע את הערך הנוכחי שלו באמצעות הפקודה הבאה:

/opt/apigee/apigee-service/bin/apigee-service component_name configure -search token

כאשר component_name הוא שם הרכיב, ו-token הוא האסימון שרוצים לבדוק.

הפקודה הזו מחפשת בהיררכיה של קובצי .properties של הרכיב כדי לקבוע את הערך הנוכחי של הטוקן.

בדוגמה הבאה נבדק הערך הנוכחי של האסימון conf_http_HTTPRequest.line.limit של הנתב:

/opt/apigee/apigee-service/bin/apigee-service edge-router configure -search conf_http_HTTPRequest.line.limit

הפלט אמור להיראות כך:

Found key conf_http_HTTPRequest.line.limit, with value, 4k, in /opt/apigee/edge-router/token/default.properties

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

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

קובצי מאפיינים

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

קובצי תצורה של רכיבים שאפשר לערוך

בטבלה הבאה מפורטים רכיבי Apigee וקובצי המאפיינים שאפשר לערוך כדי להגדיר את הרכיבים האלה:

רכיב שם הרכיב קובץ תצורה שניתן לערוך
Cassandra apigee-cassandra /opt/apigee/customer/application/cassandra.properties
נתב קצה (Edge Router) edge-router /opt/apigee/edge-router/conf/load_balancing.properties
מודול SSO ב-Apigee apigee-sso /opt/apigee/customer/application/sso.properties
שרת ניהול edge-management-server /opt/apigee/customer/application/management-server.properties
מעבד בקשות edge-message-processor /opt/apigee/customer/application/message-processor.properties
apigee-monit apigee-monit /opt/apigee/customer/application/monit.properties
ממשק משתמש קלאסי (לא משפיע על ממשק המשתמש החדש של Edge) edge-ui /opt/apigee/customer/application/ui.properties
ממשק המשתמש של Edge (ממשק המשתמש החדש של Edge בלבד, לא משפיע על ממשק המשתמש הקלאסי) apigee-management-ui לא רלוונטי (משתמשים בקובץ התצורה של ההתקנה)
OpenLDAP apigee-openldap /opt/apigee/customer/application/openldap.properties
שרת Postgres edge-postgres-server /opt/apigee/customer/application/postgres-server.properties
מסד נתונים של PostgreSQL apigee-postgresql /opt/apigee/customer/application/postgressql.properties
שרת Qpid edge-qpid-server /opt/apigee/customer/application/qpid-server.properties
Qpidd apigee-qpidd /opt/apigee/customer/application/qpidd.properties
נתב edge-router /opt/apigee/customer/application/router.properties
מטפל בגן חיות apigee-zookeeper /opt/apigee/customer/application/zookeeper.properties

אם רוצים להגדיר מאפיין באחד מקובצי התצורה של הרכיבים האלה אבל הוא לא קיים, אפשר ליצור אותו במיקום שצוין למעלה.

בנוסף, צריך לוודא שקובץ המאפיינים נמצא בבעלות המשתמש "apigee":

chown apigee:apigee /opt/apigee/customer/application/configuration_file.properties

קובצי תצורה של רכיבים שלא ניתנים לעריכה

בנוסף לקובצי התצורה של הרכיבים שאפשר לערוך, יש גם קובצי תצורה שאי אפשר לערוך.

קבצים אינפורמטיביים (שאי אפשר לערוך) כוללים:

בעלים שם הקובץ או הספרייה
התקנה
/opt/apigee/token
רכיב
/opt/apigee/component_name/conf

‫component_name הוא המזהה של הרכיב. הערכים האפשריים כוללים:

  • apigee-cassandra (קסנדרה)
  • apigee-openldap (OpenLDAP)
  • apigee-postgresql (מסד נתונים של PostgreSQL)
  • apigee-qpidd (קיפוד)
  • apigee-sso (כניסה יחידה (SSO))
  • apigee-zookeeper (ZooKeeper)
  • edge-management-server (שרת ניהול)
  • edge-management-ui (ממשק קצה חדש של Edge)
  • edge-message-processor (מעבד הודעות)
  • edge-postgres-server (שרת Postgres)
  • edge-qpid-server (שרת Qpid)
  • edge-router (נתב קצה)
  • edge-ui (ממשק משתמש קלאסי)

הגדרת ערך טוקן

אפשר לשנות רק את קובצי ה-.properties בספרייה /opt/apigee/customer/application. לכל רכיב יש קובץ .properties משלו בספרייה הזו. לדוגמה, router.properties ו-management-server.properties. רשימה מלאה של קובצי מאפיינים מופיעה במאמר מיקום של קובצי ‎ .properties.

כדי ליצור קובץ .properties:

  1. יוצרים קובץ טקסט חדש בכלי לעריכת טקסט. שם הקובץ חייב להיות זהה לרשימה שמוצגת בטבלה שלמעלה לגבי קובצי לקוחות.
  2. משנים את הבעלים של הקובץ ל-"apigee:apigee", כמו בדוגמה הבאה:
    chown apigee:apigee /opt/apigee/customer/application/router.properties

    אם שיניתם את המשתמש שמריץ את שירות Edge מהמשתמש "apigee", השתמשו ב-chown כדי לשנות את הבעלות למשתמש שמריץ את שירות Edge.

כשמשדרגים את Edge, המערכת קוראת את קובצי ה-.properties בספרייה /opt/apigee/customer/application. כלומר, השדרוג ישמור על כל המאפיינים שהגדרתם ברכיב.

כדי להגדיר את הערך של טוקן:

  1. עורכים את הקובץ .properties של הרכיב.
  2. מוסיפים או משנים את הערך של הטוקן. בדוגמה הבאה, הערך של המאפיין conf_http_HTTPRequest.line.limit מוגדר כ-"10k":
    conf_http_HTTPRequest.line.limit=10k

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

    conf_security_rbac.restricted.resources=/environments,/environments/*,/environments/*/virtualhosts,/environments/*/virtualhosts/*,/pods,/environments/*/servers,/rebuildindex,/users/*/status,/myuri/*

    כדי להוסיף ערך חדש לרשימה כזו, בדרך כלל מוסיפים את הערך החדש בסוף הרשימה.

  3. מפעילים מחדש את הרכיב:
    /opt/apigee/apigee-service/bin/apigee-service component_name restart

    כאשר component_name הוא אחד מהבאים:

    • apigee-cassandra (קסנדרה)
    • apigee-openldap (OpenLDAP)
    • apigee-postgresql (מסד נתונים של PostgreSQL)
    • apigee-qpidd (קיפוד)
    • apigee-sso (כניסה יחידה (SSO))
    • apigee-zookeeper (ZooKeeper)
    • edge-management-server (שרת ניהול)
    • edge-management-ui (ממשק קצה חדש של Edge)
    • edge-message-processor (מעבד הודעות)
    • edge-postgres-server (שרת Postgres)
    • edge-qpid-server (שרת Qpid)
    • edge-router (נתב קצה)
    • edge-ui (ממשק משתמש קלאסי)

    לדוגמה, אחרי שעורכים את router.properties, מפעילים מחדש את הנתב:

    /opt/apigee/apigee-service/bin/apigee-service edge-router restart
  4. (אופציונלי) בודקים שערך הטוקן מוגדר לערך החדש באמצעות האפשרות configure -search. לדוגמה:
    /opt/apigee/apigee-service/bin/apigee-service edge-router configure -search conf_http_HTTPRequest.line.limit

    למידע נוסף על configure -search, קראו את המאמר קביעת הערך הנוכחי של אסימון.

איתור טוקן

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

לדוגמה, אם אתם יודעים שבגרסה קודמת של Edge הגדרתם את המאפיין session.maxAge ואתם רוצים לדעת מה ערך האסימון ששימש להגדרה שלו, אתם יכולים grep את המאפיין בספרייה /opt/apigee/edge-ui/source:

grep -ri "session.maxAge" /opt/apigee/edge-ui/source

התוצאה אמורה להיראות כך:

/opt/apigee/component_name/source/conf/application.conf:property_name={T}token_name{/T}

בדוגמה הבאה מוצג הערך של האסימון session.maxAge בממשק המשתמש:

/opt/apigee/edge-ui/source/conf/application.conf:session.maxAge={T}conf_application_session.maxage{/T}

המחרוזת בין התגים {T}{/T} היא שם הטוקן שאפשר להגדיר בקובץ .properties של ממשק המשתמש.

הגדרת טוקן שמסומן כרגע כהערה

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

כדי להגדיר את הערך של טוקן שמסומן כהערה בקובץ תצורה של Edge, משתמשים בתחביר מיוחד בפורמט הבא:

conf/filename+propertyName=propertyValue

לדוגמה, כדי להגדיר את המאפיין שנקרא HTTPClient.proxy.host במעבד הבקשות, קודם grep למאפיין כדי לקבוע את האסימון שלו:

grep -ri /opt/apigee/edge-message-processor/ -e "HTTPClient.proxy.host"

הפקודה grep מחזירה תוצאות שכוללות את שם הטוקן. שימו לב ששם הנכס מסומן כהערה, כפי שמצוין על ידי הקידומת #:

source/conf/http.properties:#HTTPClient.proxy.host={T}conf_http_HTTPClient.proxy.host{/T}
token/default.properties:conf_http_HTTPClient.proxy.host=
conf/http.properties:#HTTPClient.proxy.host=

כדי להגדיר את הערך של המאפיין הזה, עורכים את /opt/apigee/customer/application/message-processor.properties, אבל משתמשים בתחביר מיוחד, כמו בדוגמה הבאה:

conf/http.properties+HTTPClient.proxy.host=myhost.name.com

במקרה כזה, צריך להוסיף את הקידומת conf/http.properties+ לשם המאפיין. זהו המיקום והשם של קובץ התצורה שמכיל את המאפיין, ואחריו "+".

אחרי שמפעילים מחדש את מעבד ההודעות, בודקים את הקובץ /opt/apigee/edge-message-processor/conf/http.properties:

cat /opt/apigee/edge-message-processor/conf/http.properties

בסוף הקובץ, תראו את קבוצת הנכסים בפורמט הבא:

conf/http.properties:HTTPClient.proxy.host=myhost.name.com

הגדרת שרת proxy להעברה לבקשות מהקטע Send Requests (שליחת בקשות) בממשק המשתמש של Trace

בקטע הזה מוסבר איך להגדיר שרת proxy להעברה לבקשות מהקטע Send Requests בממשק המשתמש של Trace, עם פרטי כניסה אופציונליים לשרת proxy. כדי להגדיר שרת proxy להעברה:

  1. עורכים את /opt/apigee/customer/application/ui.properties ומוודאים שהקובץ בבעלות של apigee:apigee.
  2. מוסיפים את ההגדרות הבאות (משנים את הערכים בהתאם להגדרות של שרת ה-proxy הספציפי שלכם):
    conf_application_http.proxyhost=proxy.example.com
    conf_application_http.proxyport=8080
    conf_application_http.proxyuser=apigee
    conf_application_http.proxypassword=Apigee123!
  3. שומרים ומפעילים מחדש את ממשק המשתמש הקלאסי.

הוספת פורמט יומן בהתאמה אישית ב-Apigee Router או ב-Nginx

במקרים מסוימים, יכול להיות שתצטרכו לשנות את פורמט ברירת המחדל של יומן הרישום של Apigee Router/Nginx או להוסיף משתנים. כדי לעדכן את הגדרת ברירת המחדל של פורמט היומן של Apigee Router/Nginx:

  1. אם הקובץ router.properties לא קיים, יוצרים אותו בנתיב שמוצג למטה:
    /opt/apigee/customer/application/router.properties
  2. מוסיפים את התוכן הבא לקובץ router.properties כדי ליצור הגדרה חדשה של log_format בשם router_new:
    conf_load_balancing_load.balancing.driver.nginx.global.http.parameters.template.extra=log_format router_new 'time_iso8601\\\\thostname\\\\tremote_addr:remote_port\\\\t'\\\\n\\n 'upstream_addr\\\\trequest_time\\\\t-\\\\t-\\\\t'\\\\n\\n 'status\\\\tupstream_status\\\\trequest_length\\\\t'\\\\n\\n 'body_bytes_sent\\\\t'\\\\n\\n 'request\\\\tupstream_http_x_apigee_message_id\\\\t'\\\\n\\n 'http_user_agent\\\\thost\\thostname-pid-connection-connection_requests\\\\tmy_nginx_var_xff\\t'\\\\n\\n 'upstream_http_x_apigee_fault_flag\\\\tupstream_http_x_apigee_fault_source\\\\tupstream_http_x_apigee_fault_code\\\\t'\\\\n\\n 'upstream_http_x_apigee_fault_policy\\tupstream_http_x_apigee_fault_flow\\tupstream_http_x_apigee_fault_revision\\t'\\\\n\\n 'upstream_http_x_apigee_dp_color\\\\tmy_x_apigee_target_latency\\\\t'\\\\n\\n 'upstream_http_x_apigee_proxy\\\\tupstream_http_x_apigee_proxy_basepath\\\\t'\\\\n\\n 'self_region\\\\tself_pod\\\\tself_color\\\\tssl_protocol\\\\tssl_client_verify\\\\tssl_session_id\\\\tssl_session_reused\\\\tupstream_pod\\\\tupstream_region';\\\\n\\n\n
    conf_load_balancing_load.balancing.driver.nginx.access.log={conf_load_balancing_load.balancing.driver.nginx.log.dir}/{org}~{env}.{port}_access_log router_new

    מעדכנים את המשתנים בפקודות שלמעלה לפי הצורך. ערכי ברירת המחדל של ההגדרות האישיות של log_format מופיעים בקובץ הבא:

    /opt/apigee/edge-router/conf/load_balancing.properties

    רשימה של משתני Nginx מוצגת בכתובת http://nginx.org/en/docs/varindex.html.

  3. מפעילים מחדש את הנתב כדי להחיל את ההגדרות החדשות:
    apigee-service edge-router restart
  4. בודקים אם ההגדרה החדשה של log_format (router_new) נוספה לקובץ /opt/nginx/conf.d/0-default.conf:
        
    cat /opt/nginx/conf.d/0-default.conf | grep router_new -A 10
  5. שולחים כמה בקשות API ל-proxy ל-API ובודקים את פורמט היומן החדש בקובץ
    /opt/apigee/var/log/edge-router/nginx/${org}~${env}.${port}_access_log file