การอ้างอิงการดำเนินการและการกำหนดค่าสำหรับ Edge Microgateway

คุณกำลังดูเอกสารประกอบ Apigee Edge
ไปที่ เอกสารประกอบเกี่ยวกับ Apigee X.
ข้อมูล

Edge Microgateway เวอร์ชัน 3.3.x

หัวข้อนี้จะกล่าวถึงวิธีจัดการและกำหนดค่า Edge Microgateway

การอัปเกรด Edge Microgateway หากคุณมีการเชื่อมต่ออินเทอร์เน็ต

ส่วนนี้จะอธิบายวิธีอัปเกรดการติดตั้ง Edge Microgateway ที่มีอยู่ หากคุณทำงานโดยไม่ได้เชื่อมต่ออินเทอร์เน็ต โปรดดู ฉันจะติดตั้ง Edge Microgateway โดยไม่ต้องเชื่อมต่ออินเทอร์เน็ตได้ไหม

Apigee ขอแนะนำให้คุณทดสอบการกำหนดค่าที่มีอยู่ด้วย เวอร์ชันใหม่ก่อนการอัปเกรดสภาพแวดล้อมที่ใช้งานจริง

  1. เรียกใช้คำสั่ง npm ต่อไปนี้เพื่ออัปเกรดเป็น Edge เวอร์ชันล่าสุด ทางไมโครเกตเวย์:
    npm upgrade edgemicro -g

    หากต้องการติดตั้ง Edge Microgateway เวอร์ชันที่เฉพาะเจาะจง คุณต้องระบุเวอร์ชัน ตัวเลขในคำสั่งติดตั้ง ตัวอย่างเช่น หากต้องการติดตั้งเป็นเวอร์ชัน 3.2.3 ให้ใช้ คำสั่งต่อไปนี้

    npm install edgemicro@3.2.3 -g
  2. ตรวจสอบหมายเลขเวอร์ชัน ตัวอย่างเช่น หากคุณติดตั้งเวอร์ชัน 3.2.3 ไว้
    edgemicro --version
    current nodejs version is v12.5.0
    current edgemicro version is 3.2.3
        
  3. สุดท้าย ให้อัปเกรดพร็อกซี 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 init
edgemicro configure [params]
edgemicro start [params]

ไฟล์การกำหนดค่าเริ่มต้นสำหรับอินสแตนซ์ Edge Microgateway ที่เพิ่งเริ่มต้น

เมื่อคุณเรียกใช้ edgemicro init ไฟล์การกำหนดค่าระบบ (ตามที่อธิบายไว้ ด้านบน) default.yaml จะอยู่ในไดเรกทอรี ~/.edgemicro

หากเปลี่ยนไฟล์การกำหนดค่าใน ~/.edgemicro คุณต้องกำหนดค่าใหม่และรีสตาร์ท ไมโครเกตเวย์ Edge:

edgemicro stop
edgemicro configure [params]
edgemicro start [params]

ไดนามิก ไฟล์การกำหนดค่าสำหรับอินสแตนซ์ที่กำลังทำงาน

เมื่อเรียกใช้ edgemicro configure [params] ระบบจะเปลี่ยนการตั้งค่า ระบบจะสร้างไฟล์การกำหนดค่าใน ~/.edgemicro ไฟล์ได้รับการตั้งชื่อตาม รูปแบบ: org-env-config.yaml โดยที่ org และ env คือ ชื่อองค์กรและสภาพแวดล้อม Apigee Edge ของคุณ คุณใช้ไฟล์นี้เพื่อกำหนดค่าได้ ที่เปลี่ยนแปลง แล้วโหลดซ้ำแบบไม่มีการหยุดทำงาน ตัวอย่างเช่น หากคุณเพิ่มและกำหนดค่าปลั๊กอิน คุณสามารถโหลดการกำหนดค่าซ้ำโดยไม่ก่อให้เกิดช่วงพักการใช้งาน ดังที่อธิบายไว้ด้านล่าง

หาก Edge Microgateway ทำงานอยู่ (ตัวเลือกช่วงพักเป็นศูนย์) ให้ทำดังนี้

  1. โหลดการกำหนดค่า 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 หยุดทำงาน

  1. รีสตาร์ท 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 ให้ทำตามขั้นตอนต่อไปนี้

  1. สร้างหรือรับใบรับรอง SSL และคีย์โดยใช้ยูทิลิตี openssl หรือวิธีการใดก็ได้ที่คุณต้องการ
  2. เพิ่มแอตทริบิวต์ 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
  3. รีสตาร์ท 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

