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

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

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

רכיב שם הרכיב קובץ תצורה שניתן לעריכה
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 n/a (משתמשים בקובץ התצורה של ההתקנה)
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
Zookeeper 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 ב-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 להעברה של בקשות מהקטע Send Requests (שליחת בקשות) בממשק Trace UI

בקטע הזה מוסבר איך להגדיר שרת proxy להעברה עבור בקשות מהקטע 'שליחת בקשות' בממשק המשתמש של 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