Tài liệu tham khảo về hoạt động và cấu hình cho Edge Microgateway

Bạn đang xem tài liệu về Apigee Edge.
Chuyển đến tài liệu về Apigee X.
thông tin

Edge Microgateway phiên bản 3.3.x

Chủ đề này thảo luận cách quản lý và định cấu hình Edge Microgateway.

Nâng cấp Edge Microgateway nếu bạn có kết nối Internet

Phần này giải thích cách nâng cấp bản cài đặt Edge Microgateway hiện có. Nếu bạn đang hoạt động mà không có kết nối Internet, hãy xem phần Tôi có thể cài đặt Edge Microgateway mà không cần kết nối Internet không?.

Apigee khuyên bạn nên kiểm thử cấu hình hiện có bằng phiên bản mới trước khi nâng cấp môi trường phát hành chính thức.

  1. Thực thi lệnh npm sau để nâng cấp lên phiên bản mới nhất của Edge Microgateway:
    npm upgrade edgemicro -g

    Để cài đặt một phiên bản cụ thể của Edge Microgateway, bạn cần chỉ định số phiên bản trong lệnh cài đặt. Ví dụ: để cài đặt lên phiên bản 3.2.3, hãy sử dụng lệnh sau:

    npm install edgemicro@3.2.3 -g
  2. Kiểm tra số phiên bản. Ví dụ: nếu bạn đã cài đặt phiên bản 3.2.3:
    edgemicro --version
    current nodejs version is v12.5.0
    current edgemicro version is 3.2.3
        
  3. Cuối cùng, hãy nâng cấp lên phiên bản mới nhất của proxy edgemicro-auth:
    edgemicro upgradeauth -o $ORG -e $ENV -u $USERNAME

Thay đổi cấu hình

Các tệp cấu hình bạn cần biết bao gồm:

  • Tệp cấu hình hệ thống mặc định
  • Tệp cấu hình mặc định cho thực thể Edge Microgateway mới khởi tạo
  • Tệp cấu hình động cho các thực thể đang chạy

Phần này thảo luận về các tệp này và những điều bạn cần biết về việc thay đổi chúng.

Tệp cấu hình hệ thống mặc định

Khi bạn cài đặt Edge Microgateway, tệp cấu hình hệ thống mặc định sẽ được đặt tại đây:

prefix/lib/node_modules/edgemicro/config/default.yaml

Trong đó prefix là thư mục có tiền tố npm. Hãy xem phần Edge Microgateway được cài đặt ở đâu nếu bạn không tìm thấy thư mục này.

Nếu thay đổi tệp cấu hình hệ thống, bạn phải khởi động lại, định cấu hình lại và khởi động lại Edge Microgateway:

edgemicro init
edgemicro configure [params]
edgemicro start [params]

Tệp cấu hình mặc định cho các thực thể Edge Microgateway mới khởi tạo

Khi bạn chạy edgemicro init, tệp cấu hình hệ thống (như mô tả ở trên), default.yaml, sẽ được đặt trong thư mục ~/.edgemicro.

Nếu thay đổi tệp cấu hình trong ~/.edgemicro, bạn phải định cấu hình lại và khởi động lại Edge Microgateway:

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

Tệp cấu hình động cho các thực thể đang chạy

Khi bạn chạy edgemicro configure [params], một tệp cấu hình động sẽ được tạo trong ~/.edgemicro. Tệp này được đặt tên theo mẫu sau: org-env-config.yaml, trong đó orgenv là tên môi trường và tên tổ chức Apigee của bạn. Bạn có thể sử dụng tệp này để thay đổi cấu hình, sau đó tải lại chúng với thời gian ngừng hoạt động bằng 0. Ví dụ: nếu thêm và định cấu hình một trình bổ trợ, bạn có thể tải lại cấu hình mà không gặp phải thời gian ngừng hoạt động, như được giải thích bên dưới.

Nếu Edge Microgateway đang chạy (chế độ 0 thời gian ngừng hoạt động):

  1. Tải lại cấu hình Edge Microgateway:
    edgemicro reload -o $ORG -e $ENV -k $KEY -s $SECRET

    Trong trường hợp:

    • $ORG là tên tổ chức của bạn trong Edge (bạn phải là quản trị viên của tổ chức).
    • $ENV là một môi trường trong tổ chức của bạn (chẳng hạn như "test" (kiểm thử) hoặc "prod" (sản phẩm)).
    • $KEY là khoá được lệnh cấu hình trả về trước đó.
    • $SECRET là khoá được lệnh cấu hình trả về trước đó.

    Ví dụ

    edgemicro reload -o docs -e test -k 701e70ee718ce6dc188...78b6181d000723 \
      -s 05c14356e42ed1...4e34ab0cc824

Nếu Edge Microgateway bị dừng:

  1. Khởi động lại Edge Microgateway:
    edgemicro start -o $ORG -e $ENV -k $KEY -s $SECRET

    Trong trường hợp:

    • $ORG là tên tổ chức của bạn trong Edge (bạn phải là quản trị viên của tổ chức).
    • $ENV là một môi trường trong tổ chức của bạn (chẳng hạn như "test" (kiểm thử) hoặc "prod" (sản phẩm)).
    • $KEY là khoá được lệnh cấu hình trả về trước đó.
    • $SECRET là khoá được lệnh cấu hình trả về trước đó.

    Ví dụ:

    edgemicro start -o docs -e test -k 701e70ee718ce...b6181d000723 \
      -s 05c1435...e34ab0cc824

Dưới đây là một tệp cấu hình mẫu. Để biết thông tin chi tiết về chế độ cài đặt tệp cấu hình, hãy xem Tài liệu tham khảo về cấu hình 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

Đặt biến môi trường

Các lệnh giao diện dòng lệnh yêu cầu giá trị cho tổ chức và môi trường Edge của bạn, cũng như khoá và bí mật cần thiết để khởi động Edge Microgateway có thể được lưu trữ trong các biến môi trường sau:

  • EDGEMICRO_ORG
  • EDGEMICRO_ENV
  • EDGEMICRO_KEY
  • EDGEMICRO_SECRET

Bạn không bắt buộc phải đặt các biến này. Nếu đặt các giá trị này, bạn không cần phải chỉ định giá trị khi sử dụng Giao diện dòng lệnh (CLI) để định cấu hình và khởi động Edge Microgateway.

Định cấu hình SSL trên máy chủ Edge Microgateway

Xem các video sau đây để tìm hiểu cách định cấu hình TLS trong Apigee Edge Microgateway:

Video Nội dung mô tả
Định cấu hình TLS 1 chiều về phía Bắc Tìm hiểu về cách định cấu hình TLS trong Apigee Edge Microgateway. Video này cung cấp thông tin tổng quan về TLS và tầm quan trọng của nó, giới thiệu TLS trong Edge Microgateway và trình bày cách định cấu hình TLS một chiều về hướng Bắc.
Định cấu hình TLS 2 chiều về phía Bắc Đây là video thứ hai về cách định cấu hình TLS trong Apigee Edge Microgateway. Video này giải thích cách định cấu hình TLS 2 chiều về hướng bắc.
Định cấu hình TLS 1 chiều và 2 chiều về phía Nam Video thứ ba này về cách định cấu hình TLS trong Apigee Edge Microgateway giải thích cách định cấu hình TLS 1 chiều và 2 chiều.

Bạn có thể định cấu hình máy chủ Microgateway để sử dụng SSL. Ví dụ: khi đã định cấu hình SSL, bạn có thể gọi các API thông qua Edge Microgateway bằng giao thức "https", như sau:

https://localhost:8000/myapi

Để định cấu hình SSL trên máy chủ Microgateway, hãy làm theo các bước sau:

  1. Tạo hoặc lấy khoá và chứng chỉ SSL bằng tiện ích openssl hoặc bất kỳ phương pháp nào bạn muốn.
  2. Thêm thuộc tính edgemicro:ssl vào tệp cấu hình Edge Microgateway. Để biết danh sách đầy đủ các tuỳ chọn, hãy xem bảng bên dưới. Ví dụ:
    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. Khởi động lại Edge Microgateway. Làm theo các bước nêu trong phần Thực hiện thay đổi cấu hình tuỳ thuộc vào tệp cấu hình mà bạn đã chỉnh sửa: tệp mặc định hay tệp cấu hình thời gian chạy.

Dưới đây là ví dụ về phần edgemicro của tệp cấu hình đã được định cấu hình 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

Dưới đây là danh sách tất cả các tuỳ chọn máy chủ được hỗ trợ:

Lựa chọn Nội dung mô tả
key Đường dẫn đến tệp ca.key (ở định dạng PEM).
cert Đường dẫn đến tệp ca.cert (ở định dạng PEM).
pfx Đường dẫn đến một tệp pfx chứa khoá riêng tư, chứng chỉ và chứng chỉ CA của ứng dụng ở định dạng Pf.
passphrase Một chuỗi ký tự chứa cụm mật khẩu cho khoá cá nhân hoặc PFX.
ca Đường dẫn đến một tệp chứa danh sách các chứng chỉ đáng tin cậy ở định dạng PEM.
ciphers Một chuỗi mô tả thuật toán mật mã cần sử dụng được phân tách bằng dấu ":".
rejectUnauthorized Nếu đúng, chứng chỉ máy chủ sẽ được xác minh dựa vào danh sách CA đã cung cấp. Nếu xác minh không thành công, hệ thống sẽ trả về một lỗi.
secureProtocol Phương thức SSL mà bạn nên sử dụng. Ví dụ: SSLv3_method để buộc SSL thành phiên bản 3.
servername Tên máy chủ cho tiện ích TLS (Chỉ báo tên máy chủ) SNI.
requestCert true đối với SSL 2 chiều; false đối với SSL 1 chiều

Sử dụng tuỳ chọn SSL/TLS máy khách

Bạn có thể định cấu hình Edge Microgateway thành một ứng dụng TLS hoặc SSL khi kết nối tới các điểm cuối đích. Trong tệp cấu hình Microgateway, hãy sử dụng phần tử mục tiêu để đặt các tuỳ chọn SSL/TLS. Xin lưu ý rằng bạn có thể chỉ định nhiều mục tiêu cụ thể. Dưới đây là ví dụ về mục tiêu đa mục tiêu.

Ví dụ sau cung cấp các chế độ cài đặt sẽ áp dụng cho tất cả máy chủ lưu trữ:

edgemicro:
...
targets:
  ssl:
    client:
      key: /Users/jdoe/nodecellar/twowayssl/ssl/client.key
      cert: /Users/jdoe/nodecellar/twowayssl/ssl/ca.crt
      passphrase: admin123
      rejectUnauthorized: true

Trong ví dụ này, các chế độ cài đặt chỉ được áp dụng cho máy chủ lưu trữ được chỉ định:

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

Sau đây là một ví dụ về TLS:

edgemicro:
...
targets:
  - host: 'myserver.example.com'
    tls:
      client:
        pfx: /Users/myname/twowayssl/ssl/client.pfx
        passphrase: admin123
        rejectUnauthorized: true

Trong trường hợp muốn áp dụng chế độ cài đặt TLS/SSL cho nhiều mục tiêu cụ thể, bạn phải chỉ định máy chủ lưu trữ đầu tiên trong cấu hình là "trống", tuỳ chọn này cho phép thực hiện các yêu cầu chung, sau đó chỉ định máy chủ cụ thể theo thứ tự bất kỳ. Trong ví dụ này, các chế độ cài đặt được áp dụng cho nhiều máy chủ cụ thể:

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