ในกรณีที่คุณต้องการใช้การตั้งค่า TLS/SSL กับหลายเป้าหมาย คุณต้องระบุ โฮสต์แรกในการกำหนดค่าเป็น "เว้นว่าง" ซึ่งจะเปิดใช้งานคำขอสากล จากนั้นระบุ โฮสต์ในลำดับใดก็ได้ ในตัวอย่างนี้ การตั้งค่าจะใช้กับโฮสต์ที่เจาะจงหลายโฮสต์

targets:
 - host:   ## Note that this value must be "empty"
   ssl:
     client:
       key: /Users/myname/twowayssl/ssl/client.key
       cert: /Users/myname/twowayssl/ssl/ca.crt
       passphrase: admin123
       rejectUnauthorized: true
 - host: 'myserver1.example.com'
   ssl:
     client:
       key: /Users/myname/twowayssl/ssl/client.key
       cert: /Users/myname/twowayssl/ssl/ca.crt
       rejectUnauthorized: true
 - host: 'myserver2.example.com'
   ssl:
     client:
       key: /Users/myname/twowayssl/ssl/client.key
       cert: /Users/myname/twowayssl/ssl/ca.crt
       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 และไฟล์บันทึก

วิธีตั้งค่าระดับการบันทึก

คุณระบุระดับการบันทึกที่จะใช้ในการกำหนดค่า edgemicro สำหรับ รายการระดับการบันทึกทั้งหมดและคำอธิบาย โปรดดูที่แอตทริบิวต์ Edgemicro

ตัวอย่างเช่น การกำหนดค่าต่อไปนี้จะกำหนดระดับการบันทึกเป็น debug

edgemicro:
  home: ../gateway
  port: 8000
  max_connections: -1
  max_connections_hard: -1
  logging:
    level: debug
    dir: /var/tmp
    stats_log_interval: 60
    rotate_interval: 24

วิธีเปลี่ยนช่วงเวลาบันทึก

คุณกำหนดค่าช่วงเวลาเหล่านี้ได้ในไฟล์การกำหนดค่า 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

วิธีผ่อนปรนสิทธิ์ของไฟล์บันทึกที่เข้มงวด

โดยค่าเริ่มต้น Edge Microgateway จะสร้างไฟล์บันทึกแอปพลิเคชัน (api-log.log) ที่มีสิทธิ์ในไฟล์ ตั้งเป็น 0600 สิทธิ์ระดับนี้ไม่อนุญาตให้ใช้แอปพลิเคชันหรือผู้ใช้ภายนอก เพื่ออ่านไฟล์บันทึก หากต้องการผ่อนคลายระดับสิทธิ์ที่เข้มงวดนี้ ให้ตั้งค่า logging:disableStrictLogFile ไปยัง true เมื่อแอตทริบิวต์นี้คือ true ระบบจะสร้างไฟล์บันทึกด้วย มีการตั้งค่าสิทธิ์ของไฟล์เป็น 0755 หาก false หรือไม่ได้ระบุแอตทริบิวต์ สิทธิ์เริ่มต้นจะเป็น 0600

เพิ่มแล้วใน v3.2.3

เช่น

edgemicro:
 logging:
   disableStrictLogFile: true

แนวทางปฏิบัติที่ดีในการบำรุงรักษาไฟล์บันทึก

เมื่อมีการรวบรวมข้อมูลไฟล์บันทึกเมื่อเวลาผ่านไป Apigee ขอแนะนำให้คุณใช้สิ่งต่อไปนี้ แนวทางปฏิบัติ:

  • เนื่องจากไฟล์บันทึกอาจมีขนาดใหญ่มาก ดังนั้นคุณควรตรวจสอบให้แน่ใจว่าไดเรกทอรีของไฟล์บันทึกมี ที่เพียงพอ โปรดดูที่ส่วนต่อไปนี้เก็บไฟล์บันทึกที่ใด และวิธีเปลี่ยนไฟล์บันทึกเริ่มต้น ไดเรกทอรี
  • โปรดลบหรือย้ายไฟล์บันทึกไปยังไดเรกทอรีที่เก็บถาวรแยกต่างหากอย่างน้อยสัปดาห์ละครั้ง
  • หากคุณต้องการลบบันทึก ให้ใช้คำสั่ง CLI edgemicro log -c เพื่อลบบันทึกเก่า (ล้าง)

แบบแผนการตั้งชื่อไฟล์บันทึก

อินสแตนซ์ Edge Microgateway แต่ละรายการจะสร้างไฟล์บันทึกที่มีส่วนขยาย .log หลักเกณฑ์ในการตั้งชื่อไฟล์บันทึกมีดังนี้

edgemicro-HOST_NAME-INSTANCE_ID-api.log

เช่น

