Edge Microgateway 的作業和設定參考資料

您正在查看 Apigee Edge 說明文件。
查看 Apigee X 說明文件
資訊

Edge Microgateway 2.3.x 版

總覽

本主題將說明如何管理及設定 Edge Microgateway,包括監控、記錄和偵錯。

變更設定

需要瞭解的設定檔包括:

  • 預設系統設定檔
  • 新初始化 Edge Microgateway 執行個體的預設設定檔
  • 運作中執行個體的動態設定檔

本節將探討這些檔案,以及變更這些檔案的須知。如要進一步瞭解設定檔設定,請參閱 Edge Microgateway 設定參考資料

預設系統設定檔

安裝 Edge Microgateway 後,預設的系統設定檔會放在這裡:

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

其中 [prefix]npm 前置字串目錄。請參閱「Edge Microgateway 的安裝位置」。

如果變更系統設定檔,您必須重新初始化、重新設定,並重新啟動 Edge Microgateway:

  1. 撥打 edgemicro init
  2. 撥打 edgemicro configure [params]
  3. 撥打 edgemicro start [params]

新初始化 Edge Microgateway 執行個體的預設設定檔

執行 edgemicro init 時,系統設定檔 (如上所述) default.yaml 會放在以下目錄中:~/.edgemicro

如果您在 ~/.edgemicro 中變更設定檔,必須重新設定並重新啟動 Edge Microgateway:

  1. edgemicro stop
  2. edgemicro configure [params]
  3. edgemicro start [params]

運作中執行個體的動態設定檔

當您執行 edgemicro configure [params] 時,系統會在 ~/.edgemicro 建立動態設定檔,並依據以下模式命名檔案:[org]-[env]-config.yaml,其中 orgenv 是您的 Apigee Edge 機構和環境名稱。您可以使用這個檔案變更設定,無須停機即可重新載入設定。舉例來說,如果您新增並設定外掛程式,則可重新載入設定,而不會產生任何停機時間。如下所述。

如果 Edge Microgateway 正在執行 (零停機時間選項):

  1. 重新載入 Edge Microgateway 設定:
    edgemicro reload -o [org] -e [env] -k [key] -s [secret]
    

    在此情況下:

    • org是您的 Edge 機構名稱 (您必須是機構組織管理員)。
    • env是機構中的環境 (例如測試或正式版)。
    • key 是設定指令先前傳回的金鑰。
    • secret 是設定指令先前傳回的金鑰。

    範例

    edgemicro reload -o docs -e test -k 701e70ee718ce6dc188016b3c39177d64a88754d615c74e1f78b6181d000723 -s 05c14356e42ed136b8dd35cf8a18531ff52d7299134677e30ef4e34ab0cc824
    

如果 Edge Microgateway 已停止:

  1. 重新啟動 Edge Microgateway:
    edgemicro start -o [org] -e [env] -k [key] -s [secret]
    

    在此情況下:

    • org是您的 Edge 機構名稱 (您必須是機構組織管理員)。
    • env是機構中的環境 (例如測試或正式版)。
    • key 是設定指令先前傳回的金鑰。
    • secret 是設定指令先前傳回的金鑰。

    範例

    edgemicro start -o docs -e test -k 701e70ee718ce6dc188016b3c39177d64a88754d615c74e1f78b6181d000723 -s 05c14356e42ed136b8dd35cf8a18531ff52d7299134677e30ef4e34ab0cc824
    

以下是設定檔範例。如要進一步瞭解設定檔設定,請參閱 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

您不一定要設定這些變數。設定這些設定後,在使用指令列介面 (CLI) 設定及啟動 Edge Microgateway 時,不必指定這些值。

在 Edge Microgateway 伺服器上設定 SSL

您可以將 Microgateway 伺服器設為使用 SSL。舉例來說,在已設定 SSL 的情況下,您可以使用「https」通訊協定,透過 Edge Microgateway 呼叫 API,如下所示:

https://localhost:8000/myapi