Dưới đây là danh sách tất cả các tuỳ chọn ứng dụng được hỗ trợ:

Lựa chọn Nội dung mô tả
pfx Đường dẫn đến một tệp pfx chứa khoá riêng tư, chứng chỉ và chứng chỉ CA của ứng dụng ở định dạng Pf.
key Đường dẫn đến tệp ca.key (ở định dạng PEM).
passphrase Một chuỗi ký tự chứa cụm mật khẩu cho khoá cá nhân hoặc PFX.
cert Đường dẫn đến tệp ca.cert (ở định dạng PEM).
ca Đường dẫn đến một tệp chứa danh sách các chứng chỉ đáng tin cậy ở định dạng PEM.
ciphers Một chuỗi mô tả thuật toán mật mã cần sử dụng được phân tách bằng dấu ":".
rejectUnauthorized Nếu đúng, chứng chỉ máy chủ sẽ được xác minh dựa vào danh sách CA đã cung cấp. Nếu xác minh không thành công, hệ thống sẽ trả về một lỗi.
secureProtocol Phương thức SSL mà bạn nên sử dụng. Ví dụ: SSLv3_method để buộc SSL thành phiên bản 3.
servername Tên máy chủ cho tiện ích TLS (Chỉ báo tên máy chủ) SNI.

Tuỳ chỉnh proxy Edgemicro-auth

Theo mặc định, Edge Microgateway sử dụng một proxy được triển khai trên Apigee Edge để xác thực OAuth2. Proxy này được triển khai khi bạn chạy edgemicro configure lần đầu. Bạn có thể thay đổi cấu hình mặc định của proxy này để thêm tính năng hỗ trợ cho các thông báo xác nhận quyền sở hữu tuỳ chỉnh đối với một Mã thông báo web JSON (JWT), định cấu hình thời hạn của mã thông báo và tạo mã làm mới. Để biết thông tin chi tiết, hãy xem trang edgemicro-auth trên GitHub.

Sử dụng dịch vụ xác thực tuỳ chỉnh

Theo mặc định, Edge Microgateway sử dụng một proxy được triển khai trên Apigee Edge để xác thực OAuth2. Proxy này được triển khai khi bạn chạy edgemicro configure lần đầu. Theo mặc định, URL của proxy này được chỉ định trong tệp cấu hình Edge Microgateway như sau:

authUri: https://myorg-myenv.apigee.net/edgemicro-auth

Nếu bạn muốn sử dụng dịch vụ tuỳ chỉnh của riêng mình để xử lý việc xác thực, hãy thay đổi giá trị authUri trong tệp cấu hình để trỏ đến dịch vụ của bạn. Ví dụ: bạn có thể có một dịch vụ sử dụng LDAP để xác minh danh tính.

Quản lý tệp nhật ký

Edge Microgateway ghi lại thông tin về từng yêu cầu và phản hồi. Tệp nhật ký cung cấp thông tin hữu ích để gỡ lỗi và khắc phục sự cố.

Nơi lưu trữ tệp nhật ký

Theo mặc định, các tệp nhật ký được lưu trữ trong /var/tmp.

Cách thay đổi thư mục tệp nhật ký mặc định

Thư mục lưu trữ các tệp nhật ký được chỉ định trong tệp cấu hình Edge Microgateway. Xem thêm phần Thực hiện thay đổi về cấu hình.

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

Thay đổi giá trị dir để chỉ định một thư mục tệp nhật ký khác.

Gửi nhật ký đến bảng điều khiển

Bạn có thể định cấu hình tính năng ghi nhật ký để thông tin nhật ký được gửi đến đầu ra chuẩn thay vì đến tệp nhật ký. Hãy đặt cờ to_console thành true như sau:

edgemicro:
  logging:
    to_console: true

Với chế độ cài đặt này, nhật ký sẽ được gửi sang định dạng khác. Hiện tại, bạn không thể gửi nhật ký đến cả stdout và tệp nhật ký.

Cách đặt cấp độ ghi nhật ký

Bạn chỉ định cấp độ nhật ký để sử dụng trong cấu hình edgemicro. Để xem danh sách đầy đủ các cấp độ nhật ký và nội dung mô tả tương ứng, hãy xem thuộc tính Edgemicro.

Ví dụ: cấu hình sau đây đặt cấp độ ghi nhật ký thành 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

Cách thay đổi khoảng thời gian ghi nhật ký

Bạn có thể định cấu hình các khoảng thời gian này trong tệp cấu hình Edge Microgateway. Xem thêm Thực hiện thay đổi cấu hình.

Các thuộc tính có thể định cấu hình là:

  • stats_log_interval: (mặc định: 60) Khoảng thời gian, tính bằng giây, khi bản ghi số liệu thống kê được ghi vào tệp nhật ký API.
  • rotate_interval: (mặc định: 24) Khoảng thời gian, tính bằng giờ, khi các tệp nhật ký được xoay. Ví dụ:
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

Cách giảm thiểu các quyền nghiêm ngặt đối với tệp nhật ký

Theo mặc định, Edge Microgateway tạo tệp nhật ký ứng dụng (api-log.log) với cấp độ quyền truy cập tệp được đặt thành 0600. Cấp độ quyền này không cho phép người dùng hoặc ứng dụng bên ngoài đọc tệp nhật ký. Để nới lỏng cấp độ quyền nghiêm ngặt này, hãy đặt logging:disableStrictLogFile thành true. Khi thuộc tính này là true, tệp nhật ký sẽ được tạo với quyền đối với tệp được đặt thành 0755. Nếu false hoặc nếu thuộc tính này không được cung cấp thì quyền mặc định sẽ là 0600.

Đã thêm vào phiên bản 3.2.3.

Ví dụ:

edgemicro:
 logging:
   disableStrictLogFile: true

Các phương pháp bảo trì tốt cho tệp nhật ký

Vì dữ liệu tệp nhật ký tích luỹ theo thời gian, Apigee khuyên bạn nên áp dụng các phương pháp sau:

  • Vì tệp nhật ký có thể khá lớn, hãy đảm bảo rằng thư mục tệp nhật ký có đủ dung lượng. Xem các phần sau đây Nơi lưu trữ tệp nhật kýCách thay đổi thư mục tệp nhật ký mặc định.
  • Xoá hoặc di chuyển tệp nhật ký sang thư mục lưu trữ riêng ít nhất một lần mỗi tuần.
  • Nếu chính sách của bạn là xoá nhật ký, thì bạn có thể dùng lệnh CLI edgemicro log -c để xoá (dọn dẹp) nhật ký cũ hơn.

Quy ước đặt tên tệp nhật ký

Mỗi thực thể của Edge Microgateway tạo một tệp nhật ký có đuôi .log. Quy ước đặt tên cho tệp nhật ký như sau:

edgemicro-HOST_NAME-INSTANCE_ID-api.log

Ví dụ:

edgemicro-mymachine-local-MTQzNTgNDMxODAyMQ-api.log

Giới thiệu về nội dung của tệp nhật ký

Đã thêm vào: phiên bản 2.3.3

Theo mặc định, dịch vụ ghi nhật ký sẽ bỏ qua JSON của các proxy, sản phẩm đã tải xuống và Mã thông báo web JSON (JWT). Nếu bạn muốn xuất các đối tượng này sang bảng điều khiển, hãy đặt cờ dòng lệnh DEBUG=* khi khởi động Edge Microgateway. Ví dụ:

DEBUG=* edgemicro start -o docs -e test -k abc123 -s xyz456

Nội dung của tệp nhật ký "api"

Tệp nhật ký "api" chứa thông tin chi tiết về luồng yêu cầu và phản hồi thông qua Edge Microgateway. Tệp nhật ký "api" được đặt tên như sau:

edgemicro-mymachine-local-MTQzNjIxOTk0NzY0Nw-api.log

Đối với mỗi yêu cầu được gửi đến Edge Microgateway, 4 sự kiện sẽ được ghi lại trong tệp nhật ký "api":

  • Yêu cầu đến từ ứng dụng
  • Đã gửi yêu cầu đến mục tiêu
  • Phản hồi đến từ mục tiêu
  • Phản hồi đi cho ứng dụng

Mỗi mục nhập riêng biệt này được biểu thị bằng một ký hiệu viết tắt để giúp các tệp nhật ký gọn gàng hơn. Dưới đây là bốn mục nhập mẫu đại diện cho từng sự kiện trong số bốn sự kiện. Trong tệp nhật ký, các số này sẽ có dạng như sau (số dòng chỉ để tham khảo trong tài liệu và không xuất hiện trong tệp nhật ký).