edgemicro-mymachine-local-MTQzNTgNDMxODAyMQ-api.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 - ระดับการบันทึก ค่านี้ขึ้นอยู่กับบริบทของธุรกรรมและชุดระดับการบันทึก ในการกำหนดค่า edgemicro ดูวิธีตั้งค่าระดับการบันทึก สำหรับระเบียนสถิติ ระบบจะตั้งระดับเป็น stats บันทึกสถิติจะมีการรายงานที่ ชุดช่วงระยะเวลาปกติด้วยการกำหนดค่า stats_log_interval โปรดดูเพิ่มเติมในหัวข้อวิธีเปลี่ยนช่วงเวลาในบันทึก
  • 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 - ระดับการบันทึก ค่านี้ขึ้นอยู่กับบริบทของธุรกรรมและชุดระดับการบันทึก ในการกำหนดค่า edgemicro ดูวิธีตั้งค่าระดับการบันทึก สำหรับระเบียนสถิติ ระบบจะตั้งระดับเป็น stats บันทึกสถิติจะมีการรายงานที่ ชุดช่วงระยะเวลาปกติด้วยการกำหนดค่า stats_log_interval โปรดดูเพิ่มเติมในหัวข้อวิธีเปลี่ยนช่วงเวลาในบันทึก
  • treq - ระบุเหตุการณ์ ในกรณีนี้คือคำขอเป้าหมาย
  • m - คำกริยา HTTP ที่ใช้ในคำขอเป้าหมาย
  • u - ส่วนของ URL ตามเส้นทางฐาน
  • h - โฮสต์และหมายเลขพอร์ตของเป้าหมายแบ็กเอนด์
  • i - รหัสของรายการบันทึก รายการกิจกรรมทั้ง 4 รายการจะแชร์รายการนี้ ID

3. ตัวอย่างการตอบสนองที่เข้ามาใหม่จากเป้าหมาย

1436403888672 info tres s=200, d=7, i=0

1436403888651 - การประทับเวลา Unix

  • info - ระดับการบันทึก ค่านี้ขึ้นอยู่กับบริบทของธุรกรรมและชุดระดับการบันทึก ในการกำหนดค่า edgemicro ดูวิธีตั้งค่าระดับการบันทึก สำหรับระเบียนสถิติ ระบบจะตั้งระดับเป็น stats บันทึกสถิติจะมีการรายงานที่ ชุดช่วงระยะเวลาปกติด้วยการกำหนดค่า stats_log_interval โปรดดูเพิ่มเติมในหัวข้อวิธีเปลี่ยนช่วงเวลาในบันทึก
  • tres - ระบุเหตุการณ์ ในกรณีนี้ ให้กำหนดการตอบสนองเป้าหมาย
  • s - สถานะการตอบกลับ HTTP
  • d - ระยะเวลาเป็นมิลลิวินาที เวลาที่ใช้ในการเรียก API เป้าหมาย
  • i - รหัสของรายการบันทึก รายการกิจกรรมทั้ง 4 รายการจะแชร์รายการนี้ ID

4. ตัวอย่างข้อความตอบกลับไปยังลูกค้า

1436403888676 info res s=200, d=11, i=0

