您正在查看 Apigee Edge 說明文件。
查看 Apigee X 說明文件。 資訊
總覽
本主題將說明如何管理及設定 Edge Microgateway,包括監控、記錄和偵錯。
變更設定
需要瞭解的設定檔包括:
- 預設系統設定檔
- 新初始化 Edge Microgateway 執行個體的預設設定檔
- 運作中執行個體的動態設定檔
本節將探討這些檔案,以及變更這些檔案的須知。如要進一步瞭解設定檔設定,請參閱 Edge Microgateway 設定參考資料。
預設系統設定檔
安裝 Edge Microgateway 後,預設的系統設定檔會放在這裡:
[prefix]/lib/node_modules/edgemicro/config/default.yaml
其中 [prefix]
是 npm
前置字串目錄。請參閱「Edge Microgateway 的安裝位置」。
如果變更系統設定檔,您必須重新初始化、重新設定,並重新啟動 Edge Microgateway:
- 撥打
edgemicro init
- 撥打
edgemicro configure [params]
- 撥打
edgemicro start [params]
新初始化 Edge Microgateway 執行個體的預設設定檔
執行 edgemicro init
時,系統設定檔 (如上所述) default.yaml
會放在以下目錄中:~/.edgemicro
如果您在 ~/.edgemicro
中變更設定檔,必須重新設定並重新啟動 Edge Microgateway:
edgemicro stop
edgemicro configure
[params]
edgemicro start
[params]
運作中執行個體的動態設定檔
當您執行 edgemicro configure [params]
時,系統會在 ~/.edgemicro
建立動態設定檔,並依據以下模式命名檔案:[org]-[env]-config.yaml
,其中 org
和 env
是您的 Apigee Edge 機構和環境名稱。您可以使用這個檔案變更設定,無須停機即可重新載入設定。舉例來說,如果您新增並設定外掛程式,則可重新載入設定,而不會產生任何停機時間。如下所述。
如果 Edge Microgateway 正在執行 (零停機時間選項):
- 重新載入 Edge Microgateway 設定:
edgemicro reload -o [org] -e [env] -k [key] -s [secret]
在此情況下:
- 「
org
」是您的 Edge 機構名稱 (您必須是機構組織管理員)。 - 「
env
」是機構中的環境 (例如測試或正式版)。 key
是設定指令先前傳回的金鑰。secret
是設定指令先前傳回的金鑰。
範例
edgemicro reload -o docs -e test -k 701e70ee718ce6dc188016b3c39177d64a88754d615c74e1f78b6181d000723 -s 05c14356e42ed136b8dd35cf8a18531ff52d7299134677e30ef4e34ab0cc824
- 「
如果 Edge Microgateway 已停止:
- 重新啟動 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,請按照下列步驟操作:
- 使用 openssl 公用程式或任何您偏好的方法產生或取得 SSL 憑證和金鑰。
- 在 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
- 重新啟動 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 和記錄檔。
如何設定記錄層級
您可以設定這些記錄層級:info、warn 和 error。建議提供資訊層級。它會記錄所有 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) 記錄檔輪替時以小時為單位。
-
level:(預設值:錯誤)
- 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-1
、edgemicro_proxy-2
和 edgemicro_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,例如節點檢查器。這有助於解決自訂外掛程式的問題及偵錯。
- 以偵錯模式重新啟動 Edge Microgateway。方法是在啟動指令的開頭加入
DEBUG=*
。例如:
DEBUG=* edgemicro start -o myorg -e test -k db4e9e8a95aa7fabfdeacbb1169d0a8cbe42bec19c6b98129e02 -s 6e56af7c1b26dfe93dae78a735c8afc9796b077d105ae5618ce7ed
- 啟動偵錯工具,並將其設為監聽偵錯程序的通訊埠編號。
- 您現在可以逐步查看 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 指令。
- 在 Edge UI 的 Proxy 編輯器中開啟 Edgemicro-auth Proxy。
- 選取「開發」分頁標籤。
- 在「導覽器」的「指令碼」下方,開啟名為 verify-api-key.js 的 JavaScript 檔案。
- 前往第 109 行:
api_product_list: apigeeToken.app && apigeeToken.app.apiproducts ? apigeeToken.app.apiproducts : []
- 將「api_product_list:」後方的部分替換成產品名稱的「硬式編碼」陣列,與您要使用的任何 API 金鑰相關聯。舉例來說,如要使用含有「Product-1」和「Product-2」的開發人員應用程式金鑰,請依照以下程式碼編寫程式碼:
api_product_list: ["Product-1", "Product-2"]
- 按一下「儲存」。
- 執行 edgemicro start 指令。
在本機 Edge Microgateway 程式碼集內實作
此程序會要求您重新執行 Edgemicro 設定指令,後面接著 edgemicro start。
- 開啟
<microgateway-root-dir>/edge/auth/api/controllers/verify-api-key.js
檔案,其中<microgateway-root-dir>
是您執行npm install
指令時安裝 Edge Microgateway 的目錄。 - 前往第 109 行:
api_product_list: apigeeToken.app && apigeeToken.app.apiproducts ? apigeeToken.app.apiproducts : []
- 將「api_product_list:」後方的部分替換成產品名稱的「硬式編碼」陣列,與您要使用的任何 API 金鑰相關聯。舉例來說,如要使用含有「Product-1」和「Product-2」的開發人員應用程式金鑰,請依照以下程式碼編寫程式碼:
api_product_list: ["Product-1", "Product-2"]
- 儲存檔案。
- 執行 edgemicro configuration 指令。(若使用 Edge Private Cloud,則可設定 edgemicro 私人設定)。 這個指令會重新部署 Edgemicro-auth Proxy。
- 執行 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