(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

Hãy cùng xem xét từng ví dụ:

1. Mẫu về yêu cầu đến từ ứng dụng:

1436403888651 info req m=GET, u=/, h=localhost:8000, r=::1:59715, i=0
  • 1436403888651 – Dấu ngày Unix
  • thông tin – Cấp độ ghi nhật ký. Giá trị này phụ thuộc vào ngữ cảnh của giao dịch và cấp độ ghi nhật ký được đặt trong cấu hình edgemicro. Xem Cách đặt cấp độ ghi nhật ký. Đối với bản ghi số liệu thống kê, cấp độ được đặt thành stats. Các bản ghi số liệu thống kê được báo cáo theo một khoảng thời gian thông thường được thiết lập bằng cấu hình stats_log_interval. Xem thêm Cách thay đổi khoảng thời gian nhật ký.
  • req – Xác định sự kiện. Trong trường hợp này, hãy yêu cầu ứng dụng.
  • m – Động từ HTTP dùng trong yêu cầu.
  • u – Phần của URL đi theo đường dẫn cơ sở.
  • h – Số máy chủ và số cổng mà Edge Microgateway đang nghe.
  • r – Máy chủ lưu trữ và cổng từ xa nơi phát sinh yêu cầu ứng dụng.
  • i – Mã yêu cầu. Cả 4 mục sự kiện sẽ có chung mã này. Mỗi yêu cầu được gán một mã yêu cầu duy nhất. Việc tương quan các bản ghi nhật ký theo mã yêu cầu có thể cung cấp thông tin chi tiết có giá trị về độ trễ của mục tiêu.
  • d – Thời lượng tính bằng mili giây kể từ khi Edge Microgateway nhận yêu cầu. Trong ví dụ trên, phản hồi của mục tiêu cho yêu cầu 0 được nhận sau 7 mili giây (dòng 3) và phản hồi được gửi đến ứng dụng sau 4 mili giây nữa (dòng 4). Nói cách khác, tổng độ trễ của yêu cầu là 11 mili giây, trong đó, mục tiêu sử dụng 7 mili giây và đích là 4 mili giây do chính Edge Microgateway thực hiện.

2. Ví dụ về yêu cầu gửi đi được gửi đến mục tiêu:

1436403888665 info treq m=GET, u=/, h=127.0.0.1:8080, i=0
  • 1436403888651 – Dấu ngày Unix
  • thông tin – Cấp độ ghi nhật ký. Giá trị này phụ thuộc vào ngữ cảnh của giao dịch và cấp độ ghi nhật ký được đặt trong cấu hình edgemicro. Xem Cách đặt cấp độ ghi nhật ký. Đối với bản ghi số liệu thống kê, cấp độ được đặt thành stats. Các bản ghi số liệu thống kê được báo cáo theo một khoảng thời gian thông thường được thiết lập bằng cấu hình stats_log_interval. Xem thêm Cách thay đổi khoảng thời gian nhật ký.
  • treq – Xác định sự kiện. Trong trường hợp này, hãy nhắm mục tiêu yêu cầu.
  • m – Động từ HTTP dùng trong yêu cầu mục tiêu.
  • u – Phần của URL đi theo đường dẫn cơ sở.
  • h – Số máy chủ và số cổng của mục tiêu phụ trợ.
  • i – Mã của mục nhập nhật ký. Cả 4 mục sự kiện sẽ có chung mã này.

3. Mẫu phản hồi đến từ mục tiêu

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

1436403888651 – Dấu ngày Unix

  • thông tin – Cấp độ ghi nhật ký. Giá trị này phụ thuộc vào ngữ cảnh của giao dịch và cấp độ ghi nhật ký được đặt trong cấu hình edgemicro. Xem Cách đặt cấp độ ghi nhật ký. Đối với bản ghi số liệu thống kê, cấp độ được đặt thành stats. Các bản ghi số liệu thống kê được báo cáo theo một khoảng thời gian thông thường được thiết lập bằng cấu hình stats_log_interval. Xem thêm Cách thay đổi khoảng thời gian nhật ký.
  • tres – Xác định sự kiện. Trong trường hợp này, hãy chọn mục tiêu phản hồi.
  • s – Trạng thái phản hồi HTTP.
  • d – Thời lượng tính bằng mili giây. Thời gian mà mục tiêu cần để thực hiện lệnh gọi API.
  • i – Mã của mục nhập nhật ký. Cả 4 mục sự kiện sẽ có chung mã này.

4. Ví dụ về phản hồi gửi đi cho khách hàng

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

1436403888651 – Dấu ngày Unix

  • thông tin – Cấp độ ghi nhật ký. Giá trị này phụ thuộc vào ngữ cảnh của giao dịch và cấp độ ghi nhật ký được đặt trong cấu hình edgemicro. Xem Cách đặt cấp độ ghi nhật ký. Đối với bản ghi số liệu thống kê, cấp độ được đặt thành stats. Các bản ghi số liệu thống kê được báo cáo theo một khoảng thời gian thông thường được thiết lập bằng cấu hình stats_log_interval. Xem thêm Cách thay đổi khoảng thời gian nhật ký.
  • res – Xác định sự kiện. Trong trường hợp này, hãy phản hồi ứng dụng.
  • s – Trạng thái phản hồi HTTP.
  • d – Thời lượng tính bằng mili giây. Đây là tổng thời gian mà lệnh gọi API sử dụng, bao gồm cả thời gian mà API mục tiêu sử dụng và thời gian của chính Edge Microgateway.
  • i – Mã của mục nhập nhật ký. Cả 4 mục sự kiện sẽ có chung mã này.

Lịch biểu tệp nhật ký

Các tệp nhật ký được xoay vòng theo khoảng thời gian do thuộc tính cấu hình rotate_interval chỉ định. Các mục nhập sẽ tiếp tục được thêm vào cùng một tệp nhật ký cho đến khi hết khoảng thời gian xoay. Tuy nhiên, mỗi lần khởi động lại, Edge Microgateway sẽ nhận được một UID mới và tạo một tập hợp tệp nhật ký mới bằng UID này. Xem thêm Các phương pháp bảo trì tốt tệp nhật ký.

Thông báo lỗi

Một số mục nhập nhật ký sẽ chứa thông báo lỗi. Để giúp xác định vị trí và nguyên nhân xảy ra lỗi, hãy xem Tài liệu tham khảo về lỗi Edge Microgateway.

Tài liệu tham khảo về cấu hình Microgateway của Edge

Vị trí của tệp cấu hình

Các thuộc tính cấu hình được mô tả trong phần này nằm trong tệp cấu hình Edge Microgateway. Xem thêm phần Thực hiện thay đổi về cấu hình.

thuộc tính Edge_config

Các chế độ cài đặt này dùng để định cấu hình hoạt động tương tác giữa thực thể Edge Microgateway và Apigee Edge.

  • bootstrap: (mặc định: không có) Một URL trỏ đến một dịch vụ dành riêng cho Microgateway và đang chạy trên Apigee Edge. Edge Microgateway sử dụng dịch vụ này để giao tiếp với Apigee Edge. URL này được trả về khi bạn thực thi lệnh tạo cặp khoá công khai/riêng tư: edgemicro genkeys. Xem bài viết Thiết lập và định cấu hình Edge Microgateway để biết thông tin chi tiết.
  • jwt_public_key: (mặc định: không có) URL trỏ đến proxy Microgateway của Edge đã được triển khai trên Apigee Edge. Proxy này đóng vai trò là điểm cuối xác thực để cấp mã truy cập đã ký cho các ứng dụng. URL này được trả về khi bạn thực thi lệnh để triển khai proxy: edgemicro cấu hình. Xem bài viết Thiết lập và định cấu hình Edge Microgateway để biết thông tin chi tiết.
  • quotaUri: Đặt thuộc tính cấu hình này nếu bạn muốn quản lý hạn mức thông qua proxy edgemicro-auth được triển khai cho tổ chức của bạn. Nếu bạn không đặt thuộc tính này, điểm cuối hạn mức sẽ mặc định là điểm cuối Edge Microgateway nội bộ.
    edge_config:
      quotaUri: https://your_org-your_env.apigee.net/edgemicro-auth
    

thuộc tính Edgemicro

Các chế độ cài đặt này định cấu hình quy trình Edge Microgateway.

  • port: (mặc định: 8000) Số cổng mà quy trình Edge Microgateway nghe.
  • max_connections: (mặc định: -1) Chỉ định số lượng tối đa kết nối đến đồng thời mà Edge Microgateway có thể nhận được. Nếu vượt quá con số này, hệ thống sẽ trả về trạng thái sau:

    res.statusCode = 429; // Too many requests
  • max_connections_hard: (mặc định: -1) Số yêu cầu đồng thời tối đa mà Edge Microgateway có thể nhận được trước khi tắt kết nối. Chế độ cài đặt này nhằm ngăn chặn các cuộc tấn công từ chối dịch vụ. Thông thường, hãy đặt thuộc tính này thành một số lớn hơn max_connections.
  • ghi nhật ký:
    • level: (mặc định: lỗi)
      • info – (Nên dùng) Ghi nhật ký tất cả các yêu cầu và phản hồi chuyển qua một thực thể Edge Microgateway.
      • warn – Chỉ ghi nhật ký các thông báo cảnh báo.
      • error - Chỉ ghi nhật ký thông báo lỗi.
      • debug – Ghi nhật ký các thông báo gỡ lỗi cùng với thông tin, cảnh báo và thông báo lỗi.
      • trace – Ghi nhật ký thông tin theo dõi lỗi cùng với thông tin, cảnh báo và thông báo lỗi.
      • none – Không tạo tệp nhật ký.
    • dir: (mặc định: /var/tmp) Thư mục lưu trữ các tệp nhật ký.
    • stats_log_interval: (mặc định: 60) Khoảng thời gian, tính bằng giây, khi bản ghi số liệu thống kê được ghi vào tệp nhật ký API.
    • rotate_interval: (mặc định: 24) Khoảng thời gian, tính bằng giờ, khi các tệp nhật ký được xoay.
  • Plugins (Trình bổ trợ): Các trình bổ trợ giúp thêm chức năng vào Edge Microgateway. Để biết thông tin chi tiết về cách phát triển trình bổ trợ, hãy xem phần Phát triển trình bổ trợ tuỳ chỉnh.
  • dir: Đường dẫn tương đối từ thư mục ./gateway đến thư mục ./plugins hoặc một đường dẫn tuyệt đối.
  • sequence (trình tự): Danh sách các mô-đun trình bổ trợ cần thêm vào thực thể Edge Microgateway. Các mô-đun sẽ thực thi theo thứ tự được chỉ định tại đây.
  • debug: Thêm gỡ lỗi từ xa vào quy trình Edge Microgateway.
    • cổng: Số cổng để nghe. Ví dụ: đặt trình gỡ lỗi IDE để nghe trên cổng này.
    • args: Đối số cho quá trình gỡ lỗi. Ví dụ: args --nolazy
  • config_change_poll_interval: (mặc định: 600 giây) Edge Microgateway tải một cấu hình mới theo định kỳ và thực thi tải lại nếu có gì thay đổi. Cuộc thăm dò ý kiến chọn mọi thay đổi được thực hiện trên Edge (thay đổi đối với sản phẩm, proxy nhận biết cổng vào vi mô, v.v.) cũng như các thay đổi đối với tệp cấu hình cục bộ.
  • disable_config_poll_interval: (mặc định: false) Đặt thành true để tắt tính năng tự động thăm dò ý kiến thay đổi.
  • request_timeout: Đặt thời gian chờ cho các yêu cầu mục tiêu. Thời gian chờ được đặt tính bằng giây. Nếu hết thời gian chờ, Edge Microgateway sẽ phản hồi bằng mã trạng thái 504. (Đã thêm phiên bản 2.4.x)
  • keep_alive_timeout: Thuộc tính này cho phép bạn đặt thời gian chờ của Edge Microgateway (tính bằng mili giây). (Mặc định: 5 giây) (Đã thêm v3.0.6)
  • headers_timeout: Thuộc tính này giới hạn khoảng thời gian (tính bằng mili giây) mà trình phân tích cú pháp HTTP sẽ chờ để nhận được các tiêu đề HTTP hoàn chỉnh.

    Ví dụ:

    edgemicro:
      keep_alive_timeout: 6000
      headers_timeout: 12000

    Trong nội bộ, tham số này sẽ đặt thuộc tính Node.js Server.headersTimeout theo các yêu cầu. (Mặc định: Nhiều hơn 5 giây so với thời gian đã đặt bằng edgemicro.keep_alive_timeout. Chế độ cài đặt mặc định này ngăn trình cân bằng tải hoặc proxy xoá kết nối nhầm.) (Đã thêm phiên bản 3.1.1)

  • noRuleMatchAction: (Chuỗi) Hành động cần thực hiện (cho phép hoặc từ chối quyền truy cập) nếu quy tắc so khớp được chỉ định trong trình bổ trợ accesscontrol chưa được phân giải (không khớp). Giá trị hợp lệ: ALLOW hoặc DENY Mặc định: ALLOW (Đã thêm: phiên bản 3.1.7)
  • enableAnalytics: (mặc định: đúng) Đặt thuộc tính thành false để ngăn trình bổ trợ phân tích tải được. Trong trường hợp này, chúng tôi sẽ không thực hiện lệnh gọi đến số liệu phân tích của Apigee Edge. Nếu bạn đặt thành true hoặc khi thuộc tính này không được cung cấp, thì trình bổ trợ phân tích sẽ hoạt động như bình thường. Xem các thuộc tính Edgemicro để biết thông tin chi tiết. (Đã thêm phiên bản 3.1.8).

    Ví dụ:

    edgemicro
      enableAnalytics=false|true
  • on_target_response_abort: Thuộc tính này cho phép bạn kiểm soát cách hoạt động của Edge Microgateway nếu kết nối giữa ứng dụng (Edge Microgateway) và máy chủ mục tiêu đóng sớm.
    Giá trị Nội dung mô tả
    Mặc định Nếu bạn không chỉ định on_target_response_abort, thì hành vi mặc định sẽ cắt bớt phản hồi mà không hiển thị lỗi. Trong các tệp nhật ký, một thông báo cảnh báo sẽ xuất hiện với targetResponse aborted và mã phản hồi 502.
    appendErrorToClientResponseBody Lỗi tuỳ chỉnh TargetResponseAborted sẽ được trả về ứng dụng. Trong các tệp nhật ký, một thông báo cảnh báo sẽ xuất hiện với targetResponse aborted và mã phản hồi 502. Ngoài ra, lỗi TargetResponseAborted được ghi lại bằng thông báo Target response ended prematurely.
    abortClientRequest Edge Microgateway huỷ yêu cầu và một cảnh báo sẽ được ghi vào tệp nhật ký: TargetResponseAborted kèm theo mã trạng thái yêu cầu 502.

Ví dụ:

edgemicro:
 on_target_response_abort: appendErrorToClientResponseBody | abortClientRequest

thuộc tính tiêu đề

Các chế độ cài đặt này định cấu hình cách xử lý một số tiêu đề HTTP nhất định.

  • x-forwarded-for: (mặc định: true) Đặt thành false để ngăn truyền tiêu đề x-forwarded-for đến mục tiêu. Xin lưu ý rằng nếu một tiêu đề được chuyển tiếp x cho có trong yêu cầu, thì giá trị của tiêu đề đó sẽ được đặt thành giá trị client-ip trong Edge Analytics.
  • x-forwarded-host: (mặc định: đúng) Đặt thành false để ngăn truyền tiêu đề x-forwarded-host đến mục tiêu.
  • x-request-id: (mặc định: true) Đặt thành false để ngăn truyền tiêu đề x-request-id tới mục tiêu.
  • x-response-time: (mặc định: true) Đặt thành false để ngăn truyền tiêu đề x-response-time tới mục tiêu.
  • via: (mặc định: đúng) Đặt thành false để ngăn việc truyền tiêu đề đến mục tiêu qua tiêu đề.

Các thuộc tính OAuth

Các chế độ cài đặt này định cấu hình cách xác thực ứng dụng bằng Edge Microgateway.

  • allowNoAuthorization: (mặc định: false) Nếu bạn đặt chính sách này thành true, thì các lệnh gọi API sẽ hoàn toàn được phép truyền qua Edge Microgateway mà không cần tiêu đề Uỷ quyền nào. Đặt giá trị này thành false để yêu cầu tiêu đề Uỷ quyền (mặc định).
  • allowInvalidAuthorization: (mặc định: false) Nếu đặt thành true, thì các lệnh gọi API sẽ được phép truyền nếu mã thông báo được chuyển vào tiêu đề Uỷ quyền không hợp lệ hoặc đã hết hạn. Đặt thuộc tính này thành false để yêu cầu mã thông báo hợp lệ (mặc định).
  • uỷ quyền-header: (mặc định: Uỷ quyền: Mang đến) Tiêu đề dùng để gửi mã truy cập tới Edge Microgateway. Bạn nên thay đổi giá trị mặc định trong trường hợp mục tiêu cần sử dụng tiêu đề Uỷ quyền cho một số mục đích khác.
  • api-key-header: (mặc định: x-api-key) Tên của tiêu đề hoặc tham số truy vấn dùng để truyền khoá API đến Edge Microgateway. Hãy xem thêm phần Sử dụng khoá API.
  • keep-authorized-header: (mặc định: false) Nếu bạn đặt thành true, thì tiêu đề Uỷ quyền được gửi trong yêu cầu sẽ được chuyển tới mục tiêu (được giữ nguyên).
  • allowOAuthOnly -- Nếu đặt thành true, mọi API phải mang tiêu đề Uỷ quyền với Mã truy cập mang tên. Cho phép bạn chỉ cho phép mô hình bảo mật OAuth (trong khi vẫn duy trì khả năng tương thích ngược). (Đã thêm phiên bản 2.4.x)
  • allowAPIKeyOnly – Nếu đặt thành true, mọi API phải mang tiêu đề x-api-key (hoặc một vị trí tuỳ chỉnh) có Khoá API.Cho phép bạn chỉ cho phép mô hình bảo mật khoá API (trong khi vẫn duy trì khả năng tương thích ngược). (Đã thêm phiên bản 2.4.x)
  • gracePeriod – Thông số này giúp ngăn chặn các lỗi do đồng hồ hệ thống có sự chênh lệch nhỏ so với thời gian Không được phát hành (nbf) hoặc Lúc (iat) được chỉ định trong mã thông báo uỷ quyền JWT. Hãy đặt thông số này thành số giây để cho phép cho những khác biệt như vậy. (Đã thêm 2.5.7)

Thuộc tính dành riêng cho trình bổ trợ

Xem Sử dụng trình bổ trợ để biết chi tiết về các thuộc tính có thể định cấu hình cho mỗi trình bổ trợ.

Lọc proxy

Bạn có thể lọc những proxy nhận biết cổng vi mô mà một thực thể Edge Microgateway sẽ xử lý. Khi Edge Microgateway khởi động, dịch vụ này sẽ tải tất cả các proxy nhận biết cổng vào ra trong tổ chức liên kết với Edge Microgateway. Sử dụng cấu hình sau để giới hạn những proxy nào mà cổng vào vi mô sẽ xử lý. Ví dụ: cấu hình này giới hạn các proxy mà cổng vào vi mô sẽ xử lý là ba: edgemicro_proxy-1, edgemicro_proxy-2edgemicro_proxy-3:

edgemicro:
  proxies:
  - edgemicro_proxy-1
  - edgemicro_proxy-2
  - edgemicro_proxy-3

Lọc sản phẩm theo tên

Sử dụng cấu hình sau để giới hạn số lượng sản phẩm API mà Edge Microgateway tải xuống và xử lý. Để lọc các sản phẩm đã tải xuống, hãy thêm tham số truy vấn productnamefilter vào API /products được liệt kê trong tệp Edge Microgateway *.config.yaml. Ví dụ:

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'

Xin lưu ý rằng bạn phải chỉ định giá trị của tham số truy vấn theo định dạng biểu thức chính quy và mã hoá URL. Ví dụ: biểu thức chính quy ^[Ee]dgemicro.*$ tìm các tên như: "edgemicro-test-1" , "edgemicro_demo" và "Edgemicro_New_demo". Giá trị được mã hoá của URL (phù hợp để sử dụng trong tham số truy vấn) là: %5E%5BEe%5Ddgemicro.%2A%24.

Kết quả gỡ lỗi sau đây cho thấy rằng chỉ những sản phẩm đã lọc mới được tải xuống:

...
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":[

         ]
      }
   ]
}

