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

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

ב-Apigee השיטה של עריכת קובצי .properties היא קוד עם config (שמופיע לפעמים בקיצור CwC). בגדול, קוד עם config הוא כלי לחיפוש מפתחות/ערך על סמך הגדרות בקובצי .properties. בקוד עם config, המפתחות נקראים אסימונים. לכן, כדי להגדיר את 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 וקובצי המאפיינים שאפשר לערוך כדי להגדיר את הרכיבים האלה:

רכיב שם הרכיב קובץ תצורה שניתן לעריכה
קסנדרה apigee-cassandra /opt/apigee/customer/application/cassandra.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/postgresql.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

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

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

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 להעברה לבקשות מהקטע 'שליחת בקשות' בממשק המשתמש של המעקב

בקטע הזה מוסבר איך להגדיר שרת proxy להעברה לבקשות מהקטע 'שליחת בקשות' בממשק המשתמש של המעקב, עם פרטי כניסה אופציונליים של שרת 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/פורמט יומן 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