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

כדי להגדיר את Edge אחרי ההתקנה, משתמשים בשילוב של קובצי .properties וכלי שירות של Edge. לדוגמה, כדי להגדיר TLS/SSL בממשק המשתמש של New 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-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-management-ui /opt/apigee/customer/application/management-ui.properties
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/postgresql.properties
Qpid Server 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 (Cassandra)
  • ‫apigee-openldap (OpenLDAP)
  • ‫apigee-postgresql (מסד נתונים של PostgreSQL)
  • apigee-qpidd (Qpidd)
  • apigee-zookeeper (ZooKeeper)
  • edge-management-server (שרת ניהול)
  • ‫edge-management-ui (ממשק משתמש חדש של Edge)
  • ‫edge-message-processor (מעבד בקשות)
  • edge-postgres-server (שרת Postgres)
  • ‫edge-qpid-server (Qpid Server)
  • edge-router (Edge Router)

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

אפשר לשנות רק את קובצי ה-.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 (Cassandra)
    • ‫apigee-openldap (OpenLDAP)
    • ‫apigee-postgresql (מסד נתונים של PostgreSQL)
    • apigee-qpidd (Qpidd)
    • apigee-zookeeper (ZooKeeper)
    • edge-management-server (שרת ניהול)
    • ‫edge-management-ui (ממשק משתמש חדש של Edge)
    • ‫edge-message-processor (מעבד בקשות)
    • edge-postgres-server (שרת Postgres)
    • ‫edge-qpid-server (Qpid Server)
    • edge-router (Edge Router)

    לדוגמה, אחרי עריכה של 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 של הרכיב.

לדוגמה, אם אתם רוצים להגדיר את המאפיין HTTPRequest.line.limit ורוצים לדעת מהו ערך הטוקן שמשמש להגדרה שלו, grep את המאפיין בספרייה /opt/apigee/edge-management-server/source:

grep -ri "HTTPRequest.line.limit" /opt/apigee/edge-management-server/source

אמורה להתקבל תוצאה בפורמט הבא:

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

בדוגמה הבאה מוצג הערך של הטוקן HTTPRequest.line.limit של שרת הניהול:

/opt/apigee/edge-management-server/source/conf/http.properties:HTTPRequest.line.limit={T}conf_http_HTTPRequest.line.limit{/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

הפעלה או השבתה של פרוטוקול HTTP/2 בממשק המשתמש החדש של Edge

בקטע הזה מוסבר איך להפעיל או להשבית את פרוטוקול HTTP/2 בממשק המשתמש החדש של Edge (edge-management-ui).

  1. יוצרים או עורכים את /opt/apigee/customer/application/management-ui.properties ומוודאים שהקובץ בבעלות של apigee:apigee.
  2. כדי להפעיל או להשבית את פרוטוקול HTTP/2, מוסיפים את ההחרגה הבאה:
    conf_uebe_disable_http2={true or false}
  3. שומרים ומפעילים מחדש את ממשק המשתמש החדש של Edge‏ (edge-management-ui).

הוספת פורמט יומן בהתאמה אישית ב-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