如要在 Microgateway 伺服器上設定 SSL,請按照下列步驟操作:

  1. 使用 openssl 公用程式或任何您偏好的方法產生或取得 SSL 憑證和金鑰。
  2. 在 Edge Microgateway 設定檔中加入 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
    
  3. 重新啟動 Edge Microgateway。根據您編輯的設定檔 (預設檔案或執行階段設定檔),按照「變更設定」一文所述的步驟操作。

以下是已設定 SSL 的設定檔 Edgemicro 區段範例:

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 如果為 true,系統會根據提供的 CA 清單驗證伺服器憑證。如果驗證失敗,系統會傳回錯誤。
secureProtocol 要使用的安全資料傳輸層 (SSL) 方法。舉例來說,SSLv3_method 強制使用 SSL 為第 3 版。
servername SNI (伺服器名稱指示) TLS 擴充功能的伺服器名稱。

使用用戶端 SSL/TLS 選項

您可以在連線至目標端點時,將 Edge Microgateway 設為 TLS 或 SSL 用戶端。在 Microgateway 設定檔中,使用目標元素設定 SSL/TLS 選項。

以下範例提供會套用到所有主機的設定:

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

在這個範例中,設定只會套用至指定的主機:

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 的範例:

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

以下列出所有支援的用戶端選項:

選項 說明
pfx pfx 檔案的路徑,該檔案含有用戶端的私密金鑰、憑證和 CA 憑證 (以 PFX 格式表示)。
key ca.key 檔案的路徑 (PEM 格式)。
passphrase 包含私密金鑰或 PFX 通關密語的字串。
cert ca.cert 檔案的路徑 (PEM 格式)。
ca 內含 PEM 格式信任憑證清單的檔案路徑。
ciphers 字串,說明要使用的加密方式,並以「:」分隔。
rejectUnauthorized 如果為 true,系統會根據提供的 CA 清單驗證伺服器憑證。如果驗證失敗,系統會傳回錯誤。
secureProtocol 要使用的安全資料傳輸層 (SSL) 方法。舉例來說,SSLv3_method 強制使用 SSL 為第 3 版。
servername SNI (伺服器名稱指示) TLS 擴充功能的伺服器名稱。

使用自訂驗證服務

根據預設,Edge Microgateway 會使用部署於 Apigee Edge 的 Proxy 進行 OAuth2 驗證。首次執行 edgemicro configure 時,就會部署這個 Proxy。根據預設,這個 Proxy 的網址會在 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 標記設為 true,如下所示:

edgemicro:
  logging:
    to_console: true  

如果採用這項設定,系統會將記錄傳送至標準輸出。目前您無法將記錄同時傳送至 stdout 和記錄檔。

如何設定記錄層級

您可以設定這些記錄層級:infowarnerror。建議提供資訊層級。它會記錄所有 API 要求與回應,而且預設為預設。

如何變更記錄間隔

您可以在 Edge Microgateway 設定檔中設定這些間隔。如要進一步瞭解如何變更設定,請參閱「變更設定」。

可設定的屬性如下:

  • stats_log_interval:(預設值:60) 統計資料記錄寫入 API 記錄檔時,以秒為單位。
  • rotate_interval:(預設值:24) 記錄檔輪替時以小時為單位。例如:
edgemicro:
  home: ../gateway
  port: 8000
  max_connections: -1
  max_connections_hard: -1
  logging:
    level: info
    dir: /var/tmp
    stats_log_interval: 60
    rotate_interval: 24

注意: 系統不會壓縮已封存的記錄檔。間隔開始時,系統會建立新的記錄檔,並含有新的時間戳記。

良好的記錄檔維護做法

隨著記錄檔資料逐漸累積,Apigee 建議您採用以下做法:

  • 由於記錄檔可能會變得相當大,因此請確保記錄檔目錄有足夠的空間。請參閱以下各節記錄檔儲存位置如何變更預設記錄檔目錄
  • 每週至少將記錄檔刪除或移動至獨立的封存目錄一次。
  • 如果政策是刪除記錄,您可以使用 CLI 指令 edgemicro log -c 移除 (清理) 較舊的記錄。

記錄檔命名慣例