Lọc sản phẩm theo thuộc tính tùy chỉnh

Cách lọc sản phẩm dựa trên thuộc tính tuỳ chỉnh:

  1. Trong giao diện người dùng Edge, hãy chọn proxy edgemicro_auth trong tổ chức/môi trường mà bạn đã định cấu hình Edge Microgateway.
  2. Trong mục Chạm Phát triển, hãy mở chính sách JavaAnnotation trong trình chỉnh sửa.
  3. Thêm thuộc tính tuỳ chỉnh bằng khoá products.filter.attributes thông qua danh sách các tên thuộc tính được phân tách bằng dấu phẩy. Chỉ những sản phẩm có chứa tên thuộc tính tuỳ chỉnh bất kỳ mới được trả về Edge Microgateway.
  4. Bạn có thể tuỳ ý tắt yêu cầu kiểm tra để xem sản phẩm đã được bật cho môi trường hiện tại hay chưa bằng cách đặt thuộc tính tuỳ chỉnh products.filter.env.enable thành false. (Mặc định là đúng.)
  5. (Chỉ dành cho đám mây riêng tư) Nếu bạn đang sử dụng Edge cho Đám mây riêng tư, hãy đặt thuộc tính org.noncps thành true để lấy sản phẩm cho các môi trường không phải CPS.
  6. Ví dụ:

    <?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>
    

Định cấu hình tần suất đẩy số liệu phân tích

Sử dụng các tham số cấu hình sau để kiểm soát tần suất mà Edge Microgateway gửi dữ liệu phân tích cho Apigee:

  • bufferSize (Không bắt buộc): Số lượng bản ghi phân tích tối đa mà bộ đệm có thể lưu trước khi bắt đầu bỏ các bản ghi cũ nhất. Mặc định: 10000
  • batchSize (Không bắt buộc): Kích thước tối đa của một lô bản ghi phân tích được gửi đến Apigee. Mặc định: 500
  • flushInterval (Không bắt buộc): Số mili giây giữa mỗi lần xả của một loạt bản ghi phân tích đã gửi đến Apigee. Mặc định: 5000

Ví dụ:

analytics:
  bufferSize: 15000
  batchSize: 1000
  flushInterval: 6000

Che dữ liệu phân tích

Cấu hình sau đây ngăn thông tin về đường dẫn của yêu cầu xuất hiện trong công cụ phân tích Edge. Thêm phần sau vào cấu hình cổng vào vi mô để che giấu URI yêu cầu và/hoặc đường dẫn yêu cầu. Xin lưu ý rằng URI bao gồm phần tên máy chủ và đường dẫn của yêu cầu.

analytics:
  mask_request_uri: 'string_to_mask'
  mask_request_path: 'string_to_mask'

Tách biệt lệnh gọi API trong Edge Analytics

Bạn có thể định cấu hình trình bổ trợ phân tích để tách riêng một đường dẫn API cụ thể sao cho đường dẫn đó xuất hiện dưới dạng một proxy riêng trong trang tổng quan của Edge Analytics. Ví dụ: bạn có thể tách riêng một API kiểm tra tình trạng trong trang tổng quan để tránh nhầm lẫn API này với các lệnh gọi proxy API thực tế. Trong trang tổng quan Analytics, các proxy phân tách sẽ tuân theo mẫu đặt tên sau:

edgemicro_proxyname-health

Hình ảnh sau đây cho thấy hai proxy riêng biệt trong trang tổng quan Analytics: edgemicro_hello-healthedgemicro_mock-health:

Hãy sử dụng các tham số này để tách riêng đường dẫn tương đối và tuyệt đối trong trang tổng quan Analytics dưới dạng các proxy riêng biệt:

  • relativePath (Không bắt buộc): Chỉ định một đường dẫn tương đối để phân tách trong trang tổng quan Analytics. Ví dụ: nếu bạn chỉ định /healthcheck, thì mọi lệnh gọi API chứa đường dẫn /healthcheck sẽ xuất hiện trong trang tổng quan dưới dạng edgemicro_proxyname-health. Lưu ý rằng cờ này bỏ qua đường dẫn cơ sở proxy. Để phân tách dựa trên một đường dẫn đầy đủ, bao gồm cả đường dẫn cơ sở, hãy sử dụng cờ proxyPath.
  • proxyPath (Không bắt buộc): Chỉ định một đường dẫn proxy API đầy đủ, bao gồm đường dẫn cơ sở proxy, để phân tách trong trang tổng quan về số liệu phân tích. Ví dụ: nếu bạn chỉ định /mocktarget/healthcheck, trong đó /mocktarget là đường dẫn cơ sở proxy, thì tất cả lệnh gọi API có đường dẫn /mocktarget/healthcheck sẽ xuất hiện trong trang tổng quan dưới dạng edgemicro_proxyname-health.

Ví dụ: trong cấu hình sau, mọi đường dẫn API chứa /healthcheck sẽ được phân tách theo trình bổ trợ phân tích. Tức là /foo/healthcheck/foo/bar/healthcheck sẽ được tách thành một proxy riêng có tên là edgemicro_proxyname-health trên trang tổng quan về số liệu phân tích.