1436403888651 - การประทับเวลา Unix

  • info - ระดับการบันทึก ค่านี้ขึ้นอยู่กับบริบทของธุรกรรมและชุดระดับการบันทึก ในการกำหนดค่า edgemicro ดูวิธีตั้งค่าระดับการบันทึก สำหรับระเบียนสถิติ ระบบจะตั้งระดับเป็น stats บันทึกสถิติจะมีการรายงานที่ ชุดช่วงระยะเวลาปกติด้วยการกำหนดค่า stats_log_interval โปรดดูเพิ่มเติมในหัวข้อวิธีเปลี่ยนช่วงเวลาในบันทึก
  • 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 - บันทึกข้อความแสดงข้อผิดพลาดเท่านั้น
      • debug - บันทึกข้อความแก้ไขข้อบกพร่อง พร้อมด้วยข้อมูล คำเตือน และข้อความแสดงข้อผิดพลาด
      • trace - บันทึกข้อมูลการติดตามข้อผิดพลาด รวมถึงข้อมูล คำเตือน และข้อความแสดงข้อผิดพลาด
      • ไม่มี - ห้ามสร้างไฟล์บันทึก
    • dir: (ค่าเริ่มต้น: /var/tmp) ไดเรกทอรีที่มีไฟล์บันทึก ที่จัดเก็บไว้
    • stats_log_interval: (ค่าเริ่มต้น: 60) ช่วงเวลาเป็นวินาทีเมื่อสถิติ มีการเขียนระเบียนไปยังไฟล์บันทึก API
    • rotate_interval: (ค่าเริ่มต้น: 24) ช่วงเวลาเป็นชั่วโมงเมื่อไฟล์บันทึก หมุนแล้ว
  • ปลั๊กอิน: ปลั๊กอินจะเพิ่มฟังก์ชันการทำงานให้กับ 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)

  • noRuleMatchAction: (สตริง) การดำเนินการที่ต้องทำ (อนุญาตหรือปฏิเสธการเข้าถึง) หาก กฎการจับคู่ที่ระบุในปลั๊กอิน accesscontrol ไม่ได้รับการแก้ไข (ไม่ตรงกัน) ค่าที่ใช้ได้: ALLOW หรือ DENY ค่าเริ่มต้น: ALLOW (เพิ่มเมื่อ: v3.1.7)
  • enableAnalytics: (ค่าเริ่มต้น: true) ตั้งค่าแอตทริบิวต์เป็น false เป็น ป้องกันปลั๊กอิน Analytics โหลดขึ้นมา ในกรณีนี้ จะไม่มีการเรียกใช้ข้อมูลวิเคราะห์ Apigee Edge เลย หากตั้งค่าเป็น true หรือเมื่อ ไม่ได้ระบุแอตทริบิวต์นี้ ปลั๊กอินการวิเคราะห์จะทำงานตามปกติ โปรดดู แอตทริบิวต์ Edgemicro สำหรับ รายละเอียด (เพิ่ม v3.1.8)

    ตัวอย่าง

    edgemicro
      enableAnalytics=false|true
  • on_target_response_abort: แอตทริบิวต์นี้ช่วยให้คุณควบคุมได้ ลักษณะการทำงานของ Edge Microgateway หากการเชื่อมต่อระหว่างไคลเอ็นต์ (Edge Microgateway) กับ เซิร์ฟเวอร์เป้าหมายปิดก่อนกำหนด
    ค่า คำอธิบาย
    ค่าเริ่มต้น หากไม่ได้ระบุ on_target_response_abort ระบบจะใช้ลักษณะการทำงานเริ่มต้น คือการตัดการตอบกลับโดยไม่แสดงข้อผิดพลาด ในไฟล์บันทึก คำเตือน ข้อความแสดงพร้อม targetResponse aborted และรหัสตอบกลับ 502
    appendErrorToClientResponseBody ข้อผิดพลาดที่กำหนดเอง TargetResponseAborted จะส่งคืนไปยัง ของคุณ ในไฟล์บันทึก คำเตือน ข้อความแสดงพร้อม targetResponse aborted และรหัสตอบกลับ 502 ใน นอกจากนี้ ข้อผิดพลาด TargetResponseAborted จะถูกบันทึกพร้อมกับข้อความ วันที่ Target response ended prematurely.
    abortClientRequest Edge Microgateway จะล้มเลิกคำขอและจะเขียนคำเตือนไปยังไฟล์บันทึกดังนี้ TargetResponseAborted ที่มีรหัสสถานะคำขอ 502

ตัวอย่าง

edgemicro:
 on_target_response_abort: appendErrorToClientResponseBody | abortClientRequest

แอตทริบิวต์ส่วนหัว

การตั้งค่าเหล่านี้จะกำหนดวิธีจัดการส่วนหัว 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":[

         ]
      }
   ]
}

การกรองผลิตภัณฑ์ตามแอตทริบิวต์ที่กำหนดเอง

วิธีกรองผลิตภัณฑ์ตามแอตทริบิวต์ที่กำหนดเอง

  1. ใน Edge UI ให้เลือกพร็อกซี edgemicro_auth ในองค์กร/สภาพแวดล้อม ที่คุณกำหนดค่า Edge Microgateway ไว้
  2. ในการแตะ "พัฒนา" ให้เปิดนโยบาย Javaข้อความเสริม ในตัวแก้ไข
  3. เพิ่มแอตทริบิวต์ที่กำหนดเองด้วยคีย์ products.filter.attributes โดยคั่นด้วยเครื่องหมายจุลภาค รายการชื่อแอตทริบิวต์ เฉพาะผลิตภัณฑ์ที่มีชื่อแอตทริบิวต์ที่กําหนดเอง จะส่งคืนไปยัง Edge Microgateway
  4. คุณสามารถเลือกปิดใช้การตรวจสอบ เพื่อดูว่าผลิตภัณฑ์เปิดใช้งานอยู่ในสภาพแวดล้อมปัจจุบันหรือไม่โดยการตั้งค่า แอตทริบิวต์ที่กำหนดเอง products.filter.env.enable เป็น false (ค่าเริ่มต้นคือ True)
  5. (Private Cloud เท่านั้น) หากคุณใช้ Edge สำหรับ Private Cloud ให้ตั้งค่าพร็อพเพอร์ตี้ org.noncps ไปยัง true เพื่อดึงผลิตภัณฑ์สำหรับสภาพแวดล้อมที่ไม่ใช่ CPS
  6. เช่น

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <JavaCallout async="false" continueOnError="false" enabled="true" name="JavaCallout">
        <DisplayName>JavaCallout</DisplayName>
        <FaultRules/>
        <Properties>
            <Property name="products.filter.attributes">attrib.one, attrib.two</Property>
            <Property name="products.filter.env.enable">false</Property>
            <Property name="org.noncps">true</Property>
        </Properties>
        <ClassName>io.apigee.microgateway.javacallout.Callout</ClassName>
        <ResourceURL>java://micro-gateway-products-javacallout-2.0.0.jar</ResourceURL>
    </JavaCallout>
    