每個 Edge Microgateway 執行個體都會產生三種類型的記錄檔:

  • api - 記錄透過 Edge Microgateway 傳送的所有要求與回應。API 計數器 (統計資料) 和錯誤也會記錄到這個檔案。
  • err:記錄傳送至 stderr 的所有內容。
  • out:記錄傳送至 stdout 的內容。

命名慣例如下:

edgemicro-<Host Name>-<Instance ID>-<Log Type>.log

例如:

edgemicro-mymachine-local-MTQzNTgNDMxODAyMQ-api.log
edgemicro-mymachine-local-MTQzNTg1NDMODAyMQ-err.log
edgemicro-mymachine-local-mtqzntgndmxodaymq-out.log

關於記錄檔內容

已新增至 2.3.3 版

根據預設,記錄服務會忽略已下載的 Proxy、產品和 JSON Web Token (JWT) 的 JSON 檔案。如要將這些物件輸出至記錄檔,請在啟動 Edge Microgateway 時設定 DEBUG=*。例如:

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

「api」記錄檔的內容

「api」記錄檔包含透過 Edge Microgateway 提出的要求與回應相關流程的詳細資訊。「api」記錄檔的名稱如下:

edgemicro-mymachine-local-MTQzNjIxOTk0NzY0Nw-api.log

針對每項向 Edge Microgateway 發出的要求,「api」記錄檔中會擷取四個事件:

  • 來自用戶端的要求
  • 傳送至目標的傳出要求
  • 來自目標的傳入回應
  • 回覆用戶端的傳出回應

每個獨立項目都以簡寫標記表示,有助於讓記錄檔更精簡。以下提供四個項目範例,分別代表這四個事件。在記錄檔中看起來會像這樣 (行號僅供文件中的參照之用,不會顯示在記錄檔中)。

(1) 1436403888651 info req m=GET, u=/, h=localhost:8000, r=::1:59715, i=0
(2) 1436403888665 info treq m=GET, u=/, h=127.0.0.18080, i=0
(3) 1436403888672 info tres s=200, d=7, i=0
(4) 1436403888676 info res s=200, d=11, i=0

以下逐一為您介紹:

1. 來自用戶端的傳入要求範例:

1436403888651 info req m=GET, u=/, h=localhost:8000, r=::1:59715, i=0
  • 1436403888651 - Unix 日期戳記
  • info - 取決於背景資訊。這可能是資訊、警告或錯誤,視記錄層級而定。可以是統計資料記錄的統計資料、警告的警告或錯誤錯誤。
  • req:用於識別事件。在這種情況下,請從用戶端提出要求。
  • m - 要求中使用的 HTTP 動詞。
  • u - 基本路徑後的網址部分。
  • h - Edge Microgateway 正在監聽的主機和通訊埠編號。
  • r:產生用戶端要求的遠端主機和通訊埠。
  • i - 要求 ID。這四個活動項目都會共用這個 ID。每個要求都會獲得一組不重複的要求 ID。依據要求 ID 找出相關聯的記錄檔記錄,能讓您深入瞭解目標的延遲時間。
  • d - 自 Edge Microgateway 收到要求後的時間長度,以毫秒為單位。在上述範例中,系統在 7 毫秒 (第 3 行) 後收到目標 0 的要求回應,並在額外 4 毫秒 (第 4 行) 後將回應傳送至用戶端。換句話說,要求的總延遲時間為 11 毫秒,其中 7 毫秒是由目標佔用 7 毫秒,Edge Microgateway 本身則耗時 4 毫秒。

2. 傳送至目標的傳出要求範例:

1436403888665 info treq m=GET, u=/, h=127.0.0.1:8080, i=0
  • 1436403888651 - Unix 日期戳記
  • info - 取決於背景資訊。這可能是資訊、警告或錯誤,視記錄層級而定。可以是統計資料記錄的統計資料、警告的警告或錯誤錯誤。
  • treq - 用於識別事件。在這種情況下,目標要求。
  • m - 目標要求中使用的 HTTP 動詞。
  • u - 基本路徑後的網址部分。
  • h:後端目標的主機和通訊埠號碼。
  • i:記錄項目的 ID。這四個事件項目都會共用這個 ID。