analytics:
  uri: >-
    https://xx/edgemicro/ax/org/docs/environment/test
  bufferSize: 100
  batchSize: 50
  flushInterval: 500
  relativePath: /healthcheck

Trong cấu hình sau, mọi API có đường dẫn proxy /mocktarget/healthcheck sẽ được phân tách thành một proxy riêng có tên là edgemicro_proxyname-health trong trang tổng quan về số liệu phân tích.

analytics:
  uri: >-
    https://xx/edgemicro/ax/org/docs/environment/test
  bufferSize: 100
  batchSize: 50
  flushInterval: 500
  proxyPath: /mocktarget/healthcheck

Thiết lập Edge Microgateway sau tường lửa của công ty

Sử dụng proxy HTTP để giao tiếp với Apigee Edge

Đã thêm vào phiên bản 3.1.2.

Để dùng một proxy HTTP cho việc giao tiếp giữa Edge Microgateway và Apigee Edge, hãy làm như sau:

  1. Thiết lập các biến môi trường HTTP_PROXY, HTTPS_PROXYNO_PROXY. Các biến này kiểm soát máy chủ lưu trữ đối với từng proxy HTTP mà bạn muốn dùng để giao tiếp với Apigee Edge hoặc máy chủ không nên giao tiếp với Apigee Edge. Ví dụ:
    export HTTP_PROXY='http://localhost:3786'
    export HTTPS_PROXY='https://localhost:3786'
    export NO_PROXY='localhost,localhost:8080'

    Xin lưu ý rằng NO_PROXY có thể là một danh sách các miền được phân tách bằng dấu phẩy mà Edge Microgateway không nên proxy.

    Để biết thêm thông tin về các biến này, hãy tham khảo https://www.npmjs.com/package/request#controlling-proxy-behaviour-using-environment-variables

  2. Khởi động lại Edge Microgateway.

Sử dụng proxy HTTP để giao tiếp mục tiêu

Đã thêm vào phiên bản 3.1.2.

Để dùng proxy HTTP cho việc giao tiếp giữa Edge Microgateway và các đích phụ trợ, hãy làm như sau:

  1. Thêm cấu hình sau vào tệp cấu hình microgateway:
    edgemicro:
      proxy:
        tunnel: true | false
        url: proxy_url
        bypass: target_host # target hosts to bypass the proxy.
        enabled: true | false

    Trong trường hợp:

    • tunnel: (Không bắt buộc) Khi giá trị là true, Edge Microgateway sử dụng phương thức HTTP CONNECT để tạo đường hầm các yêu cầu HTTP qua một kết nối TCP. (Tương tự như vậy nếu các biến môi trường, như đề cập dưới đây, để định cấu hình proxy đều bật TLS). Mặc định: false
    • url: URL proxy HTTP.
    • bỏ qua: (Không bắt buộc) Chỉ định một hoặc nhiều URL máy chủ lưu trữ đích được phân tách bằng dấu phẩy sẽ bỏ qua proxy HTTP. Nếu bạn không đặt thuộc tính này, hãy sử dụng biến môi trường NO_PROXY để chỉ định những URL mục tiêu cần bỏ qua.
    • enabled (bật): Nếu bạn đặt giá trị true và proxy.url, hãy sử dụng giá trị proxy.url cho proxy HTTP. Nếu bạn đặt giá trị true và proxy.url, hãy sử dụng các proxy được chỉ định trong các biến môi trường proxy HTTP HTTP_PROXYHTTPS_PROXY, như mô tả trong phần Sử dụng proxy HTTP để giao tiếp với Apigee Edge.

    Ví dụ:

    edgemicro:
      proxy:
        tunnel: true
        url: 'http://localhost:3786'
        bypass: 'localhost','localhost:8080' # target hosts to bypass the proxy.
        enabled: true

  2. Khởi động lại Edge Microgateway.

Sử dụng ký tự đại diện trong các proxy nhận biết vi cổng

Bạn có thể sử dụng một hoặc nhiều ký tự đại diện "*" trong đường dẫn cơ sở của một proxy edgemicro_* (có khả năng nhận biết cổng vào). Ví dụ: đường dẫn cơ sở của /team/*/members cho phép khách hàng gọi https://[host]/team/blue/membershttps://[host]/team/green/members mà không cần tạo proxy API mới để hỗ trợ các nhóm mới. Xin lưu ý rằng /**/ không được hỗ trợ.

