คุณกำลังดูเอกสารประกอบ Apigee Edge
ไปที่
เอกสารประกอบเกี่ยวกับ Apigee X. ข้อมูล
Edge Microgateway เวอร์ชัน 3.1.x
หัวข้อนี้จะกล่าวถึงวิธีจัดการและกำหนดค่า Edge Microgateway
การอัปเกรด Edge Microgateway หากคุณมีการเชื่อมต่ออินเทอร์เน็ต
ส่วนนี้จะอธิบายวิธีอัปเกรดการติดตั้ง Edge Microgateway ที่มีอยู่ หากคุณทำงานโดยไม่ได้เชื่อมต่ออินเทอร์เน็ต โปรดดู ฉันจะติดตั้ง Edge Microgateway โดยไม่ต้องเชื่อมต่ออินเทอร์เน็ตได้ไหม
Apigee ขอแนะนำให้คุณทดสอบการกำหนดค่าที่มีอยู่ด้วย เวอร์ชันใหม่ก่อนการอัปเกรดสภาพแวดล้อมที่ใช้งานจริง
- เรียกใช้คำสั่ง
npm
ต่อไปนี้เพื่ออัปเกรดเป็น Edge เวอร์ชันล่าสุด ทางไมโครเกตเวย์:npm upgrade edgemicro -g
ในการอัปเกรดเป็น Edge Microgateway เวอร์ชันที่เฉพาะเจาะจง คุณต้องระบุเวอร์ชัน number ในคำสั่งอัปเกรด หากคุณไม่ระบุหมายเลขเวอร์ชัน ระบบจะกำหนดค่า เวอร์ชันล่าสุดจะติดตั้ง ตัวอย่างเช่น หากต้องการอัปเกรดเป็นเวอร์ชัน 3.1.0 ให้ใช้ คำสั่งต่อไปนี้
npm upgrade edgemicro@3.1.0 -g
- ตรวจสอบหมายเลขเวอร์ชัน ตัวอย่างเช่น หากคุณติดตั้งเวอร์ชัน 3.1.0 ไว้
edgemicro --version current nodejs version is v12.5.0 current edgemicro version is 3.1.0
- สุดท้าย ให้อัปเกรดพร็อกซี edgemicro-auth เป็นเวอร์ชันล่าสุดโดยทำดังนี้
edgemicro upgradeauth -o $ORG -e $ENV -u $USERNAME
กําลังเปลี่ยนแปลงการกําหนดค่า
ไฟล์การกำหนดค่าที่คุณต้องทราบมีดังนี้
- ไฟล์การกำหนดค่าระบบเริ่มต้น
- ไฟล์การกำหนดค่าเริ่มต้นสำหรับอินสแตนซ์ Edge Microgateway ที่เพิ่งเริ่มต้น
- ไฟล์การกำหนดค่าแบบไดนามิกสำหรับอินสแตนซ์ที่ทำงานอยู่
ส่วนนี้จะกล่าวถึงไฟล์เหล่านี้และสิ่งที่คุณจำเป็นต้องทราบเกี่ยวกับการเปลี่ยนไฟล์
การกำหนดค่าระบบเริ่มต้น ไฟล์
เมื่อติดตั้ง Edge Microgateway ไฟล์การกำหนดค่าระบบเริ่มต้นจะอยู่ที่ที่นี่
prefix/lib/node_modules/edgemicro/config/default.yaml
โดยที่ prefix คือไดเรกทอรีคำนำหน้า npm
โปรดดู
Edge Microgateway ติดตั้งที่ใด หากไม่พบไดเรกทอรีนี้
หากเปลี่ยนไฟล์การกำหนดค่าระบบ คุณจะต้องเริ่มต้นอีกครั้ง กำหนดค่าใหม่ และรีสตาร์ท Edge ทางไมโครเกตเวย์:
edgemicro initedgemicro configure [params]
edgemicro start [params]
ไฟล์การกำหนดค่าเริ่มต้นสำหรับอินสแตนซ์ Edge Microgateway ที่เพิ่งเริ่มต้น
เมื่อคุณเรียกใช้ edgemicro init
ไฟล์การกำหนดค่าระบบ (ตามที่อธิบายไว้
ด้านบน) default.yaml
จะอยู่ในไดเรกทอรี ~/.edgemicro
หากเปลี่ยนไฟล์การกำหนดค่าใน ~/.edgemicro
คุณต้องกำหนดค่าใหม่และรีสตาร์ท
ไมโครเกตเวย์ Edge:
edgemicro stopedgemicro configure [params]
edgemicro start [params]
ไดนามิก ไฟล์การกำหนดค่าสำหรับอินสแตนซ์ที่กำลังทำงาน
เมื่อเรียกใช้ edgemicro configure [params]
ระบบจะเปลี่ยนการตั้งค่า
ระบบจะสร้างไฟล์การกำหนดค่าใน ~/.edgemicro
ไฟล์ได้รับการตั้งชื่อตาม
รูปแบบ: org-env-config.yaml
โดยที่ org และ
env คือ
ชื่อองค์กรและสภาพแวดล้อม Apigee Edge ของคุณ คุณใช้ไฟล์นี้เพื่อกำหนดค่าได้
ที่เปลี่ยนแปลง แล้วโหลดซ้ำแบบไม่มีการหยุดทำงาน ตัวอย่างเช่น หากคุณเพิ่มและกำหนดค่าปลั๊กอิน
คุณสามารถโหลดการกำหนดค่าซ้ำโดยไม่ก่อให้เกิดช่วงพักการใช้งาน ดังที่อธิบายไว้ด้านล่าง
หาก Edge Microgateway ทำงานอยู่ (ตัวเลือกช่วงพักเป็นศูนย์) ให้ทำดังนี้
- โหลดการกำหนดค่า Edge Microgateway ซ้ำดังนี้
edgemicro reload -o $ORG -e $ENV -k $KEY -s $SECRET
สถานที่:
- $ORG คือชื่อองค์กร Edge ของคุณ (คุณต้องเป็นองค์กร ผู้ดูแลระบบ)
- $ENV คือสภาพแวดล้อมในองค์กร (เช่น "ทดสอบ" หรือ "prod")
- $KEY คือคีย์ที่แสดงผลก่อนหน้านี้โดยคำสั่งกำหนดค่า
- $SECRET คือคีย์ที่แสดงผลก่อนหน้านี้โดยคำสั่งกำหนดค่า
เช่น
edgemicro reload -o docs -e test -k 701e70ee718ce6dc188...78b6181d000723 \ -s 05c14356e42ed1...4e34ab0cc824
หาก Edge Microgateway หยุดทำงาน
- รีสตาร์ท Edge Microgateway ด้วยคำสั่งต่อไปนี้
edgemicro start -o $ORG -e $ENV -k $KEY -s $SECRET
สถานที่:
- $ORG คือชื่อองค์กร Edge ของคุณ (คุณต้องเป็นองค์กร ผู้ดูแลระบบ)
- $ENV คือสภาพแวดล้อมในองค์กร (เช่น "ทดสอบ" หรือ "prod")
- $KEY คือคีย์ที่แสดงผลก่อนหน้านี้โดยคำสั่งกำหนดค่า
- $SECRET คือคีย์ที่แสดงผลก่อนหน้านี้โดยคำสั่งกำหนดค่า
เช่น
edgemicro start -o docs -e test -k 701e70ee718ce...b6181d000723 \ -s 05c1435...e34ab0cc824
ตัวอย่างไฟล์การกำหนดค่า โปรดดูรายละเอียดเกี่ยวกับการตั้งค่าไฟล์การกำหนดค่าได้ที่ข้อมูลอ้างอิงการกำหนดค่า Edge Microgateway
edge_config: bootstrap: >- https://edgemicroservices-us-east-1.apigee.net/edgemicro/bootstrap/organization/docs/environment/test jwt_public_key: 'https://docs-test.apigee.net/edgemicro-auth/publicKey' managementUri: 'https://api.enterprise.apigee.com' vaultName: microgateway authUri: 'https://%s-%s.apigee.net/edgemicro-auth' baseUri: >- https://edgemicroservices.apigee.net/edgemicro/%s/organization/%s/environment/%s bootstrapMessage: Please copy the following property to the edge micro agent config keySecretMessage: The following credentials are required to start edge micro products: 'https://docs-test.apigee.net/edgemicro-auth/products' edgemicro: port: 8000 max_connections: 1000 max_connections_hard: 5000 config_change_poll_interval: 600 logging: level: error dir: /var/tmp stats_log_interval: 60 rotate_interval: 24 plugins: sequence: - oauth headers: x-forwarded-for: true x-forwarded-host: true x-request-id: true x-response-time: true via: true oauth: allowNoAuthorization: false allowInvalidAuthorization: false verify_api_key_url: 'https://docs-test.apigee.net/edgemicro-auth/verifyApiKey' analytics: uri: >- https://edgemicroservices-us-east-1.apigee.net/edgemicro/axpublisher/organization/docs/environment/test
การตั้งค่าตัวแปรสภาพแวดล้อม
คำสั่งของอินเทอร์เฟซบรรทัดคำสั่งที่ต้องใช้ค่าสำหรับองค์กร Edge และ และคีย์และข้อมูลลับที่จำเป็นสำหรับการเริ่มต้นใช้งาน Edge Microgateway สามารถจัดเก็บใน ตัวแปรสภาพแวดล้อม:
EDGEMICRO_ORG
EDGEMICRO_ENV
EDGEMICRO_KEY
EDGEMICRO_SECRET
โดยจะตั้งค่าตัวแปรเหล่านี้หรือไม่ก็ได้ หากตั้งค่าไว้ คุณไม่จำเป็นต้องระบุค่า เมื่อคุณใช้ Command-Line Interface (CLI) เพื่อกำหนดค่าและเริ่มต้น Edge Microgateway
การกำหนดค่า SSL บน Edge Microgateway เซิร์ฟเวอร์
ดูข้อมูลเกี่ยวกับการกำหนดค่า TLS ใน Apigee Edge Microgateway ได้ในวิดีโอต่อไปนี้
วิดีโอ | คำอธิบาย |
---|---|
กำหนดค่า TLS แบบ 1 ทางทิศเหนือ | ดูข้อมูลเกี่ยวกับการกำหนดค่า TLS ใน Apigee Edge Microgateway วิดีโอนี้แสดงภาพรวมของ TLS และความสำคัญ ขอแนะนำ TLS ใน Edge Microgateway และสาธิตวิธีการกำหนดค่า TLS แบบทางเดียวที่อยู่ทางเหนือ |
กำหนดค่า TLS แบบ 2 ทางทิศเหนืออยู่บน | นี่เป็นวิดีโอที่ 2 เกี่ยวกับการกำหนดค่า TLS ใน Apigee Edge Microgateway ช่วงเวลานี้ วิดีโออธิบายวิธีกำหนดค่า TLS 2 ทางขอบเขตเหนือ |
กำหนดค่า TLS แบบ 1 ทางและ 2 ทางใต้ | วิดีโอที่ 3 นี้เกี่ยวกับการกำหนดค่า TLS ใน Apigee Edge Microgateway อธิบายเกี่ยวกับ วิธีกำหนดค่า TLS แบบ 1 ทางและ 2 ทางที่อยู่ทิศใต้ |
คุณกำหนดค่าเซิร์ฟเวอร์ Microgateway ให้ใช้ SSL ได้ ตัวอย่างเช่น ด้วยการกำหนดค่า SSL สามารถเรียก API ผ่าน Edge Microgateway ด้วย "https" ดังนี้
https://localhost:8000/myapi
หากต้องการกำหนดค่า SSL บนเซิร์ฟเวอร์ Microgateway ให้ทำตามขั้นตอนต่อไปนี้
- สร้างหรือรับใบรับรอง SSL และคีย์โดยใช้ยูทิลิตี openssl หรือวิธีการใดก็ได้ที่คุณต้องการ
- เพิ่มแอตทริบิวต์
edgemicro:ssl
ลงในไฟล์การกำหนดค่า Edge Microgateway เพื่อการเรียนรู้ที่สมบูรณ์ โปรดดูรายการตัวเลือกในตารางด้านล่าง ตัวอย่างเช่น
edgemicro: ssl: key: <absolute path to the SSL key file> cert: <absolute path to the SSL cert file> passphrase: admin123 #option added in v2.2.2 rejectUnauthorized: true #option added in v2.2.2 requestCert: true
- รีสตาร์ท Edge Microgateway ทำตามขั้นตอนที่ระบุไว้ใน เปลี่ยนแปลงการกำหนดค่าโดยขึ้นอยู่กับ ไฟล์การกำหนดค่าที่คุณแก้ไข ได้แก่ ไฟล์เริ่มต้นหรือไฟล์การกำหนดค่ารันไทม์
ต่อไปนี้คือตัวอย่างส่วน edgemicro
ของไฟล์การกำหนดค่าที่ใช้ SSL
กำหนดค่าแล้ว:
edgemicro: port: 8000 max_connections: 1000 max_connections_hard: 5000 logging: level: error dir: /var/tmp stats_log_interval: 60 rotate_interval: 24 plugins: sequence: - oauth ssl: key: /MyHome/SSL/em-ssl-keys/server.key cert: /MyHome/SSL/em-ssl-keys/server.crt passphrase: admin123 #option added in v2.2.2 rejectUnauthorized: true #option added in v2.2.2
รายการตัวเลือกเซิร์ฟเวอร์ที่รองรับทั้งหมดมีดังนี้
ตัวเลือก | คำอธิบาย |
---|---|
key |
เส้นทางไปยังไฟล์ ca.key (ในรูปแบบ PEM) |
cert |
เส้นทางไปยังไฟล์ ca.cert (ในรูปแบบ PEM) |
pfx |
เส้นทางไปยังไฟล์ pfx ที่มีคีย์ส่วนตัว ใบรับรอง และใบรับรอง CA
ของไคลเอ็นต์ในรูปแบบ PFX |
passphrase |
สตริงที่มีรหัสผ่านสำหรับคีย์ส่วนตัวหรือ PFX |
ca |
เส้นทางไปยังไฟล์ที่มีรายการใบรับรองที่เชื่อถือได้ในรูปแบบ PEM |
ciphers |
สตริงที่อธิบายตัวเข้ารหัสที่จะใช้โดยคั่นด้วย ":" |
rejectUnauthorized |
หากเป็นจริง ใบรับรองเซิร์ฟเวอร์จะได้รับการยืนยันกับรายการ CA ที่ระบุ ถ้า การยืนยันล้มเหลว ระบบจะแสดงผลข้อผิดพลาด |
secureProtocol |
เมธอด SSL ที่จะใช้ เช่น SSLv3_method เพื่อบังคับให้ SSL เป็นเวอร์ชัน 3 |
servername |
ชื่อเซิร์ฟเวอร์สำหรับส่วนขยาย TLS ของ SNI (Server Name Development) |
requestCert |
true สำหรับ SSL แบบ 2 ทาง เท็จสำหรับ SSL ทางเดียว |
การใช้ตัวเลือก SSL/TLS ของไคลเอ็นต์
คุณกำหนดค่า Edge Microgateway เป็นไคลเอ็นต์ TLS หรือ SSL เมื่อเชื่อมต่อไปยังเป้าหมายได้ ปลายทาง ในไฟล์การกำหนดค่า Microgateway ให้ใช้องค์ประกอบเป้าหมายเพื่อตั้งค่า SSL/TLS ตัวเลือก
ตัวอย่างนี้แสดงการตั้งค่าที่จะนำไปใช้กับโฮสต์ทั้งหมด
edgemicro: ... targets: ssl: client: key: /Users/jdoe/nodecellar/twowayssl/ssl/client.key cert: /Users/jdoe/nodecellar/twowayssl/ssl/ca.crt passphrase: admin123 rejectUnauthorized: true
ในตัวอย่างนี้ การตั้งค่าจะใช้กับโฮสต์ที่ระบุเท่านั้น
edgemicro: ... targets: - host: 'myserver.example.com' ssl: client: key: /Users/myname/twowayssl/ssl/client.key cert: /Users/myname/twowayssl/ssl/ca.crt passphrase: admin123 rejectUnauthorized: true
ต่อไปนี้เป็นตัวอย่าง TLS
edgemicro: ... targets: - host: 'myserver.example.com' tls: client: pfx: /Users/myname/twowayssl/ssl/client.pfx passphrase: admin123 rejectUnauthorized: true
รายการตัวเลือกไคลเอ็นต์ทั้งหมดที่รองรับมีดังนี้
ตัวเลือก | คำอธิบาย |
---|---|
pfx |
เส้นทางไปยังไฟล์ pfx ที่มีคีย์ส่วนตัว ใบรับรอง และใบรับรอง CA
ของไคลเอ็นต์ในรูปแบบ PFX |
key |
เส้นทางไปยังไฟล์ ca.key (ในรูปแบบ PEM) |
passphrase |
สตริงที่มีรหัสผ่านสำหรับคีย์ส่วนตัวหรือ PFX |
cert |
เส้นทางไปยังไฟล์ ca.cert (ในรูปแบบ PEM) |
ca |
เส้นทางไปยังไฟล์ที่มีรายการใบรับรองที่เชื่อถือได้ในรูปแบบ PEM |
ciphers |
สตริงที่อธิบายตัวเข้ารหัสที่จะใช้โดยคั่นด้วย ":" |
rejectUnauthorized |
หากเป็นจริง ใบรับรองเซิร์ฟเวอร์จะได้รับการยืนยันกับรายการ CA ที่ระบุ ถ้า การยืนยันล้มเหลว ระบบจะแสดงผลข้อผิดพลาด |
secureProtocol |
เมธอด SSL ที่จะใช้ เช่น SSLv3_method เพื่อบังคับให้ SSL เป็นเวอร์ชัน 3 |
servername |
ชื่อเซิร์ฟเวอร์สำหรับส่วนขยาย TLS ของ SNI (Server Name Development) |
การกำหนดค่าพร็อกซีการตรวจสอบสิทธิ์ Edgemicro
โดยค่าเริ่มต้น Edge Microgateway จะใช้พร็อกซีที่ทำให้ใช้งานได้ใน Apigee Edge สำหรับการตรวจสอบสิทธิ์ OAuth2
ระบบจะทำให้พร็อกซีนี้ใช้งานได้เมื่อคุณเรียกใช้ edgemicro configure
เป็นครั้งแรก คุณสามารถเปลี่ยน
การกำหนดค่าเริ่มต้นของพร็อกซีนี้เพื่อเพิ่มการสนับสนุนสำหรับการอ้างสิทธิ์ที่กำหนดเองไปยังเว็บโทเค็น JSON
(JWT) กำหนดค่าการหมดอายุของโทเค็น และสร้างโทเค็นการรีเฟรช ดูรายละเอียดได้ที่หน้า edgemicro-auth ใน GitHub
การใช้บริการการตรวจสอบสิทธิ์ที่กำหนดเอง
โดยค่าเริ่มต้น Edge Microgateway จะใช้พร็อกซีที่ทำให้ใช้งานได้ใน Apigee Edge สำหรับการตรวจสอบสิทธิ์ OAuth2
ระบบจะทำให้พร็อกซีนี้ใช้งานได้เมื่อคุณเรียกใช้ edgemicro configure
เป็นครั้งแรก โดยค่าเริ่มต้น
ระบุ URL ของพร็อกซีในไฟล์การกำหนดค่า Edge Microgateway ดังต่อไปนี้
authUri: https://myorg-myenv.apigee.net/edgemicro-auth
ถ้าต้องการใช้บริการที่กำหนดเองเพื่อจัดการการตรวจสอบสิทธิ์ ให้เปลี่ยนค่า
authUri
ในไฟล์การกำหนดค่าให้ชี้ไปที่บริการของคุณ ตัวอย่างเช่น คุณอาจ
บริการที่ใช้ LDAP เพื่อยืนยันตัวตน
การจัดการไฟล์บันทึก
Edge Microgateway จะบันทึกข้อมูลเกี่ยวกับคำขอและการตอบกลับแต่ละรายการ ไฟล์บันทึกมีประโยชน์ ข้อมูลสำหรับการแก้ไขข้อบกพร่องและการแก้ปัญหา
ตำแหน่งจัดเก็บไฟล์บันทึก
โดยค่าเริ่มต้น ระบบจะจัดเก็บไฟล์บันทึกไว้ใน /var/tmp
วิธีเปลี่ยนบันทึกเริ่มต้น ไดเรกทอรีไฟล์
มีการระบุไดเรกทอรีที่ใช้จัดเก็บไฟล์บันทึกในการกำหนดค่า Edge Microgateway โปรดดูเพิ่มเติมที่การกำหนดค่า การเปลี่ยนแปลง
edgemicro: home: ../gateway port: 8000 max_connections: -1 max_connections_hard: -1 logging: level: info dir: /var/tmp stats_log_interval: 60 rotate_interval: 24
เปลี่ยนค่า dir เพื่อระบุไดเรกทอรีของไฟล์บันทึกอื่น
ส่งบันทึกไปยังคอนโซล
คุณสามารถกำหนดค่าการบันทึกเพื่อให้ส่งข้อมูลบันทึกไปยังเอาต์พุตมาตรฐานแทนที่จะส่งไปยัง
ไฟล์บันทึก ตั้งค่าแฟล็ก to_console
เป็น "จริง" ดังนี้
edgemicro: logging: to_console: true
เมื่อใช้การตั้งค่านี้ ระบบจะส่งบันทึกไปยังแบบมาตรฐาน ขณะนี้คุณไม่สามารถส่งบันทึกไปยังทั้งสอง stdout และไฟล์บันทึก
วิธีตั้งค่าระดับการบันทึก
โดยคุณตั้งค่าระดับการบันทึกได้ดังต่อไปนี้ ข้อมูล เตือน และ "แย่จัง" แนะนำให้ใช้ระดับข้อมูล โดยจะบันทึกคำขอและการตอบกลับ API ทั้งหมด และเป็นค่าเริ่มต้น
วิธีเปลี่ยนช่วงเวลาบันทึก
คุณกำหนดค่าช่วงเวลาเหล่านี้ได้ในไฟล์การกำหนดค่า Edge Microgateway โปรดดูเพิ่มเติมที่การแก้ไขการกำหนดค่า
แอตทริบิวต์ที่กำหนดค่าได้มีดังนี้
- stats_log_interval: (ค่าเริ่มต้น: 60) ช่วงเวลาเป็นวินาทีเมื่อสถิติ มีการเขียนลงในไฟล์บันทึก API
- rotate_interval: (ค่าเริ่มต้น: 24) ช่วงเวลาเป็นชั่วโมงเมื่อไฟล์บันทึก หมุนแล้ว เช่น
edgemicro: home: ../gateway port: 8000 max_connections: -1 max_connections_hard: -1 logging: level: info dir: /var/tmp stats_log_interval: 60 rotate_interval: 24
แนวทางปฏิบัติที่ดีในการบำรุงรักษาไฟล์บันทึก
เมื่อมีการรวบรวมข้อมูลไฟล์บันทึกเมื่อเวลาผ่านไป Apigee ขอแนะนำให้คุณใช้สิ่งต่อไปนี้ แนวทางปฏิบัติ:
- เนื่องจากไฟล์บันทึกอาจมีขนาดใหญ่มาก ดังนั้นคุณควรตรวจสอบให้แน่ใจว่าไดเรกทอรีของไฟล์บันทึกมี ที่เพียงพอ โปรดดูที่ส่วนต่อไปนี้เก็บไฟล์บันทึกที่ใด และวิธีเปลี่ยนไฟล์บันทึกเริ่มต้น ไดเรกทอรี
- โปรดลบหรือย้ายไฟล์บันทึกไปยังไดเรกทอรีที่เก็บถาวรแยกต่างหากอย่างน้อยสัปดาห์ละครั้ง
- หากคุณต้องการลบบันทึก ให้ใช้คำสั่ง CLI
edgemicro log -c
เพื่อลบบันทึกเก่า (ล้าง)
แบบแผนการตั้งชื่อไฟล์บันทึก
อินสแตนซ์ Edge Microgateway แต่ละรายการจะสร้างไฟล์บันทึก 3 ประเภทดังนี้
- api - บันทึกคำขอและการตอบกลับทั้งหมดที่ส่งผ่าน Edge ทางไมโครเกตเวย์ ตัวนับ API (สถิติ) และข้อผิดพลาดจะบันทึกอยู่ในไฟล์นี้ด้วย
- err - บันทึกทุกอย่างที่ส่งไปยัง stderr
- out - บันทึกทุกสิ่งที่ส่งไปยัง stdout
รูปแบบการตั้งชื่อมีดังนี้
edgemicro-<Host Name>-<Instance ID>-<Log Type>.log
เช่น
edgemicro-mymachine-local-MTQzNTgNDMxODAyMQ-api.log edgemicro-mymachine-local-MTQzNTg1NDMODAyMQ-err.log edgemicro-mymachine-local-mtqzntgndmxodaymq-out.log
เกี่ยวกับเนื้อหาไฟล์บันทึก
เพิ่มใน v2.3.3
โดยค่าเริ่มต้น บริการการบันทึกจะละเว้น JSON ของพร็อกซี ผลิตภัณฑ์ และ JSON ที่ดาวน์โหลด
Web Token (JWT) หากต้องการแสดงออบเจ็กต์เหล่านี้ไปยังไฟล์บันทึก ให้ตั้งค่า
DEBUG=*
เมื่อคุณเริ่มต้น Edge Microgateway เช่น
DEBUG=* edgemicro start -o docs -e test -k abc123 -s xyz456
เนื้อหาของ "api" ไฟล์บันทึก
"api" ไฟล์บันทึกจะมีข้อมูลโดยละเอียดเกี่ยวกับขั้นตอนของคำขอและการตอบกลับ ผ่าน Edge Microgateway "api" ไฟล์บันทึกจะมีชื่อดังนี้
edgemicro-mymachine-local-MTQzNjIxOTk0NzY0Nw-api.log
สำหรับคำขอแต่ละรายการที่ส่งไปยัง Edge Microgateway จะมีการบันทึก 4 เหตุการณ์ใน "api" บันทึก ไฟล์:
- คำขอที่เข้ามาจากไคลเอ็นต์
- คำขอขาออกที่ส่งไปยังเป้าหมาย
- การตอบกลับขาเข้าจากเป้าหมาย
- การตอบกลับไปยังไคลเอ็นต์
แต่ละรายการที่แยกกันเหล่านี้จะปรากฏในรูปแบบชวเลขเพื่อช่วยในการสร้างบันทึก ไฟล์ที่มีขนาดกะทัดรัดมากขึ้น ต่อไปนี้เป็นตัวอย่าง 4 รายการซึ่งเป็นตัวแทนของแต่ละเหตุการณ์ทั้ง 4 รายการ ในบันทึก ไฟล์ ก็จะมีหน้าตาแบบนี้ (หมายเลขบรรทัดใช้สำหรับการอ้างอิงในเอกสารเท่านั้น โดยไม่ปรากฏ ในไฟล์บันทึก)
(1) 1436403888651 info req m=GET, u=/, h=localhost:8000, r=::1:59715, i=0 (2) 1436403888665 info treq m=GET, u=/, h=127.0.0.18080, i=0 (3) 1436403888672 info tres s=200, d=7, i=0 (4) 1436403888676 info res s=200, d=11, i=0
เราจะมาดูกันทีละรายการ
1. ตัวอย่างคำขอขาเข้าจากไคลเอ็นต์:
1436403888651 info req m=GET, u=/, h=localhost:8000, r=::1:59715, i=0
- 1436403888651 - การประทับเวลา Unix
- info - ขึ้นอยู่กับบริบท อาจเป็นข้อมูล คำเตือน หรือข้อผิดพลาด โดยขึ้นอยู่กับระดับการบันทึก อาจเป็นสถิติสำหรับบันทึกสถิติ เตือนเมื่อมีคำเตือน หรือ ข้อผิดพลาด
- req - ระบุเหตุการณ์ ในกรณีนี้ ให้ส่งคำขอจาก ของคุณ
- m - คำกริยา HTTP ที่ใช้ในคำขอ
- u - ส่วนของ URL ตามเส้นทางฐาน
- h - โฮสต์และหมายเลขพอร์ตที่ Edge Microgateway คือ ที่ฟังอยู่
- r - โฮสต์ระยะไกลและพอร์ตที่ไคลเอ็นต์ส่งคำขอ เป็นต้นกำเนิด
- i - รหัสคำขอ รายการกิจกรรมทั้ง 4 รายการจะใช้รหัสนี้ร่วมกัน ชิ้น มีการกำหนด ID คำขอที่ไม่ซ้ำกัน บันทึกบันทึกเชิงสัมพันธ์ตามรหัสคำขอจะให้ ข้อมูลเชิงลึกที่มีประโยชน์เกี่ยวกับเวลาในการตอบสนองของเป้าหมาย
- d - ระยะเวลาเป็นมิลลิวินาทีนับตั้งแต่ได้รับคำขอโดย Edge Microgateway ในตัวอย่างข้างต้น การตอบกลับคำขอ 0 ของเป้าหมาย หลังจาก 7 มิลลิวินาที (บรรทัดที่ 3) และมีการส่งการตอบกลับไปยังไคลเอ็นต์หลังจากที่ใช้งานเพิ่มอีก 4 มิลลิวินาที (บรรทัดที่ 4) กล่าวคือ เวลาในการตอบสนองคำขอทั้งหมดคือ 11 มิลลิวินาทีจากทั้งหมด ซึ่ง 7 มิลลิวินาทีที่เป้าหมายใช้ และ 4 มิลลิวินาทีที่ Edge Microgateway โดยตรง
2. ตัวอย่างคำขอขาออกที่ส่งไปยังเป้าหมาย
1436403888665 info treq m=GET, u=/, h=127.0.0.1:8080, i=0
- 1436403888651 - การประทับเวลา Unix
- info - ขึ้นอยู่กับบริบท อาจเป็นข้อมูล คำเตือน หรือข้อผิดพลาด โดยขึ้นอยู่กับระดับการบันทึก อาจเป็นสถิติสำหรับบันทึกสถิติ เตือนเมื่อมีคำเตือน หรือ ข้อผิดพลาด
- treq - ระบุเหตุการณ์ ในกรณีนี้คือคำขอเป้าหมาย
- m - คำกริยา HTTP ที่ใช้ในคำขอเป้าหมาย
- u - ส่วนของ URL ตามเส้นทางฐาน
- h - โฮสต์และหมายเลขพอร์ตของเป้าหมายแบ็กเอนด์
- i - รหัสของรายการบันทึก รายการกิจกรรมทั้ง 4 รายการจะแชร์รายการนี้ ID
3. ตัวอย่างการตอบสนองที่เข้ามาใหม่จากเป้าหมาย
1436403888672 info tres s=200, d=7, i=0
1436403888651 - การประทับเวลา Unix
- info - ขึ้นอยู่กับบริบท อาจเป็นข้อมูล คำเตือน หรือข้อผิดพลาด โดยขึ้นอยู่กับระดับการบันทึก อาจเป็นสถิติสำหรับบันทึกสถิติ เตือนเมื่อมีคำเตือน หรือ ข้อผิดพลาด
- tres - ระบุเหตุการณ์ ในกรณีนี้ ให้กำหนดการตอบสนองเป้าหมาย
- s - สถานะการตอบกลับ HTTP
- d - ระยะเวลาเป็นมิลลิวินาที เวลาที่ใช้ในการเรียก API เป้าหมาย
- i - รหัสของรายการบันทึก รายการกิจกรรมทั้ง 4 รายการจะแชร์รายการนี้ ID
4. ตัวอย่างข้อความตอบกลับไปยังลูกค้า
1436403888676 info res s=200, d=11, i=0
1436403888651 - การประทับเวลา Unix
- info - ขึ้นอยู่กับบริบท อาจเป็นข้อมูล คำเตือน หรือข้อผิดพลาด โดยขึ้นอยู่กับระดับการบันทึก อาจเป็นสถิติสำหรับบันทึกสถิติ เตือนเมื่อมีคำเตือน หรือ ข้อผิดพลาด
- res - ระบุเหตุการณ์ ในกรณีนี้ ให้ตอบสนองต่อ ของคุณ
- s - สถานะการตอบกลับ HTTP
- d - ระยะเวลาเป็นมิลลิวินาที นี่คือเวลาทั้งหมดที่ใช้ไป จากการเรียก API ซึ่งรวมถึงเวลาที่ API เป้าหมายและเวลาที่ Edge ใช้ ทางไมโครเกตเวย์เอง
- i - รหัสของรายการบันทึก รายการกิจกรรมทั้ง 4 รายการจะแชร์รายการนี้ ID
กำหนดการของไฟล์บันทึก
ระบบจะหมุนเวียนไฟล์บันทึกในช่วงเวลาที่ระบุโดย rotate_interval แอตทริบิวต์การกำหนดค่า ระบบจะยังคงเพิ่มรายการลงใน ไฟล์บันทึกเดียวกันจนกว่าช่วงเวลาการหมุนเวียนจะสิ้นสุดลง แต่ทุกครั้งที่ Edge Microgateway รีสตาร์ท จะได้รับ UID ใหม่และสร้างไฟล์บันทึกชุดใหม่ด้วย UID นี้ ดูเพิ่มเติม ดูแลรักษาไฟล์บันทึกได้ดี แนวทางปฏิบัติที่ดีที่สุด
ข้อความแสดงข้อผิดพลาด
รายการบันทึกบางรายการอาจมีข้อความแสดงข้อผิดพลาด เพื่อช่วยระบุตำแหน่งและสาเหตุของข้อผิดพลาด ดูข้อผิดพลาดของ Edge Microgateway ข้อมูลอ้างอิง
ข้อมูลอ้างอิงการกำหนดค่า Edge Microgateway
ตำแหน่งของ ไฟล์การกำหนดค่า
แอตทริบิวต์การกำหนดค่าที่อธิบายไว้ในส่วนนี้อยู่ใน Edge Microgateway ใหม่ โปรดดูเพิ่มเติมที่การกำหนดค่า การเปลี่ยนแปลง
แอตทริบิวต์ edge_config
การตั้งค่าเหล่านี้ใช้เพื่อกำหนดค่าการโต้ตอบระหว่างอินสแตนซ์ Edge Microgateway กับ Apigee Edge
- bootstrap: (ค่าเริ่มต้น: ไม่มี) URL ที่ชี้ไปยัง Edge
บริการเฉพาะไมโครเกตเวย์ที่ทำงานบน Apigee Edge Edge Microgateway ใช้บริการนี้เพื่อ
สื่อสารกับ Apigee Edge ระบบจะส่งคืน URL นี้เมื่อคุณเรียกใช้คำสั่งเพื่อสร้างฟิลด์
คู่คีย์สาธารณะ/ส่วนตัว:
edgemicro genkeys
ดูการตั้งค่า และการกำหนดค่า Edge Microgateway เพื่อดูรายละเอียด - jwt_public_key: (ค่าเริ่มต้น: ไม่มี) URL ที่ชี้ไปยัง Edge Microgateway พร็อกซีที่ทำให้ใช้งานได้ใน Apigee Edge พร็อกซีนี้ทำหน้าที่เป็นปลายทางการตรวจสอบสิทธิ์สำหรับ การออกโทเค็นเพื่อการเข้าถึงที่ลงนามแล้วให้กับลูกค้า ระบบจะแสดงผล URL นี้เมื่อคุณเรียกใช้คำสั่งเพื่อ ทำให้พร็อกซีใช้งานได้: edgemicroConfigure ดูการตั้งค่า และการกำหนดค่า Edge Microgateway เพื่อดูรายละเอียด
- quotaUri: ตั้งค่าการกำหนดค่านี้
ของคุณหากคุณต้องการจัดการโควต้าผ่านพร็อกซี
edgemicro-auth
ที่ ที่ทำให้ใช้งานได้ในองค์กร หากไม่ได้ตั้งค่าพร็อพเพอร์ตี้นี้ ปลายทางโควต้าจะมีค่าเริ่มต้นเป็นปลายทาง Edge Microgateway ภายในedge_config: quotaUri: https://your_org-your_env.apigee.net/edgemicro-auth
แอตทริบิวต์ Edgemicro
การตั้งค่าเหล่านี้จะกำหนดค่ากระบวนการ Edge Microgateway
- port: (ค่าเริ่มต้น: 8000) หมายเลขพอร์ตที่ Edge Microgateway ประมวลผล Listener
- max_connections: (ค่าเริ่มต้น: -1) ระบุจำนวนสูงสุดของ
การเชื่อมต่อขาเข้าพร้อมกันที่ Edge Microgateway รับได้ หากหมายเลขนี้คือ
เกินกำหนด ระบบจะแสดงผลสถานะต่อไปนี้
res.statusCode = 429; // Too many requests
- max_connections_hard: (ค่าเริ่มต้น: -1) จำนวนการเชื่อมต่อพร้อมกันสูงสุด ที่ Edge Microgateway จะได้รับก่อนปิดการเชื่อมต่อ การตั้งค่านี้ ที่มีเจตนาป้องกันการโจมตีแบบปฏิเสธการให้บริการ โดยปกติ ให้ตั้งตัวเลขที่มากกว่า max_connections.
-
logging:
-
level: (ค่าเริ่มต้น: ข้อผิดพลาด)
- info - บันทึกคำขอและการตอบกลับทั้งหมดที่ไหลผ่าน อินสแตนซ์ Edge Microgateway
- warn - บันทึกข้อความเตือนเท่านั้น
- error - บันทึกข้อความแสดงข้อผิดพลาดเท่านั้น
- dir: (ค่าเริ่มต้น: /var/tmp) ไดเรกทอรีที่มีไฟล์บันทึก ที่จัดเก็บไว้
- stats_log_interval: (ค่าเริ่มต้น: 60) ช่วงเวลาเป็นวินาทีเมื่อสถิติ มีการเขียนระเบียนไปยังไฟล์บันทึก API
- rotate_interval: (ค่าเริ่มต้น: 24) ช่วงเวลาเป็นชั่วโมงเมื่อไฟล์บันทึก หมุนแล้ว
-
level: (ค่าเริ่มต้น: ข้อผิดพลาด)
- ปลั๊กอิน: ปลั๊กอินจะเพิ่มฟังก์ชันการทำงานให้กับ Edge Microgateway โปรดดูรายละเอียด เกี่ยวกับการพัฒนาซอฟต์แวร์ ดูพัฒนาปลั๊กอินที่กำหนดเอง
- dir: เส้นทางแบบสัมพัทธ์จากไดเรกทอรี ./gateway ไปยัง ไดเรกทอรี ./plugins หรือเส้นทางสัมบูรณ์
- ลำดับ: รายการโมดูลปลั๊กอินที่จะเพิ่มไปยัง Edge Microgateway อินสแตนซ์ โมดูลจะทำงานตามลำดับที่ระบุไว้ที่นี่
-
debug: เพิ่มการแก้ไขข้อบกพร่องจากระยะไกลลงในกระบวนการ Edge Microgateway
- port: หมายเลขพอร์ตที่จะฟัง ตัวอย่างเช่น ตั้งค่าโปรแกรมแก้ไขข้อบกพร่อง IDE ในการฟังบนพอร์ตนี้
- args: อาร์กิวเมนต์ในกระบวนการแก้ไขข้อบกพร่อง เช่น
args --nolazy
- config_change_poll_interval: (ค่าเริ่มต้น: 600 วินาที) Edge Microgateway
จะโหลดการกำหนดค่าใหม่เป็นระยะและดำเนินการโหลดซ้ำหากมีการเปลี่ยนแปลง แบบสำรวจ
รับการเปลี่ยนแปลงที่ทำใน Edge (การเปลี่ยนแปลงที่เกิดขึ้นกับผลิตภัณฑ์ พร็อกซีที่รับรู้ถึง Microgateway ฯลฯ)
รวมทั้งการเปลี่ยนแปลงที่ทำกับไฟล์การกำหนดค่าในเครื่อง
- disable_config_poll_interval: (ค่าเริ่มต้น: false) ตั้งค่าเป็น true เป็น ปิดแบบสำรวจการเปลี่ยนแปลงอัตโนมัติ
- request_timeout: ตั้งค่าระยะหมดเวลาสำหรับคำขอเป้าหมาย ระยะหมดเวลาจะตั้งไว้ที่ วินาที หากหมดเวลา Edge Microgateway จะตอบสนองด้วยรหัสสถานะ 504 (เพิ่มแล้ว v2.4.x)
- keep_alive_timeout: พร็อพเพอร์ตี้นี้ช่วยให้คุณตั้งค่า Edge Microgateway การหมดเวลา (เป็นมิลลิวินาที) (ค่าเริ่มต้น: 5 วินาที) (เพิ่ม v3.0.6)
- headers_timeout: แอตทริบิวต์นี้จำกัดระยะเวลา (เป็นมิลลิวินาที)
โปรแกรมแยกวิเคราะห์ HTTP จะรอรับ
ส่วนหัว HTTP ที่สมบูรณ์
เช่น
edgemicro: keep_alive_timeout: 6000 headers_timeout: 12000
พารามิเตอร์จะกำหนดค่า Node.js เป็นการภายใน
Server.headersTimeout
ตามคำขอได้ (ค่าเริ่มต้น: มากกว่า 5 วินาที เวลาที่ตั้งไว้กับedgemicro.keep_alive_timeout
ค่าเริ่มต้นนี้ การตั้งค่าป้องกันไม่ให้ตัวจัดสรรภาระงานหรือพร็อกซียกเลิกการเชื่อมต่ออย่างไม่ถูกต้อง) (เพิ่ม v3.1.1)
แอตทริบิวต์ส่วนหัว
การตั้งค่าเหล่านี้จะกำหนดวิธีจัดการส่วนหัว HTTP บางอย่าง
- x-Forwarded-for: (ค่าเริ่มต้น: true) ให้ตั้งค่าเป็น false เพื่อป้องกัน ส่วนหัว x-Forwarded-for ที่จะส่งไปยังเป้าหมาย โปรดทราบว่าหากส่วนหัว x-Forwarded-for อยู่ในคําขอ ระบบจะตั้งค่าเป็นค่า IP ของไคลเอ็นต์ใน Edge Analytics
- x-Forwarded-host: (ค่าเริ่มต้น: true) ให้ตั้งค่าเป็น false เพื่อป้องกัน ส่วนหัว x-Forwarded-host ที่จะส่งไปยังเป้าหมาย
- x-request-id: (ค่าเริ่มต้น: true) ตั้งค่าเป็น false เพื่อป้องกัน ส่วนหัว x-request-id ที่จะส่งไปยังเป้าหมาย
- x-response-time: (ค่าเริ่มต้น: true) ตั้งค่าเป็น false เพื่อป้องกัน ส่วนหัว x-response-time ที่จะส่งไปยังเป้าหมาย
- via: (ค่าเริ่มต้น: true) ตั้งเป็น false เพื่อป้องกันการส่งผ่านส่วนหัวเป็น ที่ส่งไปยังเป้าหมาย
แอตทริบิวต์ OAuth
การตั้งค่าเหล่านี้จะกำหนดค่าวิธีบังคับใช้การตรวจสอบสิทธิ์ไคลเอ็นต์โดย Edge Microgateway
- allowNoAuthorization: (ค่าเริ่มต้น: false) หากตั้งค่าเป็น "จริง" การเรียก API จะเป็น ได้รับอนุญาตให้ส่งผ่าน Edge Microgateway โดยไม่มีส่วนหัวการให้สิทธิ์เลย ตั้งค่านี้เป็น false เพื่อกำหนดให้ต้องมีส่วนหัวการให้สิทธิ์ (ค่าเริ่มต้น)
- allowInvalidAuthorization: (ค่าเริ่มต้น: false) หากตั้งค่าเป็น "จริง" การเรียก API จะเป็น ได้รับอนุญาตให้ส่งหากโทเค็นที่ส่งในส่วนหัวการให้สิทธิ์ไม่ถูกต้องหรือหมดอายุ ตั้งค่าสิ่งนี้ เป็น "เท็จ" เพื่อต้องใช้โทเค็นที่ถูกต้อง (ค่าเริ่มต้น)
- Authorization-header: (ค่าเริ่มต้น: การให้สิทธิ์: ผู้ถือ) ส่วนหัวที่ใช้เพื่อ ส่งโทเค็นเพื่อการเข้าถึงไปยัง Edge Microgateway คุณอาจต้องการเปลี่ยนค่าเริ่มต้นในกรณีที่ เป้าหมายต้องใช้ส่วนหัวการให้สิทธิ์เพื่อวัตถุประสงค์อื่น
- api-key-header: (ค่าเริ่มต้น: x-api-key) ชื่อของส่วนหัวหรือคำค้นหา พารามิเตอร์ที่ใช้ส่งคีย์ API ไปยัง Edge Microgateway โปรดดูเพิ่มเติมที่การใช้ คีย์ API
- keep-authorization-header: (ค่าเริ่มต้น: false) หากตั้งค่าเป็น True ส่วนหัว Authorization ที่ส่งในคำขอจะถูกส่งต่อไปยังเป้าหมาย (มีการเก็บรักษาไว้)
- allowOAuthOnly -- หากตั้งค่าเป็น "จริง" API ทุกรายการต้องมีการให้สิทธิ์ ส่วนหัวที่มีโทเค็นเพื่อการเข้าถึงสำหรับผู้ถือ อนุญาตให้คุณอนุญาตเฉพาะโมเดลการรักษาความปลอดภัย OAuth (ในขณะที่ การรักษาความเข้ากันได้แบบย้อนหลัง) (เพิ่ม 2.4.x)
- allowAPIKeyOnly -- หากตั้งค่าเป็น "จริง" ทุก API ต้องมีแอตทริบิวต์ ส่วนหัว x-api-key (หรือตำแหน่งที่กำหนดเอง) ที่มีคีย์ API ซึ่งช่วยให้คุณสามารถอนุญาต เฉพาะโมเดลความปลอดภัยของคีย์ API เท่านั้น (โดยยังคงไว้ซึ่งความเข้ากันได้แบบย้อนหลัง) (เพิ่ม 2.4.x)
- gracePeriod -- พารามิเตอร์นี้ช่วยป้องกันข้อผิดพลาดที่เกิดจาก ความคลาดเคลื่อนระหว่างนาฬิการะบบของคุณกับเวลาก่อนหน้า (nbf) หรือเวลาออก (iat) ที่ระบุในโทเค็นการให้สิทธิ์ JWT ตั้งค่าพารามิเตอร์นี้เป็นจำนวนวินาทีที่จะอนุญาต สำหรับความคลาดเคลื่อนดังกล่าว (เพิ่ม 2.5.7)
เฉพาะปลั๊กอิน แอตทริบิวต์
ดูรายละเอียดเกี่ยวกับแอตทริบิวต์ที่กำหนดค่าได้สำหรับปลั๊กอินแต่ละรายการที่หัวข้อ "การใช้ปลั๊กอิน"
การกรองพร็อกซี
คุณสามารถกรองพร็อกซีที่รับรู้ถึงไมโครเกตเวย์ที่อินสแตนซ์ Edge Microgateway จะประมวลผลได้
เมื่อ Edge Microgateway เริ่มทำงาน จะมีการดาวน์โหลดพร็อกซีที่รับรู้ Microgateway ทั้งหมดใน
ขององค์กรที่เกี่ยวข้องด้วย ใช้การกำหนดค่าต่อไปนี้เพื่อจำกัดพร็อกซีที่ใช้
Microgateway จะประมวลผล เช่น การกำหนดค่านี้จะจำกัดพร็อกซีของ Microgateway
จะประมวลผลเป็น 3 ได้แก่ edgemicro_proxy-1
, edgemicro_proxy-2
และ edgemicro_proxy-3
:
edgemicro: proxies: - edgemicro_proxy-1 - edgemicro_proxy-2 - edgemicro_proxy-3
การกรองผลิตภัณฑ์
ใช้การกำหนดค่าต่อไปนี้เพื่อจำกัดจำนวนผลิตภัณฑ์ API ที่ Edge Microgateway
ดาวน์โหลดและกระบวนการต่างๆ หากต้องการกรองผลิตภัณฑ์ที่ดาวน์โหลด ให้เพิ่ม productnamefilter
พารามิเตอร์การค้นหาไปยัง /products
API ที่แสดงใน Edge Microgateway *.config.yaml
เช่น
edge_config: bootstrap: >- https://edgemicroservices.apigee.net/edgemicro/bootstrap/organization/willwitman/environment/test jwt_public_key: 'https://myorg-test.apigee.net/edgemicro-auth/publicKey' managementUri: 'https://api.enterprise.apigee.com' vaultName: microgateway authUri: 'https://%s-%s.apigee.net/edgemicro-auth' baseUri: >- https://edgemicroservices.apigee.net/edgemicro/%s/organization/%s/environment/%s bootstrapMessage: Please copy the following property to the edge micro agent config keySecretMessage: The following credentials are required to start edge micro products: 'https://myorg-test.apigee.net/edgemicro-auth/products?productnamefilter=%5E%5BEe%5Ddgemicro.%2A%24'
โปรดทราบว่าค่าของพารามิเตอร์การค้นหาต้องระบุในรูปแบบนิพจน์ทั่วไปและ
เป็น URL ที่เข้ารหัส เช่น นิพจน์ทั่วไป ^[Ee]dgemicro.*$
จะตรวจจับชื่อต่างๆ เช่น
"edgemicro-test-1" "edgemicro_demo" และ "Edgemicro_New_Demo" ค่า URL ที่เข้ารหัส เหมาะสำหรับ
ที่ใช้ในพารามิเตอร์การค้นหาคือ: %5E%5BEe%5Ddgemicro.%2A%24
ผลลัพธ์การแก้ไขข้อบกพร่องต่อไปนี้แสดงให้เห็นว่ามีการดาวน์โหลดเฉพาะผลิตภัณฑ์ที่กรองแล้วเท่านั้น
... 2020-05-27T03:13:50.087Z [76060] [microgateway-config network] products download from https://gsc-demo-prod.apigee.net/edgemicro-auth/products?productnamefilter=%5E%5BEe%5Ddgemicro.%2A%24 returned 200 OK ... .... .... { "apiProduct":[ { "apiResources":[ ], "approvalType":"auto", "attributes":[ { "name":"access", "value":"public" } ], "createdAt":1590549037549, "createdBy":"k***@g********m", "displayName":"test upper case in name", "environments":[ "prod", "test" ], "lastModifiedAt":1590549037549, "lastModifiedBy":"k***@g********m", "name":"Edgemicro_New_Demo", "proxies":[ "catchall" ], "quota":"null", "quotaInterval":"null", "quotaTimeUnit":"null", "scopes":[ ] }, { "apiResources":[ ], "approvalType":"auto", "attributes":[ { "name":"access", "value":"public" } ], "createdAt":1590548328998, "createdBy":"k***@g********m", "displayName":"edgemicro test 1", "environments":[ "prod", "test" ], "lastModifiedAt":1590548328998, "lastModifiedBy":"k***@g********m", "name":"edgemicro-test-1", "proxies":[ "Lets-Encrypt-Validation-DoNotDelete" ], "quota":"null", "quotaInterval":"null", "quotaTimeUnit":"null", "scopes":[ ] }, { "apiResources":[ "/", "/**" ], "approvalType":"auto", "attributes":[ { "name":"access", "value":"public" } ], "createdAt":1558182193472, "createdBy":"m*********@g********m", "displayName":"Edge microgateway demo product", "environments":[ "prod", "test" ], "lastModifiedAt":1569077897465, "lastModifiedBy":"m*********@g********m", "name":"edgemicro_demo", "proxies":[ "edgemicro-auth", "edgemicro_hello" ], "quota":"600", "quotaInterval":"1", "quotaTimeUnit":"minute", "scopes":[ ] } ] }
การกำหนดค่าความถี่ในการพุชของ Analytics
ใช้พารามิเตอร์การกำหนดค่าเหล่านี้เพื่อควบคุมความถี่ที่ Edge Microgateway ส่ง การวิเคราะห์ไปยัง Apigee ดังนี้
- bufferSize (ไม่บังคับ): จำนวนสูงสุดของข้อมูลวิเคราะห์ที่บันทึก สามารถเก็บบัฟเฟอร์ไว้ก่อนที่จะเริ่มทิ้งระเบียนที่เก่าที่สุดได้ ค่าเริ่มต้น: 10000
- batchSize (ไม่บังคับ): ขนาดสูงสุดของกลุ่มระเบียน Analytics ที่ส่งไปยัง Apigee ค่าเริ่มต้น: 500
- flushInterval (ไม่บังคับ): จำนวนมิลลิวินาทีระหว่างการล้างแต่ละครั้ง ชุดบันทึกการวิเคราะห์ที่ส่งไปยัง Apigee ค่าเริ่มต้น: 5000
เช่น
analytics: bufferSize: 15000 batchSize: 1000 flushInterval: 6000
การมาสก์ข้อมูลวิเคราะห์
การกำหนดค่าต่อไปนี้ป้องกันไม่ให้ข้อมูลเส้นทางคำขอแสดงใน Edge Analytics เพิ่มข้อมูลต่อไปนี้ในการกำหนดค่า Microgateway เพื่อมาสก์ URI คำขอและ/หรือ เส้นทางคำขอ โปรดทราบว่า URI ประกอบด้วยชื่อโฮสต์และเส้นทางของคำขอ
analytics: mask_request_uri: 'string_to_mask' mask_request_path: 'string_to_mask'
การแยกการเรียก API ใน Edge Analytics
คุณสามารถกำหนดค่าปลั๊กอินการวิเคราะห์เพื่อแยกเส้นทาง API เฉพาะเพื่อให้ปรากฏเป็น พร็อกซีที่แยกต่างหากในแดชบอร์ด Edge Analytics ตัวอย่างเช่น คุณสามารถ แยก API การตรวจสอบประสิทธิภาพการทำงานในแดชบอร์ดเพื่อไม่ให้สับสนกับการเรียกพร็อกซี API จริง ใน แดชบอร์ดของ Analytics โดยพร็อกซีแยกจะมีรูปแบบการตั้งชื่อดังนี้
edgemicro_proxyname-health
รูปภาพต่อไปนี้แสดงพร็อกซีแยก 2 รายการในแดชบอร์ด Analytics: edgemicro_hello-health
และ
edgemicro_mock-health
:
ใช้ค่าเหล่านี้ เพื่อแยกเส้นทางสัมพัทธ์และเส้นทางสัมบูรณ์ในแดชบอร์ด Analytics ออกจากพร็อกซีแยกกัน ดังนี้
- relativePath (ไม่บังคับ): ระบุเส้นทางที่เกี่ยวข้องที่จะแยกออก
แดชบอร์ด Analytics ตัวอย่างเช่น หากคุณระบุ
/healthcheck
การเรียก API ทั้งหมดที่มีเส้นทาง/healthcheck
จะปรากฏในหน้าแดชบอร์ดเป็นedgemicro_proxyname-health
โปรดทราบว่าแฟล็กนี้ไม่สนใจเส้นทางฐานของพร็อกซี หากต้องการแยกออกตามเส้นทางแบบเต็ม รวมถึงเส้นทางฐาน ให้ใช้แฟล็กproxyPath
- proxyPath (ไม่บังคับ): ระบุเส้นทางพร็อกซี API แบบเต็ม รวมถึงพร็อกซี
เส้นทางพื้นฐาน เพื่อแยกในหน้าแดชบอร์ด Analytics ตัวอย่างเช่น หากคุณระบุ
/mocktarget/healthcheck
โดยมี/mocktarget
คือเส้นทางฐานของพร็อกซี การเรียก API ทั้งหมดที่มีเส้นทาง/mocktarget/healthcheck
จะ จะปรากฏในหน้าแดชบอร์ดเป็นedgemicro_proxyname-health
ตัวอย่างเช่น เส้นทาง API ที่มี /healthcheck
ในการกำหนดค่าต่อไปนี้จะ
จะแยกออกโดยปลั๊กอิน Analytics ซึ่งหมายความว่า /foo/healthcheck
และ /foo/bar/healthcheck
จะถูกแยกเป็นพร็อกซีแยกต่างหากที่ชื่อว่า edgemicro_proxyname-health
ในแดชบอร์ดข้อมูลวิเคราะห์
analytics: uri: >- https://xx/edgemicro/ax/org/docs/environment/test bufferSize: 100 batchSize: 50 flushInterval: 500 relativePath: /healthcheck
ในการกำหนดค่าต่อไปนี้ API ที่มีเส้นทางพร็อกซี /mocktarget/healthcheck
จะ
จะถูกแยกเป็นพร็อกซีแยกต่างหากที่ชื่อว่า edgemicro_proxyname-health
ใน
แดชบอร์ดข้อมูลวิเคราะห์
analytics: uri: >- https://xx/edgemicro/ax/org/docs/environment/test bufferSize: 100 batchSize: 50 flushInterval: 500 proxyPath: /mocktarget/healthcheck
การตั้งค่า Edge Microgateway หลัง ไฟร์วอลล์ของบริษัท
ใช้พร็อกซี HTTP เพื่อสื่อสารกับ Apigee Edge
เพิ่มในเวอร์ชัน 3.1.2
หากต้องการใช้พร็อกซี HTTP เพื่อสื่อสารระหว่าง Edge Microgateway และ Apigee Edge ให้ทำดังต่อไปนี้ ดังต่อไปนี้:
- ตั้งค่าตัวแปรสภาพแวดล้อม
HTTP_PROXY
,HTTPS_PROXY
และNO_PROXY
เหล่านี้ ตัวแปรจะควบคุมโฮสต์ของพร็อกซี HTTP แต่ละรายการที่คุณต้องการใช้เพื่อสื่อสารกับ Apigee Edge หรือโฮสต์ที่ไม่ควรจัดการการสื่อสารกับ Apigee Edge เช่นexport HTTP_PROXY='http://localhost:3786' export HTTPS_PROXY='https://localhost:3786' export NO_PROXY='localhost,localhost:8080'
โปรดทราบว่า
NO_PROXY
อาจเป็นรายการโดเมนที่คั่นด้วยเครื่องหมายจุลภาคซึ่ง Edge Microgateway ไม่ควรทำหน้าที่เป็นพร็อกซีดูข้อมูลเพิ่มเติมเกี่ยวกับตัวแปรเหล่านี้ได้ที่ https://www.npmjs.com/package/request#controlling-proxy-behaviour-using-environment-variables
- รีสตาร์ท Edge Microgateway
ใช้พร็อกซี HTTP สำหรับการสื่อสารเป้าหมาย
เพิ่มในเวอร์ชัน 3.1.2
หากต้องการใช้พร็อกซี HTTP เพื่อสื่อสารระหว่าง Edge Microgateway และเป้าหมายแบ็กเอนด์ ให้ทำดังนี้
- เพิ่มการกำหนดค่าต่อไปนี้ในไฟล์การกำหนดค่า Microgateway
edgemicro: proxy: tunnel: true | false url: proxy_url bypass: target_host # target hosts to bypass the proxy. enabled: true | false
สถานที่:
- อุโมงค์: (ไม่บังคับ) เมื่อเป็นจริง Edge Microgateway จะใช้เมธอด HTTP CONNECT เพื่ออุโมงค์ข้อมูล HTTP
คำขอผ่านการเชื่อมต่อ TCP เพียงครั้งเดียว (เช่นเดียวกับในกรณีที่ตัวแปรสภาพแวดล้อม
ตามที่ระบุไว้ด้านล่าง
สำหรับการกำหนดค่าพร็อกซีนั้นจะมีการเปิดใช้ TLS) ค่าเริ่มต้น:
false
- url: URL ของพร็อกซี HTTP
- บายพาส: (ไม่บังคับ) ระบุ URL ของโฮสต์เป้าหมายที่คั่นด้วยคอมมาอย่างน้อย 1 รายการ ควรข้ามพร็อกซี HTTP หากไม่ได้ตั้งค่าพร็อพเพอร์ตี้นี้ ให้ใช้ NO_PROXY ตัวแปรสภาพแวดล้อมเพื่อระบุ URL เป้าหมายที่จะข้าม
- enabled: หากตั้งค่า true และ
proxy.url
ไว้ ให้ใช้ค่าproxy.url
สำหรับพร็อกซี HTTP หากตั้งค่าเป็น "จริง" และไม่ได้ตั้งค่าproxy.url
ให้ใช้พร็อกซีที่ระบุในพร็อกซี HTTP ตัวแปรสภาพแวดล้อมHTTP_PROXY
และHTTPS_PROXY
ตามที่อธิบายไว้ใน ใช้พร็อกซี HTTP เพื่อสื่อสารกับ Apigee Edge
เช่น
edgemicro: proxy: tunnel: true url: 'http://localhost:3786' bypass: 'localhost','localhost:8080' # target hosts to bypass the proxy. enabled: true
- อุโมงค์: (ไม่บังคับ) เมื่อเป็นจริง Edge Microgateway จะใช้เมธอด HTTP CONNECT เพื่ออุโมงค์ข้อมูล HTTP
คำขอผ่านการเชื่อมต่อ TCP เพียงครั้งเดียว (เช่นเดียวกับในกรณีที่ตัวแปรสภาพแวดล้อม
ตามที่ระบุไว้ด้านล่าง
สำหรับการกำหนดค่าพร็อกซีนั้นจะมีการเปิดใช้ TLS) ค่าเริ่มต้น:
- รีสตาร์ท Edge Microgateway
การใช้ไวลด์การ์ดใน Microgateway พร็อกซี
คุณสามารถใช้ "*" อย่างน้อย 1 รายการ ไวลด์การ์ดในเส้นทางฐานของ
พร็อกซี edgemicro_* (Microgateway-aware) เช่น เส้นทางฐานของ
/team/*/members ทำให้ลูกค้าสามารถโทรหา
https://[host]/team/blue/members และ
https://[host]/team/green/members โดยที่คุณไม่ต้องสร้างพร็อกซี API ใหม่
เพื่อสนับสนุนทีมใหม่ๆ โปรดทราบว่าระบบไม่รองรับ /**/
สำคัญ: Apigee ไม่รองรับการใช้ไวลด์การ์ด "*" ในฐานะ
องค์ประกอบแรกของเส้นทางฐาน ตัวอย่างเช่น การค้นหาด้วย /*/
ไม่รองรับฟีเจอร์นี้
การหมุนแป้น JWT
หลังจากสร้าง JWT ครั้งแรกแล้ว คุณอาจต้องเปลี่ยน คู่คีย์สาธารณะ/ส่วนตัวที่เก็บไว้ใน KVM ที่เข้ารหัส Edge ขั้นตอนการสร้างคีย์ใหม่ เรียกว่าการหมุนเวียนคีย์
Edge Microgateway ใช้ JWT อย่างไร
JSON Web Token (JWT) เป็นมาตรฐานโทเค็นที่อธิบายไว้ใน RFC7519 JWT มีวิธีเซ็นชุดการอ้างสิทธิ์ ซึ่งผู้รับของ JWT สามารถยืนยันความน่าเชื่อถือได้อย่างไร
Edge Microgateway ใช้ JWT เป็นโทเค็นสำหรับผู้ถือสำหรับการรักษาความปลอดภัย OAuth เมื่อคุณสร้าง โทเค็น OAuth สำหรับ Edge Microgateway คุณจะได้รับ JWT คืน จากนั้น คุณสามารถใช้ JWT ใน ส่วนหัวการให้สิทธิ์ของการเรียก API เช่น
curl -i http://localhost:8000/hello -H "Authorization: Bearer eyJhbGciOiJ..dXDefZEA"
การสร้าง JWT ใหม่
คุณสร้าง JWT สำหรับ Edge Microgateway ได้โดยใช้คำสั่ง edgemicro token
หรือ
API เช่น
edgemicro token get -o docs -e test -i G0IAeU864EtBo99NvUbn6Z4CBwVcS2 -s uzHTbwNWvoSmOy
คำสั่งนี้จะขอให้ Apigee Edge สร้าง JWT ที่จะใช้เพื่อยืนยัน API ได้
พารามิเตอร์ -i
และ -s
คือรหัสผู้ใช้และค่าข้อมูลลับจากแอปนักพัฒนาซอฟต์แวร์
ในองค์กร Apigee Edge ของคุณ
หรือจะสร้าง JWT โดยใช้ Management API ก็ได้โดยทำดังนี้
curl -i -X POST "http://$ORG-$ENV.apigee.net/edgemicro-auth/token" \ -H "Content-Type: application/json" \ -d '{ "$CLIENT_ID": "your consumer key", "$CLIENT_SECRET": "your consumer secret", "grant_type": "client_credentials" }'
สถานที่:
- $ORG คือชื่อองค์กร Edge ของคุณ (คุณต้องเป็นผู้ดูแลระบบขององค์กร)
- $ENV คือสภาพแวดล้อมในองค์กร (เช่น "test" หรือ "prod")
- $CLIENT_ID คือรหัสผู้บริโภคในแอปนักพัฒนาซอฟต์แวร์ที่คุณสร้างขึ้นก่อนหน้านี้
- $CLIENT_SECRET คือข้อมูลลับของผู้บริโภคในแอปนักพัฒนาซอฟต์แวร์ที่คุณสร้างขึ้น ก่อนหน้านี้
การหมุนเวียนคีย์คืออะไร
หลังจากสร้าง JWT ครั้งแรกแล้ว คุณอาจต้องเปลี่ยน คู่คีย์สาธารณะ/ส่วนตัวที่เก็บไว้ใน KVM ที่เข้ารหัส Edge ขั้นตอนการสร้างคีย์ใหม่ เรียกว่าการหมุนเวียนคีย์ เมื่อหมุนเวียนคีย์ ระบบจะสร้างคู่คีย์ส่วนตัว/คีย์สาธารณะใหม่และ ที่จัดเก็บใน "ไมโครเกตเวย์" KVM ในองค์กร/สภาพแวดล้อม Apigee Edge ของคุณ นอกจากนี้ คีย์สาธารณะเดิมจะยังคงอยู่พร้อมค่ารหัสคีย์เดิม
Edge จะใช้ข้อมูลที่เก็บไว้ใน KVM ที่เข้ารหัสเพื่อสร้าง JWT ต
มีการสร้างและป้อนข้อมูล KVM ที่ชื่อ microgateway
ด้วยคีย์เมื่อคุณตั้งค่า (กําหนดค่า) ในตอนแรก
Edge Microgateway คีย์ใน KVM ใช้เพื่อลงชื่อและเข้ารหัส JWT
คีย์ KVM ประกอบด้วย
-
private_key - คีย์ส่วนตัว RSA ล่าสุด (ที่สร้างล่าสุด) ที่ใช้เพื่อลงนาม JWT
-
public_key - ใบรับรองล่าสุด (ที่สร้างล่าสุด) ที่ใช้เพื่อยืนยัน JWT ลงชื่อด้วย private_key
-
private_key_kid - รหัสคีย์ส่วนตัวล่าสุด (ที่สร้างล่าสุด) รหัสคีย์นี้ เชื่อมโยงกับค่า private_key และใช้เพื่อรองรับการหมุนเวียนคีย์
-
public_key1_kid - รหัสคีย์สาธารณะล่าสุด (ที่สร้างล่าสุด) คีย์นี้ ที่เชื่อมโยงกับค่า public_key1 และใช้เพื่อรองรับการหมุนเวียนคีย์ ค่านี้ เหมือนกับคีย์ส่วนตัวย่อย
-
public_key1 - คีย์สาธารณะล่าสุด (ที่สร้างล่าสุด)
เมื่อคุณดำเนินการหมุนเวียนคีย์ ระบบจะแทนที่ค่าคีย์ที่มีอยู่ในแผนที่และ ระบบจะเพิ่มคีย์เพื่อเก็บรักษาคีย์สาธารณะเดิม เช่น
-
public_key2_kid - รหัสคีย์สาธารณะเดิม คีย์นี้เชื่อมโยงกับ สาธารณะ_คีย์2 และใช้เพื่อรองรับการหมุนเวียนคีย์
-
public_key2 - คีย์สาธารณะเก่า
JWT ที่แสดงเพื่อการยืนยันจะได้รับการยืนยันโดยใช้คีย์สาธารณะใหม่ ถ้า การยืนยันไม่สำเร็จ ระบบจะใช้คีย์สาธารณะเดิมจนกว่าจะหมดอายุ (หลังจาก 30 นาที) ใน ด้วยวิธีนี้ คุณสามารถ "หมุน" โดยไม่รบกวนการรับส่งข้อมูล API ทันที
วิธีการหมุนเวียนคีย์
ส่วนนี้จะอธิบายวิธีการหมุนเวียนคีย์
หากคุณกำหนดค่าอินสแตนซ์ Edge Microgateway ก่อนเวอร์ชัน 2.5.2
หากคุณกำหนดค่าอินสแตนซ์ Edge Microgateway ก่อนเวอร์ชัน 2.5.2 คุณจะต้องเรียกใช้ คำสั่ง 2 ข้อต่อไปนี้เพื่ออัปเกรด KVM และนโยบายการตรวจสอบสิทธิ์
upgradekvm -o $ORG -e $ENV -u $USERNAME
สำหรับข้อมูลเพิ่มเติมเกี่ยวกับคำสั่งนี้ โปรดดู การอัปเกรด KVM
คำสั่งถัดไปจะอัปเกรดพร็อกซี edgemicro-oauth ที่ใช้งาน องค์กร Apigee เลยเมื่อคุณกำหนดค่า Edge Microgateway แล้ว พร็อกซีนี้ให้บริการที่จำเป็นสำหรับ สร้างโทเค็น
upgradeauth -o $ORG -e $ENV -u $USERNAME
สำหรับข้อมูลเพิ่มเติมเกี่ยวกับคำสั่งนี้ โปรดดู การอัปเกรด พร็อกซี edgemicro-auth
การหมุนแป้น
เพิ่มบรรทัดต่อไปนี้ลงในไฟล์ ~/.edgemicro/org-env-config.yaml
โดยที่
ระบุองค์กรและสภาพแวดล้อมเดียวกับที่คุณกำหนดค่าไมโครเกตเวย์ให้ใช้
jwk_public_keys: 'https://org-env.apigee.net/edgemicro-auth/jwkPublicKeys'
เรียกใช้คำสั่งการหมุนเวียนคีย์เพื่อหมุนเวียนคีย์ (สำหรับข้อมูลเพิ่มเติมเกี่ยวกับคำสั่งนี้ โปรดดู คีย์ที่หมุนเวียน)
edgemicro rotatekey -o $ORG -e $ENV -u $USERNAME -k $KID_VALUE
เช่น
edgemicro rotatekey -o jdoe -e test -u jdoe@google.com -k 2 current nodejs version is v12.5.0 current edgemicro version is 3.1.0 password: Checking if private key exists in the KVM... Checking for certificate... Found Certificate Generating New key/cert pair... Extract new public key Key Rotation successfully completed!
พารามิเตอร์ -k
ระบุรหัสคีย์ (kid) รหัสนี้ใช้เพื่อจับคู่คีย์ที่เฉพาะเจาะจง
Edge Microgateway ใช้ค่านี้เพื่อเลือกชุดคีย์ระหว่างการหมุนเวียนคีย์ สำหรับข้อมูลเพิ่มเติม
โปรดดูส่วนที่ 4.5 ของ
ข้อกำหนดเว็บคีย์ JSON
หลังจากการหมุนเวียนคีย์ Edge จะส่งกลับคีย์หลายรายการไปยัง Edge Microgateway หมายเหตุใน ในตัวอย่างต่อไปนี้ แต่ละคีย์จะมี "kid" ที่ไม่ซ้ำกัน (รหัสคีย์) จากนั้นไมโครเกตเวย์จะใช้ เพื่อตรวจสอบโทเค็นการให้สิทธิ์ ถ้าการตรวจสอบโทเค็นล้มเหลว Microgateway จะค้นหา ให้ดูว่ามีคีย์ที่เก่ากว่าในชุดคีย์หรือไม่ แล้วลองค้นหาคีย์ดังกล่าว รูปแบบของ คีย์ที่แสดงผลคือ JSON Web Key (JWK) คุณสามารถอ่านเกี่ยวกับรูปแบบนี้ได้ใน RFC 7517
{ "keys": [ { "kty": "RSA", "n": "nSl7R_0wKLiWi6cO3n8aOJwYGBtinq723Jgg8i7KKWTSTYoszOjgGsJf_MX4JEW1YCScwpE5o4o8ccQN09iHVTlIhk8CNiMZNPipClmRVjaL_8IWvMQp1iN66qy4ldWXzXnHfivUZZogCkBNqCz7VSC5rw2Jf57pdViULVvVDGwTgf46sYveW_6h8CAGaD0KLd3vZffxIkoJubh0yMy0mQP3aDOeIGf_akeZeZ6GzF7ltbKGd954iNTiKmdm8IKhz6Y3gLpC9iwQ-kex_j0CnO_daHl1coYxUSCIdv4ziWIeM3dmjQ5_2dEvUDIGG6_Az9hTpNgPE5J1tvrOHAmunQ", "e": "AQAB", "kid": "2" }, { "kty": "RSA", "n": "8BKwzx34BMUcHwTuQtmp8LFRCMxbkKg_zsWD6eOMIUTAsORexTGJsTy7z-4aH0wJ3fT-3luAAUPLBQwGcuHo0P1JnbtPrpuYjaJKSZOeIMOnlryJCspmv-1xG4qAqQ9XaZ9C97oecuj7MMoNwuaZno5MvsY-oi5B_gqED3vIHUjaWCErd4reONyFSWn047dvpE6mwRhZbcOTkAHT8ZyKkHISzopkFg8CD-Mij12unxA3ldcTV7yaviXgxd3eFSD1_Z4L7ZRsDUukCJkJ-8qY2-GWjewzoxl-mAW9D1tLK6qAdc89yFem3JHRW6L1le3YK37-bs6b2a_AqJKsKm5bWw", "e": "AQAB", "kid": "1" } ] }
กำลังกรองพร็อกซีที่ดาวน์โหลด
โดยค่าเริ่มต้น Edge Microgateway จะดาวน์โหลดพร็อกซีทั้งหมดในองค์กร Edge ของคุณ ที่ขึ้นต้นด้วยคำนำหน้าการตั้งชื่อ "edgemicro_" คุณสามารถเปลี่ยนค่าเริ่มต้นนี้เพื่อดาวน์โหลดพร็อกซีได้ ที่ชื่อตรงกับรูปแบบ
- เปิดไฟล์กำหนดค่า Edge Micro:
~/.edgemicro/org-env-config.yaml
- เพิ่มองค์ประกอบProxyPattern ในส่วน edge_config ตัวอย่างเช่น รูปแบบต่อไปนี้จะ
ดาวน์โหลดพร็อกซี เช่น edgemicro_foo, edgemicro_fast และ edgemicro_first
edge_config: … proxyPattern: edgemicro_f*
การระบุผลิตภัณฑ์ที่ไม่มีพร็อกซี API
ใน Apigee Edge คุณจะสร้างผลิตภัณฑ์ API ที่ไม่มีพร็อกซี API ได้ การกำหนดค่าผลิตภัณฑ์นี้ช่วยให้คีย์ API ที่เชื่อมโยงกับผลิตภัณฑ์นั้นทำงานกับ พร็อกซีที่ทำให้ใช้งานได้ในองค์กร Edge Microgateway รองรับผลิตภัณฑ์นี้ในเวอร์ชัน 2.5.4 การกำหนดค่า
การแก้ไขข้อบกพร่องและการแก้ปัญหา
การเชื่อมต่อกับโปรแกรมแก้ไขข้อบกพร่อง
คุณเรียกใช้ Edge Microgateway ด้วยเครื่องมือแก้ไขข้อบกพร่อง เช่น node-inspector ได้ วิธีนี้เป็นประโยชน์สำหรับ การแก้ปัญหาและการดีบักปลั๊กอินที่กำหนดเอง
- รีสตาร์ท Edge Microgateway ในโหมดแก้ไขข้อบกพร่อง โดยเพิ่ม
DEBUG=*
ลงในส่วน จุดเริ่มต้นของคำสั่งstart
DEBUG=* edgemicro start -o $ORG -e $ENV -k $KEY -s $SECRET
หากต้องการกำหนดเส้นทางเอาต์พุตการแก้ไขข้อบกพร่องไปยังไฟล์ ให้ใช้คําสั่งนี้
export DEBUG=* nohup edgemicro start \ -o $ORG -e $ENV -k $KEY -s $SECRET 2>&1 | tee /tmp/file.log
- เริ่มโปรแกรมแก้ไขข้อบกพร่องและตั้งค่าให้รอฟังหมายเลขพอร์ตสำหรับขั้นตอนการแก้ไขข้อบกพร่อง
- ตอนนี้คุณสามารถดูโค้ด Edge Microgateway ตั้งค่าเบรกพอยท์ นิพจน์การดู เป็นต้น
คุณระบุแฟล็ก Node.js มาตรฐานที่เกี่ยวข้องกับโหมดแก้ไขข้อบกพร่องได้ ตัวอย่างเช่น
--nolazy
ช่วยในการแก้ไขข้อบกพร่องของโค้ดแบบอะซิงโครนัส
กำลังตรวจสอบไฟล์บันทึก
หากพบปัญหา อย่าลืมตรวจสอบไฟล์บันทึกเพื่อดูรายละเอียดและข้อผิดพลาดของการดำเนินการ โปรดดูรายละเอียดที่หัวข้อการจัดการไฟล์บันทึก
การใช้การรักษาความปลอดภัยของคีย์ API
คีย์ API มีกลไกง่ายๆ ในการตรวจสอบสิทธิ์ไคลเอ็นต์ที่ส่งคำขอไปยัง Edge ทางไมโครเกตเวย์ คุณสามารถรับคีย์ API ได้โดยการคัดลอกค่าคีย์ผู้บริโภค (เรียกอีกอย่างว่ารหัสไคลเอ็นต์) จากผลิตภัณฑ์ Apigee Edge ที่มีพร็อกซีการตรวจสอบสิทธิ์ Edge Microgateway
การแคชคีย์
ระบบจะแลกเปลี่ยนคีย์ API กับโทเค็นของผู้ถือซึ่งมีการแคชไว้ คุณสามารถปิดใช้การแคชได้โดยการตั้งค่า
ส่วนหัว Cache-Control: no-cache
ในคำขอขาเข้าไปยัง Edge
ทางไมโครเกตเวย์
การใช้คีย์ API
คุณส่งคีย์ API ในคำขอ API เป็นพารามิเตอร์การค้นหาหรือในส่วนหัวก็ได้ โดยค่าเริ่มต้น
ส่วนหัวและชื่อพารามิเตอร์การค้นหาเป็น x-api-key
ทั้งคู่
ตัวอย่างพารามิเตอร์การค้นหา
curl http://localhost:8000/foobar?x-api-key=JG616Gjz7xs4t0dvpvVsGdI49G34xGsz
ตัวอย่างส่วนหัว:
curl http://localhost:8000/foobar -H "x-api-key:JG616Gjz7xs4t0dvpvVsGdI49G34xGsz"
การกำหนดค่าชื่อคีย์ API
โดยค่าเริ่มต้น x-api-key
คือชื่อที่ใช้ทั้งส่วนหัวของคีย์ API และพารามิเตอร์การค้นหา
คุณสามารถเปลี่ยนค่าเริ่มต้นนี้ในไฟล์การกำหนดค่าได้ตามที่อธิบายไว้ในการเปลี่ยนแปลงการกำหนดค่า เช่น หากต้องการเปลี่ยน
ชื่อเป็น apiKey:
oauth: allowNoAuthorization: false allowInvalidAuthorization: false api-key-header: apiKey
ในตัวอย่างนี้ ทั้งพารามิเตอร์การค้นหาและชื่อส่วนหัวเปลี่ยนเป็น apiKey
ชื่อ x-api-key
จะใช้ไม่ได้อีกต่อไปไม่ว่าในกรณีใด ดูเพิ่มเติม
เปลี่ยนแปลงการกำหนดค่า
เช่น
curl http://localhost:8000/foobar -H "apiKey:JG616Gjz7xs4t0dvpvVsGdI49G34xGsz"
ดูข้อมูลเพิ่มเติมเกี่ยวกับการใช้คีย์ API กับคำขอพร็อกซีได้ที่ Secure Edge Microgateway
เปิดใช้โค้ดตอบกลับอัปสตรีม
โดยค่าเริ่มต้น ปลั๊กอิน oauth
จะแสดงผลรหัสสถานะข้อผิดพลาด 4xx เท่านั้นหาก
การตอบกลับไม่ใช่สถานะ 200 คุณสามารถเปลี่ยนแปลงการทำงานนี้เพื่อให้
แสดงรหัส 4xx หรือ 5xx ที่ถูกต้อง ทั้งนี้ขึ้นอยู่กับข้อผิดพลาด
หากต้องการเปิดใช้ฟีเจอร์นี้ ให้เพิ่ม oauth.useUpstreamResponse: true
ลงในการกำหนดค่า Edge Microgateway ของคุณ เช่น
oauth: allowNoAuthorization: false allowInvalidAuthorization: false gracePeriod: 10 useUpstreamResponse: true
การใช้การรักษาความปลอดภัยของโทเค็น OAuth2
ส่วนนี้จะอธิบายวิธีรับโทเค็นเพื่อการเข้าถึง OAuth2 และรีเฟรชโทเค็น โทเค็นเพื่อการเข้าถึงมีไว้เพื่อสร้าง ผ่าน Microgateway ระบบจะใช้โทเค็นการรีเฟรชเพื่อรับโทเค็นเพื่อการเข้าถึงใหม่
วิธีรับโทเค็นเพื่อการเข้าถึง
ส่วนนี้จะอธิบายวิธีใช้พร็อกซี edgemicro-auth
เพื่อรับโทเค็นเพื่อการเข้าถึง
คุณยังรับโทเค็นเพื่อการเข้าถึงได้โดยใช้คำสั่ง edgemicro token
CLI
โปรดดูรายละเอียด CLI ในการจัดการโทเค็น
API 1: ส่งข้อมูลเข้าสู่ระบบเป็นพารามิเตอร์เนื้อหา
แทนที่ชื่อองค์กรและสภาพแวดล้อมใน URL และ แทนที่ค่ารหัสผู้บริโภคและข้อมูลลับของผู้บริโภคที่ได้รับจากแอปของนักพัฒนาซอฟต์แวร์ใน Apigee Edge สำหรับพารามิเตอร์เนื้อหา client_id และ client_secret ดังนี้
curl -i -X POST "http://<org>-<test>.apigee.net/edgemicro-auth/token" \ -d '{"grant_type": "client_credentials", "client_id": "your_client_id", \ "client_secret": "your_client_secret"}' -H "Content-Type: application/json"
API 2: ส่งข้อมูลเข้าสู่ระบบในส่วนหัวการตรวจสอบสิทธิ์พื้นฐาน
ส่งข้อมูลรับรองไคลเอ็นต์เป็นส่วนหัวการตรวจสอบสิทธิ์พื้นฐานและ
grant_type
เป็นพารามิเตอร์แบบฟอร์ม แบบฟอร์มคำสั่งนี้ยังมีการอธิบายใน
RFC 6749: กรอบการให้สิทธิ์ OAuth 2.0
http://<org>-<test>.apigee.net/edgemicro-auth/token -v -u your_client_id:your_client_secret \ -d 'grant_type=client_credentials' -H "Content-Type: application/x-www-form-urlencoded"
ตัวอย่างเอาต์พุต
API แสดงการตอบกลับ JSON โปรดทราบว่าไม่มีความแตกต่างระหว่างtoken
และ
พร็อพเพอร์ตี้ access_token
รายการ คุณจะใช้วิธีใดก็ได้
{ "token": "eyJraWQiOiIxIiwidHlwIjoi", "access_token": "eyJraWQiOiIxIiwid", "token_type": "bearer", "expires_in": "108000" }
วิธีรับโทเค็นการรีเฟรช
หากต้องการรับโทเค็นการรีเฟรช ให้เรียก API ไปยังปลายทาง /token
ของ
พร็อกซี edgemicro-auth
คุณต้องเรียก API นี้ด้วย password
ประเภทการให้สิทธิ์ ขั้นตอนต่างๆ ต่อไปนี้จะอธิบายกระบวนการดังกล่าว
- รับสิทธิ์เข้าถึงและรีเฟรชโทเค็นด้วย
/token
API โปรดทราบว่า ประเภทการให้สิทธิ์คือpassword
curl -X POST \ https://your_organization-your_environment.apigee.net/edgemicro-auth/token \ -H 'Content-Type: application/json' \ -d '{ "client_id":"mpK6l1Bx9oE5zLdifoDbF931TDnDtLq", "client_secret":"bUdDcFgv3nXffnU", "grant_type":"password", "username":"mpK6lBx9RoE5LiffoDbpF931TDnDtLq", "password":"bUdD2FvnMsXffnU" }'
API จะส่งคืนโทเค็นเพื่อการเข้าถึงและโทเค็นการรีเฟรช คำตอบมีลักษณะคล้ายกับ ดังนี้
{ "token": "your-access-token", "access_token": "your-access-token", "token_type": "bearer", "expires_in": "108000", "refresh_token": "your-refresh-token", "refresh_token_expires_in": "431999", "refresh_token_issued_at": "1562087304302", "refresh_token_status": "approved" }
- ตอนนี้คุณสามารถใช้โทเค็นการรีเฟรชเพื่อรับโทเค็นเพื่อการเข้าถึงใหม่ด้วยการเรียกใช้ได้แล้ว
ปลายทาง
/refresh
ของ API เดียวกัน เช่นcurl -X POST \ https://willwitman-test.apigee.net/edgemicro-auth/refresh \ -H 'Content-Type: application/json' \ -d '{ "client_id":"mpK6l1Bx9RoE5zLifoDbpF931TDnDtLq", "client_secret":"bUdDc2Fv3nMXffnU", "grant_type":"refresh_token", "refresh_token":"your-refresh-token" }'
API แสดงโทเค็นเพื่อการเข้าถึงใหม่ คำตอบมีลักษณะคล้ายกับด้านล่างนี้
{ "token": "your-new-access-token" }
ตรวจสอบตลอดไป
Forever เป็นเครื่องมือ Node.js ที่ รีสตาร์ทแอป Node.js โดยอัตโนมัติในกรณีที่กระบวนการหยุดทำงานหรือเกิดข้อผิดพลาด ขอบ Microgateway มีไฟล์ forever.json ที่คุณสามารถกำหนดค่าเพื่อควบคุมจำนวน และช่วงเวลาที่ควรรีสตาร์ท Edge Microgateway ไฟล์นี้กำหนดค่า บริการตลอดกาลที่เรียกว่า forever-monitor ซึ่งจัดการ Forever แบบเป็นโปรแกรม
คุณดูไฟล์ forever.json ได้ในการติดตั้งรูทของ Edge Microgateway ไดเรกทอรี โปรดดู ติดตั้ง Edge Microgateway ไว้ที่ใด โปรดดูรายละเอียดตัวเลือกการกำหนดค่าได้ที่ ตรวจสอบเอกสารตลอดไป
คำสั่ง edgemicro forever
มีแฟล็กที่ช่วยให้คุณระบุตำแหน่งของ
ไฟล์ forever.json
(แฟล็ก -f
) และเริ่ม/หยุดการตรวจสอบถาวร
(การตั้งค่าสถานะ -a
) เช่น
edgemicro forever -f ~/mydir/forever.json -a start
สำหรับข้อมูลเพิ่มเติม โปรดดูการตรวจสอบเสมอในข้อมูลอ้างอิง CLI
การระบุปลายทางของไฟล์การกำหนดค่า
หากคุณเรียกใช้อินสแตนซ์ Edge Microgateway หลายรายการ คุณอาจต้องการจัดการการกำหนดค่าของอินสแตนซ์ จากสถานที่เดียวได้ ซึ่งทำได้โดยการระบุปลายทาง HTTP ที่ Edge Micro ทำได้ ดาวน์โหลดไฟล์การกำหนดค่า คุณจะระบุปลายทางนี้ได้เมื่อเริ่มต้น Edge Micro โดยใช้ แฟล็ก -u
เช่น
edgemicro start -o jdoe -e test -u http://mylocalserver/mgconfig -k public_key -s secret_key
โดยที่ปลายทาง mgconfig จะแสดงเนื้อหาของไฟล์การกำหนดค่า ไฟล์นี้
ซึ่งโดยค่าเริ่มต้นจะอยู่ใน ~/.edgemicro
และมีรูปแบบการตั้งชื่อดังนี้
org-env-config.yaml
ปิดใช้การบัฟเฟอร์ข้อมูลการเชื่อมต่อ TCP
คุณสามารถใช้แอตทริบิวต์การกำหนดค่า nodelay
เพื่อปิดใช้การบัฟเฟอร์ข้อมูลสำหรับ
Edge Microgateway จะใช้การเชื่อมต่อ TCP
ตามค่าเริ่มต้น การเชื่อมต่อ TCP จะใช้ปุ่ม Nagle
เพื่อบัฟเฟอร์ข้อมูลก่อนส่งออกไป กำลังตั้งค่า nodelay
เป็น true
ปิดใช้ลักษณะการทำงานนี้ (ข้อมูลจะเริ่มทํางานทันทีทุกครั้งที่ใช้ข้อมูล
จะเรียก socket.write()
) โปรดดูเพิ่มเติมที่หน้า Node.js
เพื่อดูรายละเอียดเพิ่มเติม
หากต้องการเปิดใช้ nodelay
ให้แก้ไขไฟล์การกำหนดค่า Edge Micro ดังนี้
edgemicro: nodelay: true port: 8000 max_connections: 1000 config_change_poll_interval: 600 logging: level: error dir: /var/tmp stats_log_interval: 60 rotate_interval: 24
การเรียกใช้ Edge Microgateway ในโหมดสแตนด์อโลน
คุณสามารถเรียกใช้ Edge Microgateway ตัดการเชื่อมต่อโดยสิ้นเชิงกับ การขึ้นต่อกันของ Apigee Edge สถานการณ์นี้ซึ่งเรียกว่าโหมดสแตนด์อโลนให้คุณเรียกใช้และทดสอบ Edge Microgateway ได้ โดยไม่ต้องเชื่อมต่ออินเทอร์เน็ต
ในโหมดสแตนด์อโลน ฟีเจอร์ต่อไปนี้จะไม่ทำงานเนื่องจากต้องมีการเชื่อมต่อ กับ Apigee Edge:
- OAuth และคีย์ API
- โควต้า
- Analytics
ในทางกลับกัน ปลั๊กอินที่กำหนดเองและการจับกุมแบบทันทีจะทำงานตามปกติเนื่องจากไม่ทำงาน
ต้องเชื่อมต่อกับ Apigee Edge นอกจากนี้ ปลั๊กอินใหม่ชื่อ extauth
ยัง
ให้สิทธิ์การเรียก API ไปยังไมโครเกตเวย์ด้วย JWT ขณะอยู่ในโหมดสแตนด์อโลน
การกําหนดค่าและเริ่มต้นเกตเวย์
วิธีเรียกใช้ Edge Microgateway ในโหมดสแตนด์อโลน
- สร้างไฟล์การกำหนดค่าที่ชื่อว่า
$HOME/.edgemicro/$ORG
-
$ENV-config.yamlเช่น
vi $HOME/.edgemicro/foo-bar-config.yaml
- วางโค้ดต่อไปนี้ลงในไฟล์:
edgemicro: port: 8000 max_connections: 1000 config_change_poll_interval: 600 logging: level: error dir: /var/tmp stats_log_interval: 60 rotate_interval: 24 plugins: sequence: - extauth - spikearrest headers: x-forwarded-for: true x-forwarded-host: true x-request-id: true x-response-time: true via: true extauth: publickey_url: https://www.googleapis.com/oauth2/v1/certs spikearrest: timeUnit: second allow: 10 buffersize: 0
- ส่งออกตัวแปรสภาพแวดล้อมต่อไปนี้ด้วยค่า "1"
export EDGEMICRO_LOCAL=1
- เรียกใช้คำสั่ง
start
ต่อไปนี้ซึ่งคุณระบุค่าเพื่อสร้างอินสแตนซ์ พร็อกซีในเครื่อง:edgemicro start -o $ORG -e $ENV -a $LOCAL_PROXY_NAME \ -v $LOCAL_PROXY_VERSION -t $TARGET_URL -b $BASE_PATH
สถานที่:
- $ORG คือ "org" ที่คุณใช้ในชื่อไฟล์การกำหนดค่า
- $ENV เป็น "env" ชื่อที่คุณใช้ในไฟล์การกำหนดค่า ชื่อ
- $LOCAL_PROXY_NAME คือชื่อของพร็อกซีภายในที่จะสร้างขึ้น คุณสามารถใช้ ชื่อใดก็ได้ที่คุณต้องการ
- $LOCAL_PROXY_VERSION คือหมายเลขเวอร์ชันสำหรับพร็อกซี
- $TARGET_URL คือ URL เป้าหมายของพร็อกซี (เป้าหมายคือ บริการที่พร็อกซีเรียกใช้)
- $BASE_PATH คือเส้นทางฐานของพร็อกซี ค่านี้ต้องเริ่มต้นด้วยแท็กไปข้างหน้า เครื่องหมายทับ สำหรับเส้นทางฐานราก ให้ระบุเพียงเครื่องหมายทับ ตัวอย่างเช่น "/"
เช่น
edgemicro start -o local -e test -a proxy1 -v 1 -t http://mocktarget.apigee.net -b /
- ทดสอบการกำหนดค่า
curl http://localhost:8000/echo { "error" : "missing_authorization" }
เนื่องจากปลั๊กอิน
extauth
อยู่ในไฟล์foo-bar-config.yaml
คุณ รับ "missing_Authorization" ปลั๊กอินนี้จะตรวจสอบ JWT ที่ต้องอยู่ในการให้สิทธิ์ ส่วนหัวของการเรียก API ในส่วนถัดไป คุณจะได้รับ JWT ที่จะอนุญาตการเรียก API ผ่านไปได้โดยไม่มีข้อผิดพลาด
ตัวอย่าง: การได้รับโทเค็นการให้สิทธิ์
ตัวอย่างต่อไปนี้แสดงวิธีรับ JWT จากปลายทาง Edge Microgateway JWT บน Apigee Edge (edgemicro-auth/jwkPublicKeys
)
ระบบจะทำให้ปลายทางนี้ใช้งานได้เมื่อคุณตั้งค่าและการกำหนดค่ามาตรฐานของ Edge Microgateway
หากต้องการรับ JWT จากปลายทาง Apigee คุณต้องตั้งค่า Edge Microgateway มาตรฐานก่อน และ
เชื่อมต่อกับอินเทอร์เน็ตได้ เราใช้ปลายทาง Apigee สำหรับวัตถุประสงค์ต่างๆ ในตัวอย่างนี้
เท่านั้นและไม่จำเป็น โดยคุณสามารถใช้ปลายทางของโทเค็น JWT อื่นได้หากต้องการ ในกรณีดังกล่าว คุณจะต้องขอรับ JWT โดยใช้
API ที่มีให้สำหรับปลายทางนั้น
ขั้นตอนต่อไปนี้อธิบายวิธีรับโทเค็นโดยใช้ปลายทาง edgemicro-auth/jwkPublicKeys
- คุณต้องปฏิบัติตามมาตรฐาน
การตั้งค่าและการกำหนดค่าของ Edge Microgateway เพื่อทำให้พร็อกซี
edgemicro-auth
ใช้งานได้ ต่อองค์กร/สภาพแวดล้อมใน Apigee Edge หากเคยทำขั้นตอนนี้แล้ว ก็ไม่จำเป็นต้องทำขั้นตอนนี้ซ้ำ - หากคุณทำให้ Edge Microgateway กับ Apigee Cloud ได้ คุณจะต้องเชื่อมต่อกับอินเทอร์เน็ตเพื่อรับ JWT จากอุปกรณ์ปลายทางนี้
-
หยุด Edge Microgateway:
edgemicro stop
- ในไฟล์การกำหนดค่าที่คุณสร้างไว้ก่อนหน้านี้ (
$HOME/.edgemicro
/org-env-config.yaml
) ชี้extauth:publickey_url
ไปยังปลายทางedgemicro-auth/jwkPublicKeys
ในองค์กร/สภาพแวดล้อม Apigee Edge ของคุณ เช่นextauth: publickey_url: 'https://your_org-your_env.apigee.net/edgemicro-auth/jwkPublicKeys'
-
รีสตาร์ท Edge Microgateway ดังที่ทำก่อนหน้านี้โดยใช้ชื่อ org/env ที่คุณใช้ในชื่อไฟล์การกำหนดค่า เช่น
edgemicro start -o foo -e bar -a proxy1 -v 1 -t http://mocktarget.apigee.net -b /
-
รับโทเค็น JWT จากปลายทางการให้สิทธิ์ เนื่องจากคุณกำลังใช้
edgemicro-auth/jwkPublicKeys
คุณจะใช้คำสั่ง CLI ต่อไปนี้ได้
คุณสร้าง JWT สำหรับ Edge Microgateway ได้โดยใช้คำสั่ง edgemicro token
หรือ
API เช่น
edgemicro token get -o your_org -e your_env \ -i G0IAeU864EtBo99NvUbn6Z4CBwVcS2 -s uzHTbwNWvoSmOy
สถานที่:
- your_org คือชื่อองค์กร Apigee ที่คุณเคยใช้อยู่ Edge Microgateway ที่กำหนดค่าแล้ว
- your_env เป็นสภาพแวดล้อมในองค์กร
- ตัวเลือก
i
จะระบุคีย์ผู้ใช้จากแอปของนักพัฒนาซอฟต์แวร์ที่มีผลิตภัณฑ์ ที่มีพร็อกซีedgemicro-auth
- ตัวเลือก
s
ระบุข้อมูลลับของผู้บริโภคจากแอปของนักพัฒนาซอฟต์แวร์ที่มี ผลิตภัณฑ์ที่มีพร็อกซีedgemicro-auth
คำสั่งนี้จะขอให้ Apigee Edge สร้าง JWT ที่จะใช้เพื่อยืนยัน API ได้
โปรดดูเพิ่มเติมที่สร้างโทเค็นทดสอบการกำหนดค่าแบบสแตนด์อโลน
หากต้องการทดสอบการกำหนดค่า ให้เรียก API โดยเพิ่มโทเค็นในส่วนหัวการให้สิทธิ์ดังนี้
curl http://localhost:8000/echo -H "Authorization: Bearer your_token
ตัวอย่าง
curl http://localhost:8000/echo -H "Authorization: Bearer eyJraWQiOiIxIiwidHlwIjo...iryF3kwcDWNv7OQ"
ตัวอย่างเอาต์พุต:
{ "headers":{ "user-agent":"curl/7.54.0", "accept":"*/*", "x-api-key":"DvUdLlFwG9AvGGpEgfnNGwtvaXIlUUvP", "client_received_start_timestamp":"1535134472699", "x-authorization-claims":"eyJhdDbiO...M1OTE5MTA1NDkifQ==", "target_sent_start_timestamp":"1535134472702", "x-request-id":"678e3080-a7ae-11e8-a70f-87ae30db3896.8cc81cb0-a7c9-11e8-a70f-87ae30db3896", "x-forwarded-proto":"http", "x-forwarded-host":"localhost:8000", "host":"mocktarget.apigee.net", "x-cloud-trace-context":"e2ac4fa0112c2d76237e5473714f1c85/1746478453618419513", "via":"1.1 localhost, 1.1 google", "x-forwarded-for":"::1, 216.98.205.223, 35.227.194.212", "connection":"Keep-Alive" }, "method":"GET", "url":"/", "body":"" }
การใช้โหมดพร็อกซีภายใน
ในโหมดพร็อกซีภายใน Edge Microgateway ไม่จำเป็นต้องมี พร็อกซี microgateway-aware เพื่อทำให้ใช้งานได้ใน Apigee Edge แต่คุณจะต้องกำหนดค่า "พร็อกซีภายใน" แทน โดยให้ ชื่อพร็อกซีในเครื่อง, เส้นทางพื้นฐาน และ URL เป้าหมายเมื่อคุณ เริ่มไมโครเกตเวย์ จากนั้นระบบจะส่งการเรียก API ไปยัง Microgateway ไปยังเป้าหมาย URL ของพร็อกซีในเครื่อง ในแง่มุมอื่นๆ ทั้งหมด โหมดพร็อกซีภายในจะทำงานเหมือนกับการเรียกใช้ Edge Microgateway ในโหมดปกติ การตรวจสอบสิทธิ์ทำงานในลักษณะเดียวกัน การจับกุมและการบังคับใช้โควต้า ปลั๊กอินที่กำหนดเอง และอื่นๆ
กรณีการใช้งานและตัวอย่าง
โหมดพร็อกซีในเครื่องมีประโยชน์เมื่อคุณต้องเชื่อมโยงพร็อกซีเดี่ยวกับ Edge Microgateway เท่านั้น อินสแตนซ์ ตัวอย่างเช่น คุณอาจแทรก Edge Microgateway ลงใน Kubernetes เป็นพร็อกซีไฟล์ช่วยเหลือ โดยที่ ไมโครเกตเวย์และบริการต่างก็ทำงานในพ็อดเดียว ส่วนทางไมโครเกตเวย์จะจัดการการรับส่งข้อมูลไปยัง และจากบริการร่วม ภาพต่อไปนี้แสดงสถาปัตยกรรมนี้ที่ Edge ไมโครเกตเวย์ทำหน้าที่เป็นพร็อกซีไฟล์ช่วยเหลือในคลัสเตอร์ Kubernetes อินสแตนซ์ Microgateway แต่ละรายการพูด ไปยังปลายทางเดียวในบริการที่ใช้ร่วมกันเท่านั้น:
ข้อดีของสถาปัตยกรรมรูปแบบนี้คือ Edge Microgateway ให้บริการ API การจัดการสำหรับบริการแต่ละรายการที่ทำให้ใช้งานได้กับสภาพแวดล้อมคอนเทนเนอร์ เช่น คลัสเตอร์ Kubernetes
การกำหนดค่าโหมดพร็อกซีภายใน
หากต้องการกำหนดค่า Edge Microgateway ให้ทำงานในโหมดพร็อกซีภายใน ให้ทำตามขั้นตอนต่อไปนี้
- เรียกใช้
edgemicro init
เพื่อตั้งค่าสภาพแวดล้อมการกำหนดค่าในเครื่อง เช่นเดียวกับการตั้งค่า Edge Microgateway ทั่วไป ดูเพิ่มเติม กำหนดค่า Edge Microgateway - เรียกใช้
edgemicro configure
แบบเดียวกับที่คุณจะทำในการตั้งค่า Edge Microgateway ทั่วไป เช่นedgemicro configure -o your_org -e your_env -u your_apigee_username
คำสั่งนี้จะใช้นโยบาย edgemicro-auth กับ Edge และแสดงผลคีย์ และข้อมูลลับที่คุณจำเป็นต้องใช้เพื่อเริ่ม Microgateway หากต้องการความช่วยเหลือ โปรดดู กำหนดค่า Edge Microgateway
- ใน Apigee Edge ให้สร้างผลิตภัณฑ์ API และด้วยการกำหนดค่าที่จำเป็นต่อไปนี้
ข้อกำหนด (คุณสามารถจัดการการกำหนดค่าอื่นๆ ทั้งหมดได้ตามต้องการ)
- คุณต้องเพิ่มพร็อกซี edgemicro-auth ลงในผลิตภัณฑ์ พร็อกซีนี้
มีการทำให้ใช้งานได้โดยอัตโนมัติเมื่อคุณเรียกใช้
edgemicro configure
- คุณต้องระบุเส้นทางทรัพยากร Apigee แนะนำให้เพิ่มเส้นทางนี้ไปยัง
ผลิตภัณฑ์:
/**
ดูข้อมูลเพิ่มเติมได้ที่การกำหนดค่าลักษณะการทำงานของเส้นทางทรัพยากร ดูข้อมูลเพิ่มเติมที่สร้าง API ทั้งหมดในเอกสารประกอบของ Edge
- คุณต้องเพิ่มพร็อกซี edgemicro-auth ลงในผลิตภัณฑ์ พร็อกซีนี้
มีการทำให้ใช้งานได้โดยอัตโนมัติเมื่อคุณเรียกใช้
ใน Apigee Edge ให้สร้างนักพัฒนาซอฟต์แวร์ หรือคุณจะใช้นักพัฒนาซอฟต์แวร์ที่มีอยู่ก็ได้หาก ความปรารถนา สำหรับความช่วยเหลือ โปรดดูการเพิ่มนักพัฒนาซอฟต์แวร์โดยใช้ UI การจัดการ Edge
- สร้างแอปนักพัฒนาซอฟต์แวร์ใน Apigee Edge คุณต้องเพิ่มผลิตภัณฑ์ API ที่คุณ ที่เพิ่งสร้างลงในแอปนี้ สำหรับความช่วยเหลือ โปรดดูการลงทะเบียนแอปใน Edge UI การจัดการ
- ในเครื่องที่ติดตั้ง Edge Microgateway ให้ส่งออกข้อมูลต่อไปนี้
ด้วยค่า "1"
export EDGEMICRO_LOCAL_PROXY=1
- เรียกใช้คำสั่ง
start
ต่อไปนี้edgemicro start -o your_org -e your_environment -k your_key -s your_secret \ -a local_proxy_name -v local_proxy_version -t target_url -b base_path
สถานที่:
- your_org คือองค์กร Apigee ของคุณ
- your_environment คือสภาพแวดล้อมในองค์กรของคุณ
- your_key คือคีย์ที่แสดงผลเมื่อคุณเรียกใช้
edgemicro configure
- your_secret คือข้อมูลลับที่แสดงขึ้นมาเมื่อคุณเรียกใช้
edgemicro configure
- local_proxy_name คือชื่อของพร็อกซีภายในที่จะสร้างขึ้น
- local_proxy_version คือหมายเลขเวอร์ชันสำหรับพร็อกซี
- target_url คือ URL สำหรับเป้าหมายของพร็อกซี (บริการที่พร็อกซีจะ การโทร)
- base_path คือเส้นทางฐานของพร็อกซี ค่านี้ต้องเริ่มต้นด้วยแท็กไปข้างหน้า เครื่องหมายทับ สำหรับเส้นทางฐานราก ให้ระบุเพียงเครื่องหมายทับ ตัวอย่างเช่น "/"
เช่น
edgemicro start -o your_org -e test -k 7eb6aae644cbc09035a...d2eae46a6c095f \ -s e16e7b1f5d5e24df...ec29d409a2df853163a -a proxy1 -v 1 \ -t http://mocktarget.apigee.net -b /echo
การทดสอบการกำหนดค่า
ทดสอบการกำหนดค่าพร็อกซีในเครื่องได้โดยเรียกใช้ปลายทางของพร็อกซี ตัวอย่างเช่น
ถ้าคุณระบุเส้นทางฐานของ /echo
คุณสามารถเรียกพร็อกซีได้ดังนี้:
curl http://localhost:8000/echo { "error" : "missing_authorization", "error_description" : "Missing Authorization header" }
การเรียก API เริ่มต้นนี้ทำให้เกิดข้อผิดพลาดเนื่องจากคุณไม่ได้ระบุคีย์ API ที่ถูกต้อง คุณจะพบกุญแจ ในแอปนักพัฒนาซอฟต์แวร์ที่คุณสร้างขึ้นก่อนหน้านี้ เปิดแอปใน Edge UI จากนั้นคัดลอก คีย์ผู้ใช้ และใช้คีย์นั้นดังนี้
curl http://localhost:8000/echo -H 'x-api-key:your_api_key'
เช่น
curl http://localhost:8000/echo -H "x-api-key:DvUdLlFwG9AvGGpEgfnNGwtvaXIlUUvP"
ตัวอย่างเอาต์พุต:
{ "headers":{ "user-agent":"curl/7.54.0", "accept":"*/*", "x-api-key":"DvUdLlFwG9AvGGpEgfnNGwtvaXIlUUvP", "client_received_start_timestamp":"1535134472699", "x-authorization-claims":"eyJhdWQiOi...TQ0YmUtOWNlOS05YzM1OTE5MTA1NDkifQ==", "target_sent_start_timestamp":"1535134472702", "x-request-id":"678e3080-a7ae-11e8-a70f-87ae30db3896.8cc81cb0-a7c9-11e8-a70f-87ae30db3896", "x-forwarded-proto":"http", "x-forwarded-host":"localhost:8000", "host":"mocktarget.apigee.net", "x-cloud-trace-context":"e2ac4fa0112c2d76237e5473714f1c85/1746478453618419513", "via":"1.1 localhost, 1.1 google", "x-forwarded-for":"::1, 216.98.205.223, 35.227.194.212", "connection":"Keep-Alive" }, "method":"GET", "url":"/", "body":"" }
การใช้เครื่องมือซิงโครไนซ์
ส่วนนี้จะอธิบายวิธีใช้เครื่องมือซิงค์ข้อมูล ซึ่งเป็นคุณลักษณะเสริมที่ เพิ่มความยืดหยุ่นของ Edge Microgteway โดยทำให้ เพื่อเรียกข้อมูลการกำหนดค่าจาก Apigee Edge และเขียนไปยังฐานข้อมูล Redis ในเครื่อง ด้วย อินสแตนซ์เครื่องมือซิงโครไนซ์กำลังทำงาน อินสแตนซ์ Edge Microgateway อื่นๆ กำลังทำงานบนโหนดต่างๆ สามารถเรียกการกำหนดค่าจากฐานข้อมูลนี้ได้โดยตรง
ขณะนี้ฟีเจอร์ตัวซิงค์ได้รับการรองรับให้ใช้งานกับ Redis 5.0.x
เครื่องมือซิงโครไนซ์คืออะไร
เครื่องมือซิงโครไนซ์จะช่วยเสริมความยืดหยุ่นให้กับ Edge Microgateway ในระดับหนึ่ง ซึ่งช่วยให้มั่นใจ อินสแตนซ์ทุกรายการของ Edge Microgateway ใช้การกำหนดค่าเดียวกัน และ ในกรณีที่อินเทอร์เน็ตขัดข้อง อินสแตนซ์ Edge Microgateway จะเริ่มทำงาน อย่างเหมาะสม
โดยค่าเริ่มต้น อินสแตนซ์ Edge Microgateway จะต้องสื่อสารกับ Apigee Edge ได้เพื่อทำสิ่งต่อไปนี้ เรียกและรีเฟรชข้อมูลการกำหนดค่า เช่น พร็อกซี API และการกำหนดค่าผลิตภัณฑ์ API หากการเชื่อมต่ออินเทอร์เน็ตกับ Edge หยุดชะงัก อินสแตนซ์ Microgateway จะยังคงสามารถ เพราะข้อมูลการกำหนดค่าล่าสุดถูกแคชไว้ อย่างไรก็ตาม อินสแตนซ์ Microgateway ใหม่ ไม่สามารถเริ่มต้นได้หากไม่มีการเชื่อมต่อที่ชัดเจน นอกจากนี้ ยังมีโอกาสที่อินเทอร์เน็ต การหยุดชะงักที่จะทำให้อินสแตนซ์ Microgateway อย่างน้อย 1 รายการทำงานโดยมีการกำหนดค่า ข้อมูลที่ไม่ซิงค์กับอินสแตนซ์อื่นๆ
เครื่องมือซิงค์ Edge Microgateway นำเสนอกลไกสำรองสำหรับ Edge Microgateway อินสแตนซ์เพื่อเรียกข้อมูลการกำหนดค่าที่ต้องใช้ในการเริ่มต้นและประมวลผลการจราจรของข้อมูลพร็อกซี API เครื่องมือซิงโครไนซ์ทำให้สามารถรองรับ Edge Microgateway ทั้งหมด ที่ทำงานบนโหนดที่ต่างกันเพื่อให้เริ่มทำงานอย่างถูกต้องและซิงค์กันอยู่เสมอ การเชื่อมต่ออินเทอร์เน็ตระหว่าง Edge Microgateway และ Apigee Edge หยุดชะงัก
เครื่องมือซิงค์ข้อมูลคืออินสแตนซ์ของ Edge Microgateway ที่มีการกำหนดค่าเป็นพิเศษ วัตถุประสงค์เพียงอย่างเดียว คือการสำรวจ Apigee Edge (ช่วงเวลากำหนดค่าได้) ดึงข้อมูลการกำหนดค่า และ เพื่อเขียนลงในฐานข้อมูล Redis ในเครื่อง อินสแตนซ์ตัวซิงค์เองประมวลผลพร็อกซี API ไม่ได้ การเข้าชม อินสแตนซ์อื่นๆ ของ Edge Microgateway ที่ทำงานบนโหนดที่ต่างกันสามารถ มีการกำหนดค่าให้ดึงข้อมูลการกำหนดค่าจากฐานข้อมูล Redis ไม่ใช่ Apigee Edge เนื่องจากอินสแตนซ์ Microgateway ทั้งหมดจะดึงข้อมูลการกำหนดค่าจากภายใน จึงสามารถเริ่มต้นและประมวลผลคำขอ API ได้แม้จะมีการเชื่อมต่ออินเทอร์เน็ต ขัดข้อง
การกำหนดค่าอินสแตนซ์เครื่องมือซิงค์
เพิ่มการกำหนดค่าต่อไปนี้ลงในไฟล์ org-env/config.yaml
สำหรับ
การติดตั้ง Edge Microgateway ที่คุณต้องการใช้เป็นตัวซิงค์ข้อมูล
edgemicro: redisHost: host_IP redisPort: host_port redisDb: database_index redisPassword: password edge_config: synchronizerMode: 1 redisBasedConfigCache: true
เช่น
edgemicro: redisHost: 192.168.4.77 redisPort: 6379 redisDb: 0 redisPassword: codemaster edge_config: synchronizerMode: 1 redisBasedConfigCache: true
ตัวเลือก | คำอธิบาย |
---|---|
redisHost |
โฮสต์ที่อินสแตนซ์ Redis ของคุณทำงานอยู่ ค่าเริ่มต้น: 127.0.0.1 |
redisPort |
พอร์ตของอินสแตนซ์ Redis ค่าเริ่มต้น: 6379 |
redisDb |
Redis DB ที่จะใช้ ค่าเริ่มต้น: 0 |
redisPassword |
รหัสผ่านฐานข้อมูลของคุณ |
สุดท้าย ให้บันทึกไฟล์การกำหนดค่าและเริ่มอินสแตนซ์ Edge Microgateway จะเริ่มขึ้น ดึงข้อมูล Apigee Edge และจัดเก็บข้อมูลการกำหนดค่าที่ดาวน์โหลดไว้ในฐานข้อมูล Redis
การกำหนดค่าอินสแตนซ์ Edge Microgateway ปกติ
เมื่อเครื่องมือซิงค์ข้อมูลทำงานอยู่ คุณจะกำหนดค่าโหนด Edge Microgateway เพิ่มเติมได้ เพื่อเรียกใช้อินสแตนซ์ Microgateway ปกติที่ประมวลผลการจราจรของข้อมูลพร็อกซี API แต่คุณจะกำหนดค่า อินสแตนซ์เหล่านี้ให้รับข้อมูลการกำหนดค่าจากฐานข้อมูล Redis ไม่ใช่จาก Apigee Edge
เพิ่มการกำหนดค่าต่อไปนี้ให้กับโหนด Edge Microgateway แต่ละรายการเพิ่มเติม
org-env/config.yaml
ไฟล์ โปรดทราบว่าsynchronizerMode
มีการตั้งค่าพร็อพเพอร์ตี้เป็น 0
พร็อพเพอร์ตี้นี้ตั้งค่าอินสแตนซ์ให้ทำงานตามปกติ
อินสแตนซ์ Edge Microgateway ที่ประมวลผลการจราจรของข้อมูลพร็อกซี API และอินสแตนซ์จะได้รับ
ข้อมูลการกำหนดค่าจากฐานข้อมูล Redis
edgemicro: redisHost: host_IP redisPort: host_port redisDb: database_index redisPassword: password edge_config: synchronizerMode: 0 redisBasedConfigCache: true
เช่น
edgemicro: redisHost: 192.168.4.77 redisPort: 6379 redisDb: 0 redisPassword: codemaster edge_config: synchronizerMode: 0 redisBasedConfigCache: true
พร็อพเพอร์ตี้การกำหนดค่า
มีการเพิ่มพร็อพเพอร์ตี้การกำหนดค่าต่อไปนี้เพื่อรองรับการใช้งานเครื่องมือซิงค์ข้อมูล
แอตทริบิวต์ | ค่า | คำอธิบาย |
---|---|---|
edge_config.synchronizerMode |
0 หรือ 1 | หาก Edge Microgateway เป็น 0 (ค่าเริ่มต้น) ทำงานในโหมดมาตรฐาน หากมีค่าเป็น 1 ให้เริ่มต้นอินสแตนซ์ Edge Microgateway เพื่อดำเนินการเป็นผู้ซิงค์ข้อมูล ด้วยวิธีนี้ อินสแตนซ์จะดึงข้อมูลการกำหนดค่าจาก Apigee Edge แล้วจัดเก็บไว้ใน ฐานข้อมูล Redis ในเครื่อง อินสแตนซ์นี้ประมวลผลคำขอพร็อกซี API ไม่ได้ มีวัตถุประสงค์เพียงเพื่อการสำรวจ Apigee Edge สำหรับข้อมูลการกำหนดค่าและเขียนข้อมูลดังกล่าวลงในเครื่อง ฐานข้อมูล จากนั้นคุณต้องกำหนดค่าอินสแตนซ์ Microgateway อื่นๆ ให้อ่านจากฐานข้อมูล |
edge_config.redisBasedConfigCache |
จริงหรือเท็จ | หากเป็นจริง อินสแตนซ์ Edge Microgateway จะดึงข้อมูลการกำหนดค่าจาก
ฐานข้อมูล Redis แทนที่จะเป็น Apigee Edge ฐานข้อมูล Redis ต้องเป็นฐานข้อมูลเดียวกัน
ที่มีการกำหนดค่าเครื่องมือซิงค์ข้อมูลไว้เขียน หากฐานข้อมูล Redis ไม่พร้อมใช้งาน หรือ
หากฐานข้อมูลว่างเปล่า ไมโครเกตเวย์จะมองหา cache-config.yaml ที่มีอยู่
เพื่อใช้กำหนดค่า
หากเป็น "เท็จ" (ค่าเริ่มต้น) อินสแตนซ์ Edge Microgateway จะดึงข้อมูลการกำหนดค่าจาก Apigee Edge ตามปกติ |
edgemicro.config_change_poll_interval |
ช่วงเวลาเป็นวินาที | ระบุช่วงการหยั่งสัญญาณสำหรับเครื่องมือซิงค์เพื่อดึงข้อมูลจาก Apigee Edge |