3. 來自目標的傳入回應範例

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

1436403888651 - Unix 日期戳記

  • info - 取決於背景資訊。這可能是資訊、警告或錯誤,視記錄層級而定。可以是統計資料記錄的統計資料、警告的警告或錯誤錯誤。
  • tres - 用於識別事件。在本例中是目標回應。
  • s:HTTP 回應狀態。
  • d - 以毫秒為單位的時間長度。目標執行 API 呼叫所需的時間。
  • i:記錄項目的 ID。這四個事件項目都會共用這個 ID。

4. 給用戶端的傳出回應範例

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

1436403888651 - Unix 日期戳記

  • info - 取決於背景資訊。這可能是資訊、警告或錯誤,視記錄層級而定。可以是統計資料記錄的統計資料、警告的警告或錯誤錯誤。
  • res:用於識別事件。在這種情況下,應回應用戶端。
  • s:HTTP 回應狀態。
  • d - 以毫秒為單位的時間長度。這是 API 呼叫花費的總時間,包括目標 API 耗費的時間,以及 Edge Microgateway 本身花費的時間。
  • i:記錄項目的 ID。這四個事件項目都會共用這個 ID。

記錄檔排程

記錄檔會依 rotate_interval 設定屬性指定的時間間隔輪替。項目會持續新增至相同的記錄檔,直到輪替間隔到期為止。不過,每次重新啟動 Edge Microgateway 時,系統都會收到新的 UID,並以這個 UID 建立一組新的記錄檔。另請參閱良好的記錄檔維護做法一文。

Edge Microgateway 設定參考資料

設定檔的位置

本節所述的設定屬性位於 Edge Microgateway 設定檔中。如要進一步瞭解如何變更設定,請參閱「變更設定」。

Edge_config 屬性

這些設定是用來設定 Edge Microgateway 執行個體與 Apigee Edge 之間的互動。

  • bootstrap:(預設值:無) 指向在 Apigee Edge 上執行的 Edge Microgateway 專屬服務的網址。Edge Microgateway 會使用這項服務與 Apigee Edge 通訊。當您執行指令來產生公開/私密金鑰組時,系統會傳回這個網址:edgemicro genkeys。詳情請參閱「設定及設定 Edge Microgateway」。
  • jwt_public_key:(預設值:無) 指向在 Apigee Edge 上部署的 Edge Microgateway Proxy 的網址。這個 Proxy 會做為驗證端點,向用戶端發出已簽署的存取權杖。當您執行部署 Proxy 的指令時,系統會傳回這個網址:edgemicro configuration。詳情請參閱「設定及設定 Edge Microgateway」。

Edgemicro 屬性

這些設定會調整 Edge Microgateway 程序。

  • port:(預設值:8000) Edge Microgateway 程序監聽的通訊埠編號。
  • max_connections:(預設值:-1) 指定 Edge Microgateway 可接收的同時連入連線數量上限。如果超過這個數字,系統會傳回以下狀態:

    res.statusCode = 429; // Too many requests
  • max_connections_hard:(預設值:-1) 在關閉連線前,Edge Microgateway 可接收的同時要求數量上限。這項設定的用途是防範阻斷服務攻擊。建議設為大於 max_connections 的數字。
  • logging
    • level:(預設值:錯誤)
      • info - 記錄透過 Edge Microgateway 執行個體傳輸的所有要求和回應。
      • warn - 僅記錄警告訊息。
      • error - 僅記錄錯誤訊息。
    • dir:(預設值:/var/tmp) 儲存記錄檔的目錄。
    • stats_log_interval:(預設值:60) 統計資料記錄寫入 API 記錄檔時,以秒為單位。
    • rotate_interval:(預設值:24) 記錄檔輪替時以小時為單位。
  • plugins:外掛程式可為 Edge Microgateway 新增功能。如要進一步瞭解如何開發外掛程式,請參閱「開發自訂外掛程式」。
  • dir:從 ./gateway 目錄到 ./plugins 目錄的相對路徑,或是絕對路徑。
  • sequence:要新增至 Edge Microgateway 執行個體的外掛程式模組清單。模組將依照此處的指定順序執行。
  • 偵錯: 為 Edge Microgateway 程序新增遠端偵錯功能。
    • port:要監聽的通訊埠編號。例如,設定 IDE 偵錯工具來監聽這個通訊埠。
    • args:偵錯程序的引數。例如:args --nolazy
  • config_change_poll_interval: (預設值:600 秒) Edge Microgateway 會定期載入新設定,如果有任何變更,就會重新載入。輪詢作業會納入 Edge 上的任何變更 (產品、微閘道感知 Proxy 等) 以及對本機設定檔所做的變更。
  • disable_config_poll_interval: (預設值:false) 設為 true 即可關閉自動變更輪詢。

