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

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

ב-Apigee, הטכניקה של עריכת קובצי .properties נקראת code with config (לפעמים בקיצור 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
Apigee SSO 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 לא רלוונטי (השימוש הוא בקובץ התצורה של ההתקנה)
SymasLDAP 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 (קסנדרה)
  • 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 property ואתם רוצים לדעת את ערך האסימון ששימש להגדרת המאפיין, אתם יכולים להשתמש בפקודה 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 ב-Message Processor, קודם צריך 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+ לשם הנכס. זהו המיקום והשם של קובץ התצורה שמכיל את המאפיין, ואחריו התו '+'.

אחרי שמפעילים מחדש את Message Processor, בודקים את הקובץ /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 להעברה של בקשות מהקטע 'שליחת בקשות' בממשק המשתמש של Trace

בקטע הזה מוסבר איך להגדיר פרוקסי קדימה לבקשות מהקטע Send Requests (שליחת בקשות) בממשק המשתמש של Trace, עם פרטי כניסה אופציונליים לפרוקסי. כדי להגדיר שרת 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 או של 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 ל-API proxy ומאמתים את פורמט היומן החדש בקובץ
    /opt/apigee/var/log/edge-router/nginx/${org}~${env}.${port}_access_log file