การกำหนดค่าความถี่ในการพุชของ 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 ให้ทำดังต่อไปนี้ ดังต่อไปนี้:

  1. ตั้งค่าตัวแปรสภาพแวดล้อม 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

  2. รีสตาร์ท Edge Microgateway

ใช้พร็อกซี HTTP สำหรับการสื่อสารเป้าหมาย

เพิ่มในเวอร์ชัน 3.1.2

หากต้องการใช้พร็อกซี HTTP เพื่อสื่อสารระหว่าง Edge Microgateway และเป้าหมายแบ็กเอนด์ ให้ทำดังนี้

  1. เพิ่มการกำหนดค่าต่อไปนี้ในไฟล์การกำหนดค่า 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

  2. รีสตาร์ท 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 สามารถยืนยันความน่าเชื่อถือได้อย่างไร

คุณสามารถสร้าง JWT โดยใช้ CLI และใช้ใน ส่วนหัวการให้สิทธิ์ของการเรียก API แทนคีย์ API เช่น

curl -i http://localhost:8000/hello -H "Authorization: Bearer eyJhbGciOiJ..dXDefZEA"

สําหรับข้อมูลเกี่ยวกับการสร้าง JWT ด้วย CLI โปรดดูสร้างโทเค็น

การหมุนเวียนคีย์คืออะไร

หลังจากสร้าง 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 ที่แสดงเพื่อการยืนยันจะได้รับการยืนยันโดยใช้คีย์สาธารณะใหม่ ถ้า การยืนยันไม่สำเร็จ จากนั้นระบบจะนำคีย์สาธารณะเก่ามาใช้จนกว่า JWT จะหมดอายุ (หลังจากระยะเวลาToken_expiry* ซึ่งเป็นค่าเริ่มต้น 30 นาที) ใน ด้วยวิธีนี้ คุณสามารถ "หมุน" โดยไม่รบกวนการรับส่งข้อมูล API ทันที

วิธีการหมุนเวียนคีย์

ส่วนนี้จะอธิบายวิธีการหมุนเวียนคีย์

  1. หากต้องการอัปเกรด KVM ให้ใช้คำสั่ง edgemicro upgradekvm โปรดดูรายละเอียด ในการเรียกใช้คำสั่งนี้ โปรดดูการอัปเกรด KVM คุณต้องทำขั้นตอนนี้เพียงครั้งเดียว
  2. หากต้องการอัปเกรดพร็อกซี edgemicro-oauth ให้ใช้คำสั่ง edgemicro upgradeauth โปรดดูรายละเอียดเกี่ยวกับการเรียกใช้คำสั่งนี้ที่ ใช้พร็อกซี EDGEmicro-auth คุณต้องทำขั้นตอนนี้เพียงครั้งเดียว
  3. เพิ่มบรรทัดต่อไปนี้ลงในไฟล์ ~/.edgemicro/org-env-config.yaml โดยที่ ระบุองค์กรและสภาพแวดล้อมเดียวกับที่คุณกำหนดค่าไมโครเกตเวย์ให้ใช้
    jwk_public_keys: 'https://$ORG-$ENV.apigee.net/edgemicro-auth/jwkPublicKeys'
  4. เรียกใช้คำสั่งการหมุนเวียนคีย์เพื่อหมุนเวียนคีย์ โปรดดูรายละเอียดเกี่ยวกับคำสั่งนี้ที่ การหมุนเวียนคีย์

    edgemicro rotatekey -o $ORG -e $ENV -k $KEY -s $SECRET

    เช่น

    edgemicro rotatekey -o docs -e test \
    -k 27ee39567c75e4567a66236cbd4e86d1cc93df6481454301bd5fac4d3497fcbb \
    -s 4618b0008a6185d7327ebf53bee3c50282ccf45a3cceb1ed9828bfbcf1148b47
    

หลังจากการหมุนเวียนคีย์ 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"
    }
  ]
}

การกำหนดค่า "ไม่ได้อยู่ก่อน" ล่าช้า