標頭屬性

這些設定可指定特定 HTTP 標頭的處理方式。

  • x-forwarded-for:(default: true) 設為 false,即可避免將 X 前的標頭傳遞至目標。
  • x-forwarded-host:(default: true) 設為 false,即可避免將 x 轉寄的主機標頭傳遞至目標。
  • x-request-id:(default: true) 設為 false,可防止 x-request-id 標頭傳遞至目標。
  • x-response-time:(預設值:True) 設為 false,可防止 x-response-time 標頭傳遞至目標。
  • via:(預設值:true) 設為 false,防止透過標頭傳遞至目標。

OAuth 屬性

這些設定可控管 Edge Microgateway 用戶端驗證的執行方式。

  • allowNoAuthorization:(預設值:false) 如果設為 true,API 呼叫即可通過 Edge Microgateway,而且完全不需要授權標頭。將此欄位設為 false,即可要求使用授權標頭 (預設值)。
  • allowInvalidAuthorization:(預設值:false) 如果設為 true,如果「Authorization」標頭中傳遞的權杖無效或已過期,系統就會允許 API 呼叫通過。將這個欄位設為 false,即可要求有效的權杖 (預設值)。
  • Authorization-header:(預設值:Authorization: Bearer) 這個標頭用於將存取權杖傳送至 Edge Microgateway。當目標需要將 Authorization 標頭用於其他用途時,建議您變更預設值。
  • api-key-header:(預設值:x-api-key) 用來將 API 金鑰傳送至 Edge Microgateway 的標頭或查詢參數名稱。另請參閱「使用 API 金鑰」。
  • keepAuthHeader:(預設值:false) 設為 true 時,要求中傳送的 Authorization 標頭會傳遞至目標 (保留標頭)。

外掛程式專屬屬性

如要進一步瞭解每個外掛程式可設定的屬性,請參閱使用外掛程式。

篩選 Proxy

您可以篩選 Edge Microgateway 執行個體要處理的微閘道感知 Proxy。 Edge Microgateway 啟動時,會下載相關聯的機構中的所有微閘道感知 Proxy。使用以下設定來限制微閘道可處理的 Proxy。舉例來說,這項設定會將微閘道程序的 Proxy 處理為三個:edgemicro_proxy-1edgemicro_proxy-2edgemicro_proxy-3

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

遮蓋數據分析資料

下列設定會防止要求路徑資訊顯示在 Edge 數據分析中。將以下內容新增至 Migateway 設定,以遮蓋要求 URI 和/或要求路徑。請注意,URI 由要求的主機名稱和路徑部分組成,

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

偵錯和疑難排解

連線至偵錯工具

您可以透過偵錯工具執行 Edge Microgateway,例如節點檢查器。這有助於解決自訂外掛程式的問題及偵錯。

  1. 以偵錯模式重新啟動 Edge Microgateway。方法是在啟動指令的開頭加入 DEBUG=*。例如:

    DEBUG=* edgemicro start -o myorg -e test -k db4e9e8a95aa7fabfdeacbb1169d0a8cbe42bec19c6b98129e02 -s 6e56af7c1b26dfe93dae78a735c8afc9796b077d105ae5618ce7ed
  2. 啟動偵錯工具,並將其設為監聽偵錯程序的通訊埠編號。
  3. 您現在可以逐步查看 Edge Microgateway 程式碼、設定中斷點、觀察運算式等。

