วิธีกําหนดค่า Edge

หากต้องการกำหนดค่า Edge หลังจากการติดตั้ง คุณจะใช้ไฟล์ .properties ร่วมกับยูทิลิตีของ Edge เช่น หากต้องการกำหนดค่า TLS/SSL ใน UI ของ 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
SSO ของ Apigee apigee-sso /opt/apigee/customer/application/sso.properties
เซิร์ฟเวอร์การจัดการ edge-management-server /opt/apigee/customer/application/management-server.properties
Message Processor edge-message-processor /opt/apigee/customer/application/message-processor.properties
apigee-monit apigee-monit /opt/apigee/customer/application/monit.properties
UI แบบคลาสสิก (ไม่ส่งผลต่อ UI ใหม่ของ Edge) edge-ui /opt/apigee/customer/application/ui.properties
UI ของ Edge (UI ของ Edge เวอร์ชันใหม่เท่านั้น ไม่ส่งผลต่อ UI แบบคลาสสิก) 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

หากต้องการตั้งค่าพร็อพเพอร์ตี้ในไฟล์การกำหนดค่าคอมโพเนนต์ไฟล์ใดไฟล์หนึ่งเหล่านี้ แต่ไม่มีอยู่ คุณสามารถสร้างพร็อพเพอร์ตี้ดังกล่าวได้ในตำแหน่งที่ระบุไว้ด้านบน

นอกจากนี้ คุณต้องตรวจสอบว่าผู้ใช้ "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 (Qpidd)
  • apigee-sso (SSO ของ Edge)
  • apigee-zookeeper (ZooKeeper)
  • edge-management-server (เซิร์ฟเวอร์การจัดการ)
  • edge-management-ui (UI ใหม่ของ Edge)
  • edge-message-processor (ตัวประมวลผลข้อความ)
  • edge-postgres-server (เซิร์ฟเวอร์ Postgres)
  • edge-qpid-server (เซิร์ฟเวอร์ Qpid)
  • edge-router (เราเตอร์ Edge)
  • edge-ui (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 (Qpidd)
    • apigee-sso (SSO ของ Edge)
    • apigee-zookeeper (ZooKeeper)
    • edge-management-server (เซิร์ฟเวอร์การจัดการ)
    • edge-management-ui (UI ใหม่ของ Edge)
    • edge-message-processor (ตัวประมวลผลข้อความ)
    • edge-postgres-server (เซิร์ฟเวอร์ Postgres)
    • edge-qpid-server (เซิร์ฟเวอร์ Qpid)
    • edge-router (เราเตอร์ Edge)
    • edge-ui (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 ของ UI

/opt/apigee/edge-ui/source/conf/application.conf:session.maxAge={T}conf_application_session.maxage{/T}

สตริงระหว่างแท็ก {T}{/T} คือชื่อของโทเค็นที่คุณตั้งค่าได้ในไฟล์ .properties ของ UI

ตั้งค่าโทเค็นที่คอมเมนต์ออกอยู่

โทเค็นบางรายการมีการใส่ความคิดเห็นไว้ในไฟล์การกําหนดค่าของ 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+ นำหน้าชื่อพร็อพเพอร์ตี้ ตำแหน่งและชื่อของไฟล์การกําหนดค่าที่มีพร็อพเพอร์ตี้ตามด้วย "+"

หลังจากรีสตาร์ทโปรแกรมประมวลผลข้อความแล้ว ให้ตรวจสอบไฟล์ /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

กำหนดค่าพร็อกซีการส่งต่อสำหรับคำขอจากส่วน "ส่งคำขอ" ของ UI ติดตาม

ส่วนนี้จะอธิบายวิธีกำหนดค่าพร็อกซีการส่งต่อสำหรับคำขอจากส่วนส่งคำขอของ UI ติดตามด้วยข้อมูลเข้าสู่ระบบพร็อกซีที่ไม่บังคับ วิธีกำหนดค่าพร็อกซีการส่งต่อ

  1. แก้ไข /opt/apigee/customer/application/ui.properties และตรวจสอบว่าไฟล์เป็นของ apigee:apigee
  2. เพิ่มการลบล้างต่อไปนี้ (การเปลี่ยนค่าในการกําหนดค่าพร็อกซีที่เฉพาะเจาะจง)
    conf_application_http.proxyhost=proxy.example.com
    conf_application_http.proxyport=8080
    conf_application_http.proxyuser=apigee
    conf_application_http.proxypassword=Apigee123!
  3. บันทึกและรีสตาร์ท 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 บางรายการไปยังพร็อกซี API และยืนยันรูปแบบบันทึกใหม่ในไฟล์
    /opt/apigee/var/log/edge-router/nginx/${org}~${env}.${port}_access_log file