สำหรับเวอร์ชัน 3.1.5 และเวอร์ชันก่อนหน้า คีย์ส่วนตัวใหม่ที่สร้างขึ้นโดยคำสั่ง rotatekey จะดำเนินการ มีผลทันที และโทเค็นใหม่ที่สร้างขึ้นจะมีการรับรองด้วยคีย์ส่วนตัวใหม่ อย่างไรก็ตาม คีย์สาธารณะใหม่จะใช้ได้เฉพาะกับอินสแตนซ์ Edge Microgateway ทุก 10 นาที (โดยค่าเริ่มต้น) เมื่อมีการรีเฟรชการกำหนดค่าไมโครเกตเวย์ เนื่องจากเวลาหน่วงระหว่างการลงชื่อโทเค็น และการรีเฟรชอินสแตนซ์ไมโครเกตเวย์ โทเค็นที่ลงชื่อด้วยคีย์ล่าสุดจะถูกปฏิเสธจนกว่า อินสแตนซ์ทั้งหมดได้รับคีย์สาธารณะสาธารณะ

ในกรณีที่มีอินสแตนซ์ Microgateway อยู่หลายรายการ บางครั้งความล่าช้าของคีย์สาธารณะจะส่งผลให้เกิด ข้อผิดพลาดรันไทม์เป็นระยะๆ ด้วยสถานะ 403 เนื่องจากการตรวจสอบโทเค็นจะผ่านการตรวจสอบ แต่ล้มเหลวในอินสแตนซ์อื่นจนกว่าจะมีการรีเฟรชอินสแตนซ์ทั้งหมด

ตั้งแต่เวอร์ชัน 3.1.6 เป็นต้นไป แฟล็กใหม่ในคำสั่ง rotatekey จะช่วยให้คุณระบุการหน่วงเวลาสำหรับ คีย์ส่วนตัวจะมีประสิทธิภาพ ซึ่งช่วยให้ระบบรีเฟรชอินสแตนซ์ Microgateway ทั้งหมด และรับคีย์สาธารณะใหม่ แฟล็กใหม่คือ --nbf ซึ่งย่อมาจาก "not before" แฟล็กนี้ใช้ค่าจำนวนเต็ม ซึ่งก็คือจำนวนนาทีที่จะหน่วงเวลา

ในตัวอย่างต่อไปนี้ การหน่วงเวลาคือ 15 นาที

edgemicro rotatekey -o docs -e test \
-k 27ee39567c75e4567a66236cbd4e86d1cc93df6481454301bd5fac4d3497fcbb \
-s 4618b0008a6185d7327ebf53bee3c50282ccf45a3cceb1ed9828bfbcf1148b47 \
--nbf 15

โปรดทราบว่าแนวทางปฏิบัติที่ดีคือให้ตั้งการหน่วงเวลามากกว่าการตั้งค่าการกำหนดค่า config_change_poll_internal ซึ่งค่าเริ่มต้นคือ 10 นาที โปรดดูเพิ่มเติมที่แอตทริบิวต์ edgemicro

กำลังกรองพร็อกซีที่ดาวน์โหลด

โดยค่าเริ่มต้น Edge Microgateway จะดาวน์โหลดพร็อกซีทั้งหมดในองค์กร Edge ของคุณ ที่ขึ้นต้นด้วยคำนำหน้าการตั้งชื่อ "edgemicro_" คุณสามารถเปลี่ยนค่าเริ่มต้นนี้เพื่อดาวน์โหลดพร็อกซีได้ ที่ชื่อตรงกับรูปแบบ

  1. เปิดไฟล์กำหนดค่า Edge Micro: ~/.edgemicro/org-env-config.yaml
  2. เพิ่มองค์ประกอบ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 ได้ วิธีนี้เป็นประโยชน์สำหรับ การแก้ปัญหาและการดีบักปลั๊กอินที่กำหนดเอง

  1. รีสตาร์ท 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

  2. เริ่มโปรแกรมแก้ไขข้อบกพร่องและตั้งค่าให้รอฟังหมายเลขพอร์ตสำหรับขั้นตอนการแก้ไขข้อบกพร่อง
  3. ตอนนี้คุณสามารถดูโค้ด 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 รายการ คุณจะใช้วิธีใดก็ได้ โปรดทราบว่าexpires_in ค่าจำนวนเต็มที่ระบุเป็นวินาที
{
"token": "eyJraWQiOiIxIiwidHlwIjoi",
"access_token": "eyJraWQiOiIxIiwid",
"token_type": "bearer",
"expires_in": 1799
}

วิธีรับโทเค็นการรีเฟรช

หากต้องการรับโทเค็นการรีเฟรช ให้เรียก API ไปยังปลายทาง /token ของ พร็อกซี edgemicro-auth คุณต้องเรียก API นี้ด้วย password ประเภทการให้สิทธิ์ ขั้นตอนต่างๆ ต่อไปนี้จะอธิบายกระบวนการดังกล่าว

  1. รับสิทธิ์เข้าถึงและรีเฟรชโทเค็นด้วย /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 จะส่งคืนโทเค็นเพื่อการเข้าถึงและโทเค็นการรีเฟรช คำตอบมีลักษณะคล้ายกับ นี้ โปรดทราบว่า expires_in ค่าเป็นจำนวนเต็มและระบุเป็นวินาที

    {
        "token": "your-access-token",
        "access_token": "your-access-token",
        "token_type": "bearer",
        "expires_in": 108,
        "refresh_token": "your-refresh-token",
        "refresh_token_expires_in": 431,
        "refresh_token_issued_at": "1562087304302",
        "refresh_token_status": "approved"
    }
  2. ตอนนี้คุณสามารถใช้โทเค็นการรีเฟรชเพื่อรับโทเค็นเพื่อการเข้าถึงใหม่ด้วยการเรียกใช้ได้แล้ว ปลายทาง /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"
        }

ตรวจสอบตลอดไป

การระบุปลายทางของไฟล์การกำหนดค่า

หากคุณเรียกใช้อินสแตนซ์ 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 ในโหมดสแตนด์อโลน

  1. สร้างไฟล์การกำหนดค่าที่ชื่อว่า $HOME/.edgemicro/$ORG-$ENV-config.yaml

    เช่น

    vi $HOME/.edgemicro/foo-bar-config.yaml
  2. วางโค้ดต่อไปนี้ลงในไฟล์:
    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
  3. ส่งออกตัวแปรสภาพแวดล้อมต่อไปนี้ด้วยค่า "1"
    export EDGEMICRO_LOCAL=1
  4. เรียกใช้คำสั่ง 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 /
  5. ทดสอบการกำหนดค่า
    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

  1. คุณต้องปฏิบัติตามมาตรฐาน การตั้งค่าและการกำหนดค่าของ Edge Microgateway เพื่อทำให้พร็อกซี edgemicro-auth ใช้งานได้ ต่อองค์กร/สภาพแวดล้อมใน Apigee Edge หากเคยทำขั้นตอนนี้แล้ว ก็ไม่จำเป็นต้องทำขั้นตอนนี้ซ้ำ
  2. หากคุณทำให้ Edge Microgateway กับ Apigee Cloud ได้ คุณจะต้องเชื่อมต่อกับอินเทอร์เน็ตเพื่อรับ JWT จากอุปกรณ์ปลายทางนี้
  3. หยุด Edge Microgateway:
    edgemicro stop
  4. ในไฟล์การกำหนดค่าที่คุณสร้างไว้ก่อนหน้านี้ ($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'
  5. รีสตาร์ท Edge Microgateway ดังที่ทำก่อนหน้านี้โดยใช้ชื่อ org/env ที่คุณใช้ในชื่อไฟล์การกำหนดค่า เช่น
    edgemicro start -o foo -e bar -a proxy1 -v 1 -t http://mocktarget.apigee.net -b /
  6. รับโทเค็น 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 แต่ละรายการพูด ไปยังปลายทางเดียวในบริการที่ใช้ร่วมกันเท่านั้น:

Edgemicro เป็น Sidecar

ข้อดีของสถาปัตยกรรมรูปแบบนี้คือ Edge Microgateway ให้บริการ API การจัดการสำหรับบริการแต่ละรายการที่ทำให้ใช้งานได้กับสภาพแวดล้อมคอนเทนเนอร์ เช่น คลัสเตอร์ Kubernetes

การกำหนดค่าโหมดพร็อกซีภายใน

หากต้องการกำหนดค่า Edge Microgateway ให้ทำงานในโหมดพร็อกซีภายใน ให้ทำตามขั้นตอนต่อไปนี้

  1. เรียกใช้ edgemicro init เพื่อตั้งค่าสภาพแวดล้อมการกำหนดค่าในเครื่อง เช่นเดียวกับการตั้งค่า Edge Microgateway ทั่วไป ดูเพิ่มเติม กำหนดค่า Edge Microgateway
  2. เรียกใช้ edgemicro configure แบบเดียวกับที่คุณจะทำในการตั้งค่า Edge Microgateway ทั่วไป เช่น
    edgemicro configure -o your_org -e your_env -u your_apigee_username

    คำสั่งนี้จะใช้นโยบาย edgemicro-auth กับ Edge และแสดงผลคีย์ และข้อมูลลับที่คุณจำเป็นต้องใช้เพื่อเริ่ม Microgateway หากต้องการความช่วยเหลือ โปรดดู กำหนดค่า Edge Microgateway

  3. ใน Apigee Edge ให้สร้างผลิตภัณฑ์ API และด้วยการกำหนดค่าที่จำเป็นต่อไปนี้ ข้อกำหนด (คุณสามารถจัดการการกำหนดค่าอื่นๆ ทั้งหมดได้ตามต้องการ)
    • คุณต้องเพิ่มพร็อกซี edgemicro-auth ลงในผลิตภัณฑ์ พร็อกซีนี้ มีการทำให้ใช้งานได้โดยอัตโนมัติเมื่อคุณเรียกใช้ edgemicro configure
    • คุณต้องระบุเส้นทางทรัพยากร Apigee แนะนำให้เพิ่มเส้นทางนี้ไปยัง ผลิตภัณฑ์: /** ดูข้อมูลเพิ่มเติมได้ที่การกำหนดค่าลักษณะการทำงานของเส้นทางทรัพยากร ดูข้อมูลเพิ่มเติมที่สร้าง API ทั้งหมดในเอกสารประกอบของ Edge
  4. ใน Apigee Edge ให้สร้างนักพัฒนาซอฟต์แวร์ หรือคุณจะใช้นักพัฒนาซอฟต์แวร์ที่มีอยู่ก็ได้หาก ความปรารถนา สำหรับความช่วยเหลือ โปรดดูการเพิ่มนักพัฒนาซอฟต์แวร์โดยใช้ UI การจัดการ Edge

  5. สร้างแอปนักพัฒนาซอฟต์แวร์ใน Apigee Edge คุณต้องเพิ่มผลิตภัณฑ์ API ที่คุณ ที่เพิ่งสร้างลงในแอปนี้ สำหรับความช่วยเหลือ โปรดดูการลงทะเบียนแอปใน Edge UI การจัดการ
  6. ในเครื่องที่ติดตั้ง Edge Microgateway ให้ส่งออกข้อมูลต่อไปนี้ ด้วยค่า "1"
    export EDGEMICRO_LOCAL_PROXY=1
  7. เรียกใช้คำสั่ง 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 ข้อมูลการกำหนดค่าที่ดึงจากการเรียกไปยัง Apigee Edge ประกอบด้วยการโทร jwk_public_keys การเรียกใช้ jwt_public_key, การเรียกใช้ Bootstrap และการเรียกใช้ผลิตภัณฑ์ 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

การกำหนดค่าการยกเว้น URL สำหรับปลั๊กอิน

คุณสามารถกำหนดค่า Microgateway เพื่อข้ามการประมวลผลของปลั๊กอินสำหรับ URL ที่ระบุ คุณสามารถกำหนดค่า "ยกเว้น" เหล่านี้ได้ URL ทั่วโลก (สำหรับปลั๊กอินทั้งหมด) หรือสำหรับปลั๊กอินที่เฉพาะเจาะจง

เช่น

...
edgemicro:
  ...
  plugins:
    excludeUrls: '/hello,/proxy_one' # global exclude urls
    sequence:
      - oauth
      - json2xml
      - quota
json2xml:
  excludeUrls: '/hello/xml'  # plugin level exclude urls
...

ในตัวอย่างนี้ ปลั๊กอินจะไม่ประมวลผลการเรียกพร็อกซี API ที่เข้ามาใหม่ เส้นทาง /hello หรือ /proxy_one นอกจากนี้ json2xml ระบบจะข้ามปลั๊กอินสำหรับ API ที่มี /hello/xml ในเส้นทาง

การตั้งค่าแอตทริบิวต์การกําหนดค่าด้วยค่าตัวแปรสภาพแวดล้อม

คุณระบุตัวแปรสภาพแวดล้อมโดยใช้แท็กในการกำหนดค่าได้ ระบบจะแทนที่แท็กตัวแปรสภาพแวดล้อมที่ระบุด้วยสภาพแวดล้อมจริง ค่าตัวแปร ระบบจะจัดเก็บอะไหล่ไว้ในหน่วยความจำเท่านั้น และจะไม่จัดเก็บไว้ในต้นฉบับ ไฟล์การกำหนดค่าหรือแคช

ในตัวอย่างนี้ แอตทริบิวต์ key จะถูกแทนที่ด้วยค่าของแอตทริบิวต์ ตัวแปรสภาพแวดล้อม TARGETS_SSL_CLIENT_KEY และอื่นๆ

targets:
  - ssl:
      client:
        key: <E>TARGETS_SSL_CLIENT_KEY</E>
        cert: <E>TARGETS_SSL_CLIENT_CERT</E>
        passphrase: <E>TARGETS_SSL_CLIENT_PASSPHRASE</E>

ในตัวอย่างนี้ แท็ก <n> ใช้ในการระบุค่าจำนวนเต็ม เฉพาะเชิงบวก โดยใช้จำนวนเต็ม

edgemicro:
  port: <E><n>EMG_PORT</n></E>

ในตัวอย่างนี้ แท็ก <b> จะใช้เพื่อระบุบูลีน ( นั่นคือจริง หรือ เท็จ)

quotas:
  useRedis: <E><b>EMG_USE_REDIS</b></E>