Lưu ý quan trọng: Apigee KHÔNG hỗ trợ việc sử dụng ký tự đại diện "*" làm thành phần đầu tiên của đường dẫn cơ sở. Ví dụ: thuộc tính này KHÔNG được hỗ trợ: tìm kiếm /*/.

Xoay các phím JWT

Tại một thời điểm nào đó sau khi tạo JWT lần đầu, bạn có thể cần thay đổi cặp khoá công khai/riêng tư lưu trữ trong KVM được mã hoá Edge. Quá trình tạo một cặp khoá mới này được gọi là xoay vòng khoá.

Cách Edge Microgateway sử dụng JWT

Mã thông báo web JSON (JWT) là một tiêu chuẩn mã thông báo được mô tả trong RFC7519. JWT cung cấp một cách để ký một tập hợp các thông báo xác nhận quyền sở hữu mà người nhận JWT có thể xác minh một cách đáng tin cậy.

Bạn có thể tạo một JWT bằng CLI và sử dụng JWT trong tiêu đề Uỷ quyền của lệnh gọi API thay vì khoá API. Ví dụ:

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

Để biết thông tin về cách tạo JWT bằng CLI, hãy xem phần Tạo mã thông báo.

Xoay vòng khoá là gì?

Tại một thời điểm nào đó sau khi tạo JWT lần đầu, bạn có thể cần thay đổi cặp khoá công khai/riêng tư lưu trữ trong KVM được mã hoá Edge. Quá trình tạo một cặp khoá mới này được gọi là xoay vòng khoá. Khi bạn xoay vòng khoá, một cặp khoá riêng tư/công khai mới sẽ được tạo và lưu trữ trong KVM "cửa cổng nhỏ" trong tổ chức/môi trường Apigee Edge của bạn. Ngoài ra, khoá công khai cũ sẽ được giữ lại cùng với giá trị mã nhận dạng khoá ban đầu.

Để tạo JWT, Edge sử dụng thông tin lưu trữ trong KVM đã mã hoá. Một KVM có tên là microgateway đã được tạo và điền sẵn bằng các khoá khi bạn thiết lập (định cấu hình) Edge Microgateway ban đầu. Các khoá trong KVM dùng để ký và mã hoá JWT.

Các khoá KVM bao gồm:

  • private_key – Khoá riêng tư RSA mới nhất (được tạo gần đây nhất) được dùng để ký JWT.

  • public_key – Chứng chỉ mới nhất (được tạo gần đây nhất) dùng để xác minh các JWT được ký bằng khoá_riêng_tư.

  • private_key_kid – Mã khoá riêng tư mới nhất (được tạo gần đây nhất). Mã khoá này được liên kết với giá trị private_key và được dùng để hỗ trợ tính năng xoay vòng khoá.

  • public_key1_kid – Mã nhận dạng khoá công khai mới nhất (được tạo gần đây nhất). Khoá này được liên kết với giá trị Public_key1 và được dùng để hỗ trợ tính năng xoay khoá. Giá trị này giống với khoá riêng tư của trẻ.

  • public_key1 – Khoá công khai mới nhất (được tạo gần đây nhất).

Khi bạn thực hiện việc xoay khoá, các giá trị khoá hiện có sẽ được thay thế trong bản đồ và các khoá mới sẽ được thêm vào để giữ lại các khoá công khai cũ. Ví dụ:

  • public_key2_kid – Mã khoá công khai cũ. Khoá này được liên kết với giá trị Public_key2 và được dùng để hỗ trợ tính năng xoay vòng khoá.

  • public_key2 – Khoá công khai cũ.

Các JWT được đưa ra để xác minh sẽ được xác minh bằng khoá công khai mới. Nếu xác minh không thành công, thì khoá công khai cũ sẽ được sử dụng cho đến khi JWT hết hạn (sau khoảng thời gian token_expiry*, mặc định là 30 phút). Bằng cách này, bạn có thể "xoay" khoá mà không làm gián đoạn lưu lượng truy cập API ngay lập tức.

Cách xoay khoá

Phần này giải thích cách xoay vòng khoá.

  1. Để nâng cấp KVM, hãy dùng lệnh edgemicro upgradekvm. Để biết thông tin chi tiết về cách chạy lệnh này, hãy xem phần Nâng cấp KVM.. Bạn chỉ cần thực hiện bước này một lần.
  2. Để nâng cấp proxy edgemicro-oauth, hãy dùng lệnh edgemicro upgradeauth. Để biết thông tin chi tiết về cách chạy lệnh này, hãy xem phần Huỷ nâng cấp proxy Edgemicro-auth proxy. Bạn chỉ cần thực hiện bước này một lần.
  3. Thêm dòng sau vào tệp ~/.edgemicro/org-env-config.yaml. Trong tệp này, bạn phải chỉ định cùng một tổ chức và môi trường mà bạn đã định cấu hình cổng vào vi mô để sử dụng:
    jwk_public_keys: 'https://$ORG-$ENV.apigee.net/edgemicro-auth/jwkPublicKeys'
  4. Chạy lệnh xoay khoá để xoay các khoá. Để biết thông tin chi tiết về lệnh này, hãy xem phần Khoá xoay.

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

    Ví dụ:

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

Sau khi xoay khoá, Edge sẽ trả về nhiều khoá cho Edge Microgateway. Lưu ý trong ví dụ sau, mỗi khoá có một giá trị "kid" (Mã khoá) duy nhất. Sau đó, cổng vào vi mô sẽ sử dụng các khoá này để xác thực mã thông báo uỷ quyền. Nếu xác thực mã thông báo không thành công, cổng vào vi mô sẽ xem liệu có khoá cũ hơn trong tập hợp khoá hay không rồi thử khoá đó. Định dạng của các khoá được trả về là Khoá web JSON (JWK). Bạn có thể đọc về định dạng này trong 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"
    }
  ]
}

Định cấu hình độ trễ "không phải trước"

Đối với phiên bản 3.1.5 trở về trước, khoá riêng tư mới do lệnh rotatekey tạo sẽ có hiệu lực ngay lập tức và các mã thông báo mới được tạo đã được ký bằng khoá riêng tư mới. Tuy nhiên, khoá công khai mới chỉ được cung cấp cho các thực thể Edge Microgateway 10 phút một lần (theo mặc định) khi cấu hình microgateway được làm mới. Do độ trễ này giữa quá trình ký mã thông báo và quá trình làm mới thực thể cổng vi mô này, những mã thông báo được ký bằng khoá mới nhất sẽ bị từ chối cho đến khi mọi thực thể đều nhận được khoá công khai mới nhất.

Trong trường hợp có nhiều thực thể cổng vi mô, độ trễ của khoá công khai đôi khi dẫn đến lỗi thời gian chạy không ổn định với trạng thái 403, vì việc xác thực mã thông báo sẽ chuyển sang một thực thể, nhưng không thành công trên một thực thể khác cho đến khi tất cả thực thể đều được làm mới.

Kể từ phiên bản 3.1.6, một cờ mới trên lệnh rotatekey sẽ cho phép bạn chỉ định độ trễ để khoá riêng tư mới có hiệu lực, cho phép thời gian làm mới tất cả các thực thể cổng vi mô và nhận khoá công khai mới. Cờ mới là --nbf, có nghĩa là "not before" (không phải trước đây). Cờ này nhận một giá trị số nguyên, số phút trì hoãn.

Trong ví dụ sau, độ trễ được đặt thành 15 phút:

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

Xin lưu ý rằng bạn nên đặt độ trễ lớn hơn chế độ cài đặt cấu hình config_change_poll_internal, là 10 phút theo mặc định. Xem thêm về các thuộc tính vi mô.

Lọc proxy đã tải xuống

Theo mặc định, Edge Microgateway sẽ tải tất cả proxy trong tổ chức Edge của bạn xuống bắt đầu bằng tiền tố đặt tên "edgemicro_". Bạn có thể thay đổi chế độ mặc định này để tải các proxy có tên khớp với một mẫu xuống.

  1. Mở tệp cấu hình Edge Micro của bạn: ~/.edgemicro/org-env-config.yaml
  2. Thêm phần tử proxyPattern trong Edge_config. Ví dụ: mẫu sau đây sẽ tải các proxy như Edgemicro_foo, Edgemicro_fast và Edgemicro_first xuống.
    edge_config:
    …
    proxyPattern: edgemicro_f*

Chỉ định sản phẩm không có proxy API

Trong Apigee, bạn có thể tạo một sản phẩm API không chứa proxy API nào. Cấu hình sản phẩm này cho phép một khoá API liên kết với sản phẩm đó hoạt động thông qua mọi proxy được triển khai trong tổ chức của bạn. Kể từ phiên bản 2.5.4, Edge Microgateway hỗ trợ cấu hình sản phẩm này.

Gỡ lỗi và khắc phục sự cố

Kết nối với trình gỡ lỗi

Bạn có thể chạy Edge Microgateway bằng một trình gỡ lỗi, chẳng hạn như node-inspector. Điều này sẽ hữu ích khi khắc phục sự cố và gỡ lỗi các trình bổ trợ tuỳ chỉnh.

  1. Khởi động lại Edge Microgateway ở chế độ gỡ lỗi. Để thực hiện việc này, hãy thêm DEBUG=* vào đầu lệnh start:
    DEBUG=* edgemicro start -o $ORG -e $ENV -k $KEY -s $SECRET

    Để chuyển hướng kết quả gỡ lỗi tới một tệp, bạn có thể sử dụng lệnh sau:

    export DEBUG=* nohup edgemicro start \
    -o $ORG -e $ENV -k $KEY -s $SECRET 2>&1 | tee /tmp/file.log

  2. Khởi động trình gỡ lỗi và đặt trình gỡ lỗi để nghe số cổng cho quá trình gỡ lỗi.
  3. Giờ đây, bạn có thể duyệt qua mã Edge Microgateway, đặt các điểm ngắt, xem biểu thức, v.v.

Bạn có thể chỉ định các cờ Node.js chuẩn liên quan đến chế độ gỡ lỗi. Ví dụ: --nolazy giúp gỡ lỗi mã không đồng bộ.

Đang kiểm tra tệp nhật ký

Nếu bạn gặp sự cố, hãy nhớ kiểm tra các tệp nhật ký để biết chi tiết thực thi và thông tin lỗi. Để biết thông tin chi tiết, hãy xem phần Quản lý tệp nhật ký.

Sử dụng bảo mật khoá API

Khoá API cung cấp một cơ chế đơn giản để xác thực ứng dụng gửi yêu cầu tới Edge Microgateway. Bạn có thể lấy khoá API bằng cách sao chép giá trị Khoá người dùng (còn gọi là Mã ứng dụng khách) từ một sản phẩm Apigee Edge có proxy xác thực Edge Microgateway.

Lưu khoá vào bộ nhớ đệm

Khoá API được trao đổi lấy mã thông báo truyền tải được lưu vào bộ nhớ đệm. Bạn có thể tắt tính năng lưu vào bộ nhớ đệm bằng cách đặt tiêu đề Cache-Control: no-cache cho các yêu cầu đến thành Edge Microgateway.

Sử dụng khoá API

Bạn có thể truyền khoá API trong yêu cầu API dưới dạng tham số truy vấn hoặc tiêu đề. Theo mặc định, tiêu đề và tên tham số truy vấn đều là x-api-key.

Ví dụ về tham số truy vấn:

curl http://localhost:8000/foobar?x-api-key=JG616Gjz7xs4t0dvpvVsGdI49G34xGsz

Ví dụ về tiêu đề:

curl http://localhost:8000/foobar -H "x-api-key:JG616Gjz7xs4t0dvpvVsGdI49G34xGsz"

Định cấu hình tên khoá API

Theo mặc định, x-api-key là tên dùng cho cả tiêu đề khoá API và tham số truy vấn. Bạn có thể thay đổi chế độ mặc định này trong tệp cấu hình, như được giải thích trong phần Thực hiện thay đổi cấu hình. Ví dụ: để thay đổi tên thành apiKey:

oauth:
  allowNoAuthorization: false
  allowInvalidAuthorization: false
  api-key-header: apiKey

Trong ví dụ này, cả tham số truy vấn và tên tiêu đề đều được thay đổi thành apiKey. Tên x-api-key sẽ không còn hoạt động trong cả hai trường hợp. Xem thêm phần Thực hiện thay đổi cấu hình.

Ví dụ:

curl http://localhost:8000/foobar -H "apiKey:JG616Gjz7xs4t0dvpvVsGdI49G34xGsz"

Để biết thêm thông tin về cách sử dụng khoá API với yêu cầu proxy, hãy xem phần Secure Edge Microgateway.

Bật mã phản hồi ngược dòng

Theo mặc định, trình bổ trợ oauth chỉ trả về mã trạng thái lỗi 4xx nếu phản hồi không phải là trạng thái 200. Bạn có thể thay đổi hành vi này để luôn trả về mã 4xx hoặc 5xx chính xác, tuỳ thuộc vào lỗi.

Để bật tính năng này, hãy thêm thuộc tính oauth.useUpstreamResponse: true vào cấu hình Edge Microgateway. Ví dụ:

oauth:
  allowNoAuthorization: false
  allowInvalidAuthorization: false
  gracePeriod: 10
  useUpstreamResponse: true

Sử dụng mã thông báo OAuth2

Phần này giải thích cách lấy mã truy cập OAuth2 và mã làm mới. Mã truy cập được dùng để thực hiện lệnh gọi API bảo mật thông qua cổng vào vi mô. Mã làm mới được dùng để lấy mã truy cập mới.

Cách nhận mã truy cập

Phần này giải thích cách sử dụng proxy edgemicro-auth để nhận mã truy cập.

Bạn cũng có thể lấy mã truy cập bằng cách sử dụng lệnh CLI edgemicro token. Để biết thông tin chi tiết về CLI, hãy xem bài viết Quản lý mã thông báo.

API 1: Gửi thông tin đăng nhập dưới dạng tham số nội dung

Thay thế tên tổ chức và tên môi trường của bạn trong URL, đồng thời thay thế các giá trị Mã nhận dạng người tiêu dùng và Khoá bí mật của người tiêu dùng thu được từ một ứng dụng dành cho nhà phát triển trên Apigee Edge bằng tham số nội dung client_idclient_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: Gửi thông tin đăng nhập trong tiêu đề Xác thực cơ bản

Gửi thông tin đăng nhập ứng dụng dưới dạng tiêu đề Xác thực cơ bản và grant_type dưới dạng tham số biểu mẫu. Biểu mẫu lệnh này cũng được thảo luận trong RFC 6749: Khung cấp phép 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"

Kết quả mẫu

API trả về phản hồi JSON. Xin lưu ý rằng không có sự khác biệt giữa thuộc tính tokenaccess_token. Bạn có thể sử dụng một trong hai cách. Lưu ý expires_in là một giá trị số nguyên được chỉ định bằng giây.
{
"token": "eyJraWQiOiIxIiwidHlwIjoi",
"access_token": "eyJraWQiOiIxIiwid",
"token_type": "bearer",
"expires_in": 1799
}

Cách nhận mã làm mới

Để nhận mã làm mới, hãy thực hiện lệnh gọi API đến điểm cuối /token của proxy edgemicro-auth. Bạn PHẢI thực hiện lệnh gọi API này bằng loại cấp quyền password. Các bước sau đây sẽ hướng dẫn từng bước.

  1. Nhận mã truy cập và làm mới thông qua API /token. Xin lưu ý rằng loại cấp quyền là 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 trả về một mã truy cập và một mã làm mới. Phản hồi có dạng như sau. Xin lưu ý rằng expires_in định giá trị số nguyên và được chỉ định bằng giây.

    {
        "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. Giờ đây, bạn có thể sử dụng mã làm mới để nhận mã truy cập mới bằng cách gọi điểm cuối /refresh của cùng một API. Ví dụ:
    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 sẽ trả về một mã truy cập mới. Câu trả lời có dạng như sau:

    {
        "token": "your-new-access-token"
        }

Giám sát vĩnh viễn

Chỉ định điểm cuối của tệp cấu hình

Nếu chạy nhiều thực thể Edge Microgateway, bạn nên quản lý các cấu hình của các thực thể đó từ một vị trí duy nhất. Bạn có thể thực hiện việc này bằng cách chỉ định một điểm cuối HTTP nơi Edge Micro có thể tải tệp cấu hình xuống. Bạn có thể chỉ định điểm cuối này khi khởi động Edge Micro bằng cách sử dụng cờ -u.

Ví dụ:

edgemicro start -o jdoe -e test -u http://mylocalserver/mgconfig -k public_key -s secret_key

trong đó điểm cuối mgconfig trả về nội dung của tệp cấu hình. Đây là tệp mà theo mặc định nằm trong ~/.edgemicro và có quy ước đặt tên là: org-env-config.yaml.

Tắt tính năng lưu dữ liệu vào bộ đệm dữ liệu kết nối TCP

Bạn có thể sử dụng thuộc tính cấu hình nodelay để vô hiệu hoá việc lưu dữ liệu vào bộ đệm cho các kết nối TCP mà Edge Microgateway sử dụng.

Theo mặc định, các kết nối TCP sử dụng thuật toán Nagle để lưu dữ liệu vào bộ đệm trước khi gửi đi. Nếu bạn đặt nodelay thành true, hành vi này sẽ vô hiệu hoá (dữ liệu sẽ ngay lập tức kích hoạt dữ liệu mỗi khi socket.write() được gọi). Xem thêm tài liệu về Node.js để biết thêm thông tin chi tiết.

Để bật nodelay, hãy chỉnh sửa tệp cấu hình Edge Micro như sau:

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

Chạy Edge Microgateway ở chế độ độc lập

Bạn có thể chạy Edge Microgateway bị ngắt kết nối hoàn toàn khỏi mọi phần phụ thuộc API API. Trường hợp này, được gọi là chế độ độc lập, cho phép bạn chạy và kiểm thử Edge Microgateway mà không cần kết nối Internet.

Ở chế độ độc lập, các tính năng sau đây không hoạt động vì cần kết nối với Apigee Edge:

  • OAuth và khoá API
  • Hạn mức
  • Số liệu phân tích

Mặt khác, các trình bổ trợ tuỳ chỉnh và tính năng chống tăng đột biến hoạt động bình thường vì các trình bổ trợ này không cần kết nối với Apigee Edge. Ngoài ra, một trình bổ trợ mới có tên là extauth cho phép bạn uỷ quyền các lệnh gọi API đến cổng vào vi mô bằng JWT khi ở chế độ độc lập.

Định cấu hình và khởi động cổng

Cách chạy Edge Microgateway ở chế độ độc lập:

  1. Tạo một tệp cấu hình có tên như sau: $HOME/.edgemicro/$ORG-$ENV-config.yaml

    Ví dụ:

    vi $HOME/.edgemicro/foo-bar-config.yaml
  2. Dán mã sau vào tệp:
    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. Xuất biến môi trường sau đây với giá trị "1":
    export EDGEMICRO_LOCAL=1
  4. Thực thi lệnh start sau đây. Trong lệnh này, bạn sẽ cung cấp các giá trị để tạo thực thể proxy cục bộ:
    edgemicro start -o $ORG -e $ENV -a $LOCAL_PROXY_NAME \
      -v $LOCAL_PROXY_VERSION -t $TARGET_URL -b $BASE_PATH

    Trong trường hợp:

    • $ORG là tên "org" mà bạn sử dụng trong tên tệp cấu hình.
    • $ENV là tên "env" mà bạn sử dụng trong tên tệp cấu hình.
    • $LOCAL_PROXY_NAME là tên của proxy cục bộ sẽ được tạo. Bạn có thể dùng bất kỳ tên nào mình muốn.
    • $LOCAL_PROXY_VERSION là số phiên bản của proxy.
    • $TARGET_URL là URL cho mục tiêu của proxy. (Mục tiêu là dịch vụ mà proxy gọi.)
    • $BASE_PATH là đường dẫn cơ sở của proxy. Giá trị này phải bắt đầu bằng một dấu gạch chéo xuôi. Đối với đường dẫn cơ sở gốc, chỉ xác định dấu gạch chéo xuôi; ví dụ: "/".

    Ví dụ:

    edgemicro start -o local -e test -a proxy1 -v 1 -t http://mocktarget.apigee.net -b /
  5. Kiểm tra cấu hình.
    curl http://localhost:8000/echo  { "error" : "missing_authorization" }

    Vì trình bổ trợ extauth nằm trong tệp foo-bar-config.yaml nên bạn sẽ gặp lỗi "missing_permission". Trình bổ trợ này xác thực một JWT phải có trong tiêu đề Uỷ quyền của lệnh gọi API. Trong phần tiếp theo, bạn sẽ nhận được một JWT cho phép các lệnh gọi API đi qua mà không gặp lỗi.

Ví dụ: Lấy mã thông báo uỷ quyền

Ví dụ sau đây cho thấy cách lấy JWT từ điểm cuối JWT của Edge Microgateway trên Apigee Edge (edgemicro-auth/jwkPublicKeys). Điểm cuối này được triển khai khi bạn thiết lập và cấu hình chuẩn của Edge Microgateway. Để có được JWT từ điểm cuối của Apigee, trước tiên bạn phải thiết lập Edge Microgateway tiêu chuẩn và có kết nối Internet. Điểm cuối của Apigee được dùng ở đây chỉ để làm ví dụ và không bắt buộc. Bạn có thể sử dụng một điểm cuối khác của mã thông báo JWT nếu muốn. Nếu làm vậy, bạn cần lấy JWT bằng cách sử dụng API được cung cấp cho điểm cuối đó.

Các bước sau đây giải thích cách nhận mã thông báo bằng điểm cuối edgemicro-auth/jwkPublicKeys:

  1. Bạn phải thiết lập và định cấu hình chuẩn Edge Microgateway để triển khai proxy edgemicro-auth cho tổ chức/môi trường của mình trên Apigee Edge. Nếu đã thực hiện bước này trước đó thì bạn không cần lặp lại.
  2. Nếu đã triển khai Edge Microgateway cho Apigee Cloud, bạn phải kết nối với Internet để có thể nhận được JWT từ điểm cuối này.
  3. Dừng Edge Microgateway:
    edgemicro stop
  4. Trong tệp cấu hình mà bạn đã tạo trước đó ($HOME/.edgemicro/org-env-config.yaml), hãy trỏ thuộc tính extauth:publickey_url đến điểm cuối edgemicro-auth/jwkPublicKeys trong tổ chức/môi trường Apigee Edge. Ví dụ:
    extauth:
      publickey_url: 'https://your_org-your_env.apigee.net/edgemicro-auth/jwkPublicKeys'
  5. Khởi động lại Edge Microgateway như trước đây, sử dụng tên org/env mà bạn đã sử dụng trong tên tệp cấu hình. Ví dụ:
    edgemicro start -o foo -e bar -a proxy1 -v 1 -t http://mocktarget.apigee.net -b /
  6. Lấy mã thông báo JWT từ điểm cuối uỷ quyền. Vì đang sử dụng điểm cuối edgemicro-auth/jwkPublicKeys nên bạn có thể sử dụng lệnh CLI này:

Bạn có thể tạo JWT cho Edge Microgateway bằng lệnh edgemicro token hoặc API. Ví dụ:

edgemicro token get -o your_org -e your_env \
  -i G0IAeU864EtBo99NvUbn6Z4CBwVcS2 -s uzHTbwNWvoSmOy

Trong trường hợp:

  • your_org là tên của tổ chức Apigee mà bạn đã định cấu hình Edge Microgateway.
  • your_env là một môi trường trong tổ chức.
  • Tuỳ chọn i chỉ định Khoá người dùng từ một ứng dụng dành cho nhà phát triển có một sản phẩm bao gồm proxy edgemicro-auth.
  • Tuỳ chọn s chỉ định Khoá bí mật của người dùng trong một ứng dụng dành cho nhà phát triển có sản phẩm bao gồm proxy edgemicro-auth.

Lệnh này sẽ yêu cầu Apigee Edge tạo một JWT mà sau đó có thể dùng để xác minh các lệnh gọi API.

Hãy xem thêm phần Tạo mã thông báo.

Kiểm thử cấu hình độc lập

Để kiểm tra cấu hình, hãy gọi API bằng mã thông báo đã thêm vào tiêu đề Uỷ quyền như sau:

curl http://localhost:8000/echo -H "Authorization: Bearer your_token

Ví dụ:

curl http://localhost:8000/echo -H "Authorization: Bearer eyJraWQiOiIxIiwidHlwIjo...iryF3kwcDWNv7OQ"

Kết quả điểm dữ liệu:

{
   "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":""
}

Sử dụng chế độ proxy cục bộ

Ở chế độ proxy cục bộ, Edge Microgateway không yêu cầu triển khai proxy nhận biết cổng ảo trên Apigee Edge. Thay vào đó, bạn định cấu hình một "máy chủ proxy cục bộ" bằng cách cung cấp tên proxy cục bộ, đường dẫn cơ sở và URL mục tiêu khi bắt đầu cổng cổng vi mô. Sau đó, các lệnh gọi API đến cổng vào vi mô sẽ được gửi tới URL đích của proxy cục bộ. Trong tất cả các khía cạnh khác, chế độ proxy cục bộ hoạt động y như khi chạy Edge Microgateway ở chế độ thông thường. Quy trình xác thực hoạt động theo cách tương tự, tương tự như việc bắt giữ tăng đột biến và thực thi hạn mức, các trình bổ trợ tuỳ chỉnh, v.v.

Trường hợp sử dụng và ví dụ

Chế độ proxy cục bộ rất hữu ích khi bạn chỉ cần liên kết một proxy duy nhất với một phiên bản Edge Microgateway. Ví dụ: bạn có thể chèn Edge Microgateway vào Kubernetes dưới dạng proxy phụ, trong đó một cổng nhỏ và dịch vụ chạy trong một nhóm duy nhất, và cổng cổng vi mô quản lý lưu lượng truy cập đến và đi từ dịch vụ đồng hành. Hình sau đây minh hoạ cấu trúc này, trong đó Edge Microgateway hoạt động như một proxy phụ trong cụm Kubernetes. Mỗi thực thể cổng nhỏ chỉ giao tiếp với một điểm cuối duy nhất trên dịch vụ đồng hành:

Edgemicro trong vai trò Sidecar

Lợi ích của kiểu kiến trúc này là Edge Microgateway cung cấp khả năng quản lý API cho từng dịch vụ được triển khai cho môi trường vùng chứa, chẳng hạn như cụm Kubernetes.

Định cấu hình chế độ proxy cục bộ

Để định cấu hình Edge Microgateway chạy ở chế độ proxy cục bộ, hãy làm theo các bước sau:

  1. Chạy edgemicro init để thiết lập môi trường cấu hình cục bộ, giống hệt như cách bạn thiết lập Edge Microgateway thông thường. Hãy xem thêm phần Định cấu hình Edge Microgateway.
  2. Chạy edgemicro configure theo cách tương tự như trong quy trình thiết lập Edge Microgateway thông thường. Ví dụ:
    edgemicro configure -o your_org -e your_env -u your_apigee_username

    Lệnh này triển khai chính sách edgemicro-auth (xác thực vi mô) cho Edge và trả về khoá cũng như khoá bí mật mà bạn sẽ cần để bắt đầu cổng vào vi mô. Nếu bạn cần trợ giúp, hãy xem phần Định cấu hình Edge Microgateway.

  3. Trên Apigee Edge, hãy tạo một sản phẩm API và đáp ứng các yêu cầu bắt buộc về cấu hình sau đây (bạn có thể quản lý tất cả các cấu hình khác tuỳ thích):
    • Bạn phải thêm proxy edgemicro-auth vào sản phẩm. Proxy này đã được tự động triển khai khi bạn chạy edgemicro configure.
    • Bạn phải cung cấp đường dẫn tài nguyên. Apigee khuyên bạn nên thêm đường dẫn này vào sản phẩm: /**. Để tìm hiểu thêm, hãy xem phần Định cấu hình hoạt động của đường dẫn tài nguyên. Xem thêm phần Tạo sản phẩm API trong tài liệu của Edge.
  4. Trên Apigee, hãy tạo một nhà phát triển hoặc bạn có thể hợp tác với một nhà phát triển hiện tại nếu muốn. Để được trợ giúp, hãy xem phần Thêm nhà phát triển bằng giao diện người dùng Quản lý cạnh.

  5. Trên Apigee, hãy tạo một ứng dụng dành cho nhà phát triển. Bạn phải thêm sản phẩm API mà mình vừa tạo vào ứng dụng này. Để được trợ giúp, hãy xem bài viết Đăng ký ứng dụng trong giao diện người dùng quản lý Edge.
  6. Trên máy được cài đặt Edge Microgateway, hãy xuất biến môi trường sau đây với giá trị "1".
    export EDGEMICRO_LOCAL_PROXY=1
  7. Thực thi lệnh start sau:
    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

    Trong trường hợp:

    • your_org là tổ chức Apigee của bạn.
    • your_environment là một môi trường trong tổ chức của bạn.
    • your_key là khoá được trả về khi bạn chạy edgemicro configure.
    • your_secret là khoá bí mật được trả về khi bạn chạy edgemicro configure.
    • local_proxy_name là tên của proxy cục bộ sẽ được tạo.
    • local_proxy_version là số phiên bản của proxy.
    • target_url là URL cho mục tiêu của proxy (dịch vụ mà proxy sẽ gọi).
    • base_path là đường dẫn cơ sở của proxy. Giá trị này phải bắt đầu bằng một dấu gạch chéo xuôi. Đối với đường dẫn cơ sở gốc, chỉ xác định dấu gạch chéo xuôi; ví dụ: "/".

    Ví dụ:

    edgemicro start -o your_org -e test -k 7eb6aae644cbc09035a...d2eae46a6c095f \
      -s e16e7b1f5d5e24df...ec29d409a2df853163a -a proxy1 -v 1 \
      -t http://mocktarget.apigee.net -b /echo

Kiểm tra cấu hình

Bạn có thể kiểm tra cấu hình proxy cục bộ bằng cách gọi điểm cuối proxy. Ví dụ: nếu đã chỉ định đường cơ sở của /echo, bạn có thể gọi proxy như sau:

curl  http://localhost:8000/echo
{
  "error" : "missing_authorization",
  "error_description" : "Missing Authorization header"
}

Lệnh gọi API ban đầu này đã tạo ra một lỗi vì bạn chưa cung cấp khoá API hợp lệ. Bạn có thể tìm thấy khoá này trong ứng dụng dành cho nhà phát triển mà bạn đã tạo trước đó. Mở ứng dụng trong giao diện người dùng Edge, sao chép Khoá người dùng và sử dụng khoá đó như sau:

curl  http://localhost:8000/echo -H 'x-api-key:your_api_key'

Ví dụ:

curl  http://localhost:8000/echo -H "x-api-key:DvUdLlFwG9AvGGpEgfnNGwtvaXIlUUvP"

Kết quả điểm dữ liệu:

{
  "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":""
}

Sử dụng trình đồng bộ hoá

Phần này giải thích cách sử dụng trình đồng bộ hoá, một tính năng không bắt buộc giúp cải thiện khả năng phục hồi của Edge Microgteway bằng cách cho phép Edge Microgteway truy xuất dữ liệu cấu hình từ Apigee Edge và ghi dữ liệu đó vào cơ sở dữ liệu Redis cục bộ. Khi một thực thể trình đồng bộ hoá đang chạy, các thực thể Edge Microgateway khác chạy trên các nút khác nhau có thể truy xuất cấu hình trực tiếp từ cơ sở dữ liệu này.

Tính năng syncrhonizer hiện được hỗ trợ để hoạt động với Redis 5.0.x.

Bộ đồng bộ hoá là gì?

Bộ đồng bộ hoá cung cấp khả năng phục hồi cho Edge Microgateway. Tính năng này giúp đảm bảo rằng mọi thực thể của Edge Microgateway đều sử dụng cùng một cấu hình và trong trường hợp gián đoạn Internet, các thực thể của Edge Microgateway có thể khởi động và chạy đúng cách.

Theo mặc định, các thực thể Edge Microgateway phải giao tiếp được với Apigee Edge để truy xuất và làm mới dữ liệu cấu hình, chẳng hạn như proxy API và cấu hình sản phẩm API. Nếu kết nối Internet với Edge bị gián đoạn, các thực thể cổng nhỏ có thể tiếp tục hoạt động vì dữ liệu cấu hình mới nhất được lưu vào bộ nhớ đệm. Tuy nhiên, các thực thể cổng vi mô mới không thể khởi động nếu không có kết nối rõ ràng. Hơn nữa, việc gián đoạn Internet có thể sẽ dẫn đến một hoặc nhiều phiên bản cổng vào vi mô đang chạy với thông tin cấu hình không đồng bộ với các phiên bản khác.

Trình đồng bộ hoá Edge Microgateway cung cấp cơ chế thay thế cho các thực thể Edge Microgateway để truy xuất dữ liệu cấu hình mà các thực thể đó yêu cầu để khởi động và xử lý lưu lượng truy cập proxy API. Dữ liệu cấu hình được truy xuất từ các lệnh gọi đến Apigee Edge bao gồm: lệnh gọi jwk_public_keys, lệnh gọi jwt_public_key, lệnh gọi tự khởi động và lệnh gọi sản phẩm API. Trình đồng bộ hoá này giúp tất cả phiên bản Edge Microgateway chạy trên các nút khác nhau có thể khởi động đúng cách và duy trì trạng thái đồng bộ hoá ngay cả khi kết nối Internet giữa Edge Microgateway và Apigee Edge bị gián đoạn.

Bộ đồng bộ hoá là một thực thể được định cấu hình đặc biệt của Edge Microgateway. Mục đích duy nhất của lớp này là thăm dò ý kiến của Apigee Edge (có thể định cấu hình thời gian), truy xuất dữ liệu cấu hình và ghi dữ liệu đó vào cơ sở dữ liệu Redis cục bộ. Bản thân thực thể trình đồng bộ hoá không thể xử lý lưu lượng truy cập proxy API. Bạn có thể định cấu hình các thực thể khác của Edge Microgateway chạy trên nhiều nút để truy xuất dữ liệu cấu hình từ cơ sở dữ liệu Redis thay vì từ Apigee Edge. Vì tất cả các phiên bản cổng vi mô đều lấy dữ liệu cấu hình từ cơ sở dữ liệu cục bộ, nên các phiên bản này có thể khởi động và xử lý các yêu cầu API ngay cả trong trường hợp Internet bị gián đoạn.

Định cấu hình bản sao trình đồng bộ hoá

Thêm cấu hình sau vào tệp org-env/config.yaml để cài đặt Edge Microgateway mà bạn muốn dùng làm trình đồng bộ hoá:

edgemicro:
  redisHost: host_IP
  redisPort: host_port
  redisDb: database_index
  redisPassword: password
edge_config:
  synchronizerMode: 1
  redisBasedConfigCache: true

Ví dụ:

edgemicro:
  redisHost: 192.168.4.77
  redisPort: 6379
  redisDb: 0
  redisPassword: codemaster
edge_config:
  synchronizerMode: 1
  redisBasedConfigCache: true
Lựa chọn Nội dung mô tả
redisHost Máy chủ lưu trữ nơi thực thể Redis của bạn đang chạy. Mặc định: 127.0.0.1
redisPort Cổng của thực thể Redis. Mặc định: 6379
redisDb DB Redis để sử dụng. Mặc định: 0
redisPassword Mật khẩu cơ sở dữ liệu của bạn.

Cuối cùng, hãy lưu tệp cấu hình và khởi động thực thể Edge Microgateway. Dự án này sẽ bắt đầu thăm dò Apigee Edge và lưu trữ dữ liệu cấu hình đã tải xuống trong cơ sở dữ liệu của Redis.

Định cấu hình các phiên bản Edge Microgateway thông thường

Khi trình đồng bộ hoá đang chạy, bạn có thể định cấu hình các nút bổ sung của Edge Microgateway để chạy các thực thể cổng vi nhỏ thông thường có xử lý lưu lượng truy cập proxy API. Tuy nhiên, bạn có thể định cấu hình các thực thể này để lấy dữ liệu cấu hình từ cơ sở dữ liệu Redis thay vì qua Apigee Edge.

Thêm cấu hình sau vào mỗi tệp org-env/config.yaml của mỗi nút Edge Microgateway bổ sung. Xin lưu ý rằng thuộc tính synchronizerMode được đặt thành 0. Thuộc tính này thiết lập để thực thể này hoạt động như một thực thể Edge Microgateway thông thường xử lý lưu lượng truy cập proxy API và thực thể này sẽ lấy dữ liệu cấu hình từ cơ sở dữ liệu của Redis.

edgemicro:
  redisHost: host_IP
  redisPort: host_port
  redisDb: database_index
  redisPassword: password
edge_config:
  synchronizerMode: 0
  redisBasedConfigCache: true

Ví dụ:

edgemicro:
  redisHost: 192.168.4.77
  redisPort: 6379
  redisDb: 0
  redisPassword: codemaster
edge_config:
  synchronizerMode: 0
  redisBasedConfigCache: true

Thuộc tính cấu hình

Các thuộc tính cấu hình sau đây đã được thêm vào để hỗ trợ việc sử dụng trình đồng bộ hoá:

Thuộc tính Giá trị Nội dung mô tả
edge_config.synchronizerMode 0 hoặc 1

Nếu 0 (mặc định) Edge Microgateway hoạt động ở chế độ tiêu chuẩn.

Nếu là 1, hãy khởi động thực thể Edge Microgateway để hoạt động như một trình đồng bộ hoá. Ở chế độ này, thực thể đó sẽ lấy dữ liệu cấu hình từ Apigee Edge và lưu trữ dữ liệu đó trong một cơ sở dữ liệu Redis cục bộ. Phiên bản này không thể xử lý các yêu cầu proxy API mà chỉ có mục đích là thăm dò Apigee Edge để biết dữ liệu cấu hình và ghi dữ liệu đó vào cơ sở dữ liệu cục bộ. Sau đó, bạn phải định cấu hình các thực thể cổng vi mô khác để đọc từ cơ sở dữ liệu.

edge_config.redisBasedConfigCache true hoặc false Nếu đúng, thực thể của Edge Microgateway sẽ tìm nạp dữ liệu cấu hình từ cơ sở dữ liệu Redis thay vì từ Apigee Edge. Cơ sở dữ liệu Redis phải giống với cơ sở dữ liệu mà trình đồng bộ hoá được định cấu hình để ghi vào. Nếu cơ sở dữ liệu Redis không có sẵn hoặc nếu cơ sở dữ liệu trống thì cổng vào vi mô sẽ tìm tệp cache-config.yaml hiện có cho cấu hình của cơ sở dữ liệu đó.

Nếu là false (giá trị mặc định), thực thể Edge Microgateway sẽ tìm nạp dữ liệu cấu hình từ Apigee Edge như thường lệ.

edgemicro.config_change_poll_interval Khoảng thời gian, tính bằng giây Chỉ định khoảng thời gian thăm dò để trình đồng bộ hoá lấy dữ liệu từ Apigee Edge.

Định cấu hình loại trừ URL cho trình bổ trợ

Bạn có thể định cấu hình cổng vào vi mô để bỏ qua việc xử lý trình bổ trợ cho các URL được chỉ định. Bạn có thể định cấu hình các URL "loại trừ" này trên toàn hệ thống (cho tất cả trình bổ trợ) hoặc cho một số trình bổ trợ cụ thể.

Ví dụ:

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

Trong ví dụ này, các trình bổ trợ sẽ không xử lý các lệnh gọi proxy API đến bằng đường dẫn /hello hoặc /proxy_one. Ngoài ra, trình bổ trợ json2xml sẽ bị bỏ qua đối với các API có /hello/xml trong đường dẫn.

Đặt thuộc tính cấu hình bằng các giá trị biến môi trường

Bạn có thể chỉ định các biến môi trường bằng cách sử dụng các thẻ trong tệp cấu hình. Các thẻ biến môi trường đã chỉ định sẽ được thay thế bằng các giá trị biến môi trường thực tế. Các nội dung thay thế chỉ được lưu trữ trong bộ nhớ và không được lưu trữ trong các tệp cấu hình hoặc bộ nhớ đệm gốc.

Trong ví dụ này, thuộc tính key được thay thế bằng giá trị của biến môi trường TARGETS_SSL_CLIENT_KEY, v.v.

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

Trong ví dụ này, thẻ <n> dùng để chỉ báo giá trị số nguyên. Chỉ hỗ trợ số nguyên dương.

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

Trong ví dụ này, thẻ <b> được dùng để cho biết giá trị boolean (đúng hoặc sai).

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