איך להגדיר את 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
נתב קצה 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

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

בנוסף, צריך לוודא שקובץ המאפיינים נמצא בבעלות משתמש ה-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 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