您可以指定與偵錯模式相關的標準 Node.js 標記。舉例來說,--nolazy 可協助對非同步程式碼進行偵錯。

正在檢查記錄檔

如果發生問題,請務必檢查記錄檔,瞭解執行詳細資料和錯誤資訊。詳情請參閱管理記錄檔

使用 API 金鑰安全性功能

API 金鑰提供簡單的機制,可用於驗證向 Edge Microgateway 發出的要求。如要取得 API 金鑰,請從包含 Edge Microgateway 驗證 Proxy 的 Apigee Edge 產品中複製用戶端金鑰 (也稱為用戶端 ID) 值。

金鑰快取

系統會將 API 金鑰交換為不記名權杖,並快取該權杖。您可以對傳送至 Edge Microgateway 的要求設定 Cache-Control: no-cache 標頭,藉此停用快取功能。

如果您使用 Apigee Edge Private Cloud 15.07 版,此為必要解決方法

如要在 Edge Private Cloud 15.07 上使用 API 金鑰安全性,您必須實作此處所述的解決方法。要解決這個問題,您必須變更 edgemicro-auth Proxy 中的 Node.js 檔案中的一行程式碼,然後重新啟動 Edge Microgateway。

在 Edge UI 中實作解決方法

此程序會在您完成後,重新執行 edgemicro start 指令。

  1. 在 Edge UI 的 Proxy 編輯器中開啟 Edgemicro-auth Proxy。
  2. 選取「開發」分頁標籤。
  3. 在「導覽器」的「指令碼」下方,開啟名為 verify-api-key.js 的 JavaScript 檔案。
  4. 前往第 109 行:

    api_product_list: apigeeToken.app && apigeeToken.app.apiproducts ? apigeeToken.app.apiproducts : []
  5. 將「api_product_list:」後方的部分替換成產品名稱的「硬式編碼」陣列,與您要使用的任何 API 金鑰相關聯。舉例來說,如要使用含有「Product-1」和「Product-2」的開發人員應用程式金鑰,請依照以下程式碼編寫程式碼:

    api_product_list: ["Product-1", "Product-2"]
  6. 按一下「儲存」。
  7. 執行 edgemicro start 指令。

在本機 Edge Microgateway 程式碼集內實作

此程序會要求您重新執行 Edgemicro 設定指令,後面接著 edgemicro start

  1. 開啟 <microgateway-root-dir>/edge/auth/api/controllers/verify-api-key.js 檔案,其中 <microgateway-root-dir> 是您執行 npm install 指令時安裝 Edge Microgateway 的目錄。
  2. 前往第 109 行:

    api_product_list: apigeeToken.app && apigeeToken.app.apiproducts ? apigeeToken.app.apiproducts : []
  3. 將「api_product_list:」後方的部分替換成產品名稱的「硬式編碼」陣列,與您要使用的任何 API 金鑰相關聯。舉例來說,如要使用含有「Product-1」和「Product-2」的開發人員應用程式金鑰,請依照以下程式碼編寫程式碼:

    api_product_list: ["Product-1", "Product-2"]
  4. 儲存檔案。
  5. 執行 edgemicro configuration 指令。(若使用 Edge Private Cloud,則可設定 edgemicro 私人設定)。 這個指令會重新部署 Edgemicro-auth Proxy。
  6. 執行 edgemicro start 指令。

使用 OAuth2 權杖安全性

如要進一步瞭解如何將 OAuth 權杖與 Proxy 要求搭配使用,請參閱安全 Edge Microgateway

使用 API 金鑰

如要進一步瞭解如何將 API 金鑰與 Proxy 要求搭配使用,請參閱安全 Edge Microgateway

設定 API 金鑰名稱

根據預設,x-api-key 是 API 金鑰標頭或查詢參數使用的名稱。您可以在設定檔中變更這項預設設定,如「變更設定」一文所述。 例如,將名稱變更為 apiKey

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