Edge Microgateway 版本資訊

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

3.3.x 版本

修正錯誤並強化 v.3.3.x 版

3.3.3

2024 年 4 月 25 日,我們已針對 Edge Microgateway 發布下列修正和強化項目。

元件版本:

下表列出與 Edge Microgateway 3.3.3 相關聯的個別元件專案的版本號碼。請注意,由於每個元件都是獨立的專案,因此版本號碼可能與主要產品版本不符:

microgateway core 設定 外掛程式 edgeauth
3.3.3 3.3.3 3.3.3 3.3.3 3.2.2

修正錯誤及強化功能:

問題 ID 類型 說明
315939218 已移除

Eureka 用戶端外掛程式已從 Edge Microgateway 中移除。這項功能的移除不會影響 Edge Microgateway 核心功能,也不會重新編寫目標網址。詳情請參閱在外掛程式中重新編寫目標網址

283947053 已移除

已從 Edge Microgateway 移除對 forever-monitor 的支援。您可以將 forever-monitor 替換為 PM2。詳情請參閱這篇 Apigee 社群貼文:Edgemicro + PM2: Start Edgemicro as a service

已修正安全性問題

  • CVE-2023-0842
  • CVE-2023-26115
  • CVE-2022-25883
  • CVE-2017-20162
  • CVE-2022-31129
  • CVE-2022-23539
  • CVE-2022-23541
  • CVE-2022-23540
  • CVE-2024-21484
  • CVE-2022-46175
  • CVE-2023-45133
  • CVE-2020-15366
  • CVE-2023-26136
  • CVE-2023-26115

3.3.2

2023 年 8 月 18 日,我們已針對 Edge Microgateway 發布下列修正和強化項目。

元件版本:

下表列出與 Edge Microgateway 3.3.2 相關聯的個別元件專案的版本號碼。請注意,由於每個元件都是獨立的專案,因此版本號碼可能與主要產品版本不符:

microgateway core 設定 外掛程式 edgeauth
3.3.2 3.3.2 3.3.2 3.3.2 3.2.2

修正錯誤及強化功能:

問題 ID 類型 說明
296187679 功能

支援的 Node.js 版本包括:16、18 和 20。自 3.3.2 版起,Edge Microgateway CLI 指令僅適用於支援的版本。在不支援的版本中執行 CLI 指令會產生錯誤。 另請參閱 Apigee 支援的軟體和支援的版本

283947053 錯誤

針對與應用程式相關聯的 API 產品清單中,Edge Microgateway 傳回第一個 API 產品的問題。現在我們會根據要求,判斷要傳回的正確 API 產品,這個問題現已修正。

274443329 錯誤

已修正 Docker 提取過時映像檔版本的問題。 Docker 節點版本已更新至 Node.js 18 版。現在請使用 18.17-buster-slim 版本建構 Docker 映像檔。

已修正安全性問題

無。

3.3.1

2022 年 6 月 7 日,我們已對 Edge Microgateway 發布下列修正及強化項目。

元件版本:

下表列出與 Edge Microgateway 3.3.1 相關聯的個別元件專案的版本號碼。請注意,由於每個元件都是獨立的專案,因此版本號碼可能與主要產品版本不符:

microgateway core 設定 外掛程式 edgeauth
3.3.1 3.3.1 3.3.1 3.3.1 3.2.2

修正錯誤及強化功能:

問題 ID 類型 說明
220885293 功能

現已支援 Node.js 16 版。

231972608 錯誤

已修正以下問題:private configure 指令在嘗試設定私有雲時發生錯誤。

233315475 錯誤

過去,json2xml plugin在將回應從 JSON 轉換為 XML,以及與 accumulate-response plugin搭配使用時,會擲回剖析錯誤的問題。

221432797 變更

基本 Edge Microgateway 映像檔的 Docker Node.js 版本已升級至 Node.js 14。

215748732 功能

revokekeys 指令已新增 SAML 權杖驗證的相關支援。

您現在可以使用 revokekeys 指令中的 -t 選項,傳遞 SAML 權杖,而非使用者名稱和密碼。

詳情請參閱指令列參考資料

218723889 文件更新

說明文件已更新,加入儲存在 GitHub 中支援的 Edge Microgateway 外掛程式的連結。請參閱 Edge Microgateway 隨附的現有外掛程式

已修正安全性問題

問題 ID 說明
CVE-2021-23413 這會影響 3.7.0 之前的 jszip 套件。如果在將檔案名稱設為物件原型值 (例如:proto、toString 等) 的檔案名稱中編寫新的 ZIP 檔案,系統會產生含有已修改原型例項的傳回的物件。

3.3.0

2022 年 2 月 4 日,我們已針對 Edge Microgateway 發布下列修正和強化項目。

元件版本:

下表列出與 Edge Microgateway 3.3.0 相關聯的個別元件專案的版本號碼。請注意,由於每個元件都是獨立的專案,因此版本號碼可能與主要產品版本不符:

microgateway core 設定 外掛程式 edgeauth
3.3.0 3.3.0 3.3.0 3.3.0 3.2.2

修正錯誤及強化功能:

問題 ID 類型 說明
219556824 已知問題 Edge Microgateway Gateway 3.3.0 與 npm 稽核修正指令不相容。

執行 npm audit fix 會導致 apigeetool 升級至 0.15.2,這會影響 edgemicro upgradeauth 指令。

如果您執行 npm audit fix 並在之後執行 edgemicro upgradeauth,就會看到以下錯誤訊息:

Error: This method has been removed in JSZip 3.0, please check the upgrade guide.

如要修正問題,請執行下列指令,還原正確的 apigeetool 版本:

npm install apigeetool@0.15.1

我們將在日後的 Edge Microgateway 版本中解決這個問題。

138622990 功能

配額外掛程式 isHTTPStatusTooManyRequestEnabled 的新旗標,可將外掛程式設為在違反配額時,傳回 HTTP 429 回應狀態而非狀態 403。請參閱配額的設定選項一節。

192534424 錯誤

已修正 Apigee 數據分析中顯示的回應代碼與 Edge Microgateway 回應代碼不符的問題。

198986036 強化項目 Edge Microgateway 現在會在每個輪詢間隔擷取識別資訊提供者 (IDP) 的公開金鑰,並在 IDP 的公開金鑰變更時更新金鑰。先前,如果 IDP 的公開金鑰有所變更,extauth 外掛程式就無法在未重新載入 Edge Microgateway 的情況下更新公開金鑰。
168713541 錯誤

說明文件經過強化,說明如何為多個目標設定 TLS/SSL。請參閱「使用用戶端 SSL/TLS 選項」。

171538483 錯誤

說明文件已變更,為修正記錄檔的命名慣例。請參閱記錄檔命名慣例一文。

157908466 錯誤

已變更說明文件,正確解釋如何安裝特定版本的 Edge Microgateway。如果可以連上網際網路,請參閱「在可以連線的情況下升級 Edge Microgateway」一文。

215748427 錯誤 先前使用現有金鑰和密鑰組合撤銷金鑰時,撤銷金鑰指令傳回錯誤的錯誤。這個問題現已修正。
205524197 錯誤 說明文件已更新,加入完整的記錄層級清單。詳情請參閱 edgemicro 屬性如何設定記錄層級

3.2.x 版本

修正錯誤並強化 v.3.2.x 版

3.2.3

2021 年 9 月 17 日,我們已針對 Edge Microgateway 發布下列修正和強化項目。

元件版本:

下表列出與 Edge Microgateway 3.2.3 相關聯的個別元件專案的版本號碼。請注意,由於每個元件都是獨立的專案,因此版本號碼可能與主要產品版本不符:

microgateway core 設定 外掛程式 edgeauth
3.2.3 3.2.3 3.2.3 3.2.3 3.2.2

修正錯誤及強化功能:

問題 ID 類型 說明
192416584 功能

disableStrictLogFile 設定屬性可讓您放寬應用程式記錄檔 api-log.log 的嚴格檔案權限。詳情請參閱如何放寬記錄檔權限的說明。

192799989 功能

on_target_response_abort 設定屬性可讓您在用戶端 (Edge Microgateway) 與目標伺服器之間的連線過早關閉時,控制 Edge Microgateway 的行為。詳情請參閱「edgemicro 屬性」一文。

148062415 錯誤 已修正 Docker 容器環境中的 Edge Microgateway 未藉由 docker stop {containerId} 指令正常關閉的問題。已終止程序,但未移除 .sock.pid 檔案。現在,系統會移除檔案,然後重新啟動同一個容器並正常運作。
190715670 錯誤 已修正在微閘道的內部重新載入活動期間,部分要求會卡住的問題。這個問題是斷斷續續的,在高流量的情況下則發生。 這個問題是在使用 OAuth 外掛程式的 tokenCachecacheKey 功能時出現。
183910111 錯誤 先前使用斜線的資源路徑網址誤解為獨立的資源路徑,這項問題現已修正。舉例來說,系統會將 /country/all/country/all/ 路徑解讀為相同的路徑。

已修正安全性問題

問題 ID 說明
CVE-2020-28503 2.0.5 之前的套件複製要求具有主要功能,容易產生原型汙染。
CVE-2021-23343 所有套件路徑剖析版本都會透過 splitDeviceRe、SplitTailRe 和 splitPathRe 規則運算式使用規則運算式阻斷服務 (ReDoS)。 ReDoS 呈現出多項式最壞情況的時間複雜度。

3.2.2

2021 年 7 月 15 日星期四,我們已針對 Edge Microgateway 發布下列修正和強化項目。

元件版本:

下表列出與 Edge Microgateway 3.2.2 相關聯的個別元件專案的版本號碼。請注意,由於每個元件都是獨立的專案,因此版本號碼可能與主要產品版本不符:

microgateway core 設定 外掛程式 edgeauth
3.2.2 3.2.2 3.2.2 3.2.2 3.2.2

修正錯誤及強化功能:

問題 ID 類型 說明
185323500 變更

expires_in 值已從字串變更為整數

權杖要求和更新憑證要求 API 現在會傳回 expires_in,做為以秒為單位指定的整數值。

為符合 RFC 6749 OAuth 2.0 授權架構expires_in 設定參數的預期值已從字串變更為整數。詳情請參閱作業與設定參考資料

188492065 變更 Node.js 8 支援結束

自 3.2.2 版起,系統不再支援 Node.js 8。詳情請參閱「支援的軟體和支援的版本:Edge Microgateway」。

183990345 功能 設定 Docker 容器的記錄檔輸出內容

Edge Microgateway 設定參數 to_console 可讓您選擇將記錄資訊傳送至標準輸出,而非傳送至記錄檔。如果您按照步驟操作 Docker 容器中的 Edge Microgateway,該容器預設會將 stdout 和錯誤輸出內容重新導向至位於容器位於 ${APIGEE_ROOT}/logs/edgemicro.log 的檔案。

為避免將記錄資訊傳送至 edgemicro.log,請在執行容器時使用新的 LOG_CONSOLE_OUTPUT_TO_FILE 變數。

如要進一步瞭解如何使用這個新的變數,請參閱「使用 Docker for Edge Microgateway」。

183057665 功能 讓可設定 edgemicro.pidedgemicro.sock 檔案路徑。

使用 Edge Microgateway 執行 Docker 容器的新 -w, --workdir 參數,可讓您指定應在 Docker 容器中建立 edgemicro.sockedgemicro.pid 檔案的目錄路徑。請參閱「使用 Docker for Edge Microgateway」一文。

191352643 功能 Edge Microgateway 的 Docker 映像檔已更新為使用 NodeJS 12.22 版。請參閱「使用 Docker for Edge Microgateway」一文。

已修正安全性問題

問題 ID 說明
CVE-2021-28860 在 Node.js 混合中 (在 v0.5.1 之前),攻擊者可以透過 mut() 和 merge() 函式,透過「__proto__」新增或變更物件的屬性。受汙染的屬性會直接指派給程式中的每個物件。這麼做有可能導致計畫上架風險,進而造成阻斷服務 (DoS)。
CVE-2021-30246 在 Node.js 適用的 jsrsasign 套件中,到 10.1.13 之間,某些無效的 RSA PKCS#1 v1.5 簽名會誤認為有效。注意:目前還沒有已知的 實用攻擊事件。
CVE-2021-23358 從 1.13.0-0 和 1.13.0-2 之前的底線 (1.3.2 和 1.12.1 之前) 套件容易透過範本函式插入任意程式碼插入,尤其是因為變數屬性做為引數傳遞時,系統不會加以處理。
CVE-2021-29469 Node-redis 是 Node.js Redis 用戶端。在 3.1.1 之前的版本,當用戶端處於監控模式時,規則運算式開始用於偵測訊息,可能會導致某些字串的指數回溯追蹤。這個問題可能導致服務阻斷。3.1.1 版已修補這個問題。
CVE-2020-8174 Docker 映像檔已更新為使用 Node.js 12.22 版

3.2.1

2021 年 3 月 5 日星期五,我們已針對 Edge Microgateway 發布下列修正和強化項目。

元件版本:

下表列出與 Edge Microgateway 3.2.1 相關聯的個別元件專案的版本號碼。請注意,由於每個元件都是獨立的專案,因此版本號碼可能與主要產品版本不符:

microgateway core 設定 外掛程式 edgeauth
3.2.1 3.2.1 3.2.1 3.2.1 3.2.1

修正錯誤及強化功能:

問題 ID 類型 說明
180362102 錯誤 已修正以下問題:JWK 金鑰的空值會導致應用程式失敗。

系統現在會處理空值條件,以免在 jwkPublicKeys 中傳遞空值。

注意:這項修正需要您升級 edgemicro-auth Proxy。

179971737 錯誤 已修正以下問題:系統會將目標 4XX / 5XX 狀態回應記錄為 edgemicro_* Proxy 的 Proxy 錯誤。

如果是 Edge Microgateway 交易,Apigee Edge 錯誤代碼分析資訊主頁會顯示不正確的目標錯誤次數。系統會將目標錯誤的錯誤代碼計為 Proxy 錯誤。此問題已經修正,現在顯示正確的目標錯誤次數。

179674670 功能 我們新增了一項功能,可讓您根據產品狀態碼,篩選放置在 JWT 中的 API 產品清單。

API 產品有三種狀態碼:「待處理」、「已核准」和「已撤銷」。在 edgemicro-auth Proxy 中將名為 allowProductStatus 的新屬性新增至 Set JWT Variables 政策。如要使用這個屬性篩選 JWT 中列出的 API 產品,請按照下列步驟操作:

  1. 在 Apigee Proxy 編輯器中開啟 edgemicro-auth Proxy。
  2. allowProductStatus 屬性新增至 SetJWTVariables 政策的 XML,並指定要篩選的狀態碼清單 (以半形逗號分隔)。例如依「待處理」和「已撤銷」狀態進行篩選:
    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <Javascript timeLimit="20000" async="false" continueOnError="false"
        enabled="true" name="Set-JWT-Variables">
        <DisplayName>Set JWT Variables</DisplayName>
        <FaultRules/>
        <Properties>
            <Property name="allowProductStatus">Pending,Revoked</Property>
        </Properties>
        <ResourceURL>jsc://set-jwt-variables.js</ResourceURL>
    </Javascript>
    
    

    如果您只想列出已核准的產品,請按照下列方式設定屬性:

    <Property name="allowProductStatus">Approved</Property>
  3. 儲存 Proxy。

    如果沒有 Property 標記,則 JWT 中會列出所有狀態碼的產品。

    如要使用這個新屬性,您必須升級 edgemicro-auth Proxy。

178423436 錯誤 透過 CLI 或環境變數傳遞的金鑰和密鑰值會顯示在程序探索工具指令列引數中。

系統已回報一個問題:啟動微閘道後,透過指令列引數或環境變數設定的 Edge Microgateway 金鑰和密鑰值會顯示在節點工作站/子項程序的引數中。

為修正環境變數情境的問題,程序探索工具指令列引數中不會再顯示值。

如果在啟動微閘道時,金鑰和密鑰值是透過指令列傳送,設定會取代任何環境變數值 (如有設定)。在此情況下,這些值仍會顯示在程序探索工具指令列引數中。

178341593 錯誤 已修正 apikeys 外掛程式的說明文件錯誤。

apikeys 外掛程式的 README 檔案誤包含 gracePeriod 屬性。我們從 README 移除這個屬性及其說明。

gracePeriod 屬性是在 oauth 外掛程式中實作。如要使用寬限期功能,您必須使用 oauth 外掛程式。

179366445 錯誤 已解決所有目標 GET 要求的酬載遭到捨棄的問題。

您可以使用新的設定參數 edgemicro: enable_GET_req_body 控制所需行為。如果設為 true,系統會將要求標頭 transfer-encoding: chunked 新增至所有 GET 要求,而 GET 酬載 (如有) 則會傳送至目標。如果為 false (預設值),系統會在將要求傳送至目標前,以無訊息的方式移除酬載。

例如:

edgemicro:
 enable_GET_req_body: true

根據 RFC 7231 第 4.3.1 節:GET 規定,GET 要求酬載沒有定義語意,因此可傳送至目標。

3.2.0

2021 年 1 月 21 日星期四,我們已針對 Edge Microgateway 發布下列修正和強化項目。

元件版本:

下表列出與 Edge Microgateway 3.2.0 相關聯的個別元件專案的版本號碼。請注意,由於每個元件都是獨立的專案,因此版本號碼可能與主要產品版本不符:

microgateway core 設定 外掛程式 edgeauth
3.2.0 3.2.0 3.2.0 3.2.0 3.2.0

修正錯誤及強化功能:

問題 ID 類型 說明
152640618 錯誤 啟用 extauth 外掛程式以設定 x-api-key 標頭,在權杖有效時納入要求物件的 client_id。接著,後續外掛程式才能使用 x-api-key
168836123、172295489、176462355、176462872 功能 開始支援 Node.js 14。
172376835 錯誤 edgemicro-auth Proxy 中為 /token 端點使用正確的時間單位。

edgemicro-auth Proxy 中的 /token 端點以毫秒為單位傳回 expires_in 時,這個問題現已修正。不過,根據 OAuth 規格,應與 refresh_token_expires_in 的時間單位一致 (以秒為單位)。

這項修正不會改變到期時間的長度,只會改變時間單位。僅適用於存取權杖回應酬載中的 expires_in 欄位。同一個回應酬載中的 JWT 權杖會包含 iatexp 這兩個欄位,而且系統會正確產生這些欄位,並一律使用 seconds 時間單位。

如果用戶端仰賴 expires_in 值 (以毫秒為單位),以便在權杖過期前更新權杖,則不修改用戶端就套用這項修正,可能會導致更頻繁且不必要的重新整理。這些用戶端需要修改以因應時間單位變更,以維持原始行為。

如果用戶端總是使用 JWT 權杖中的值來評估權杖更新週期,則用戶端不需要變更。

173064680 錯誤 已修正所有資料區塊之前,微閘道結束目標要求的問題。

這是在高酬載要求中觀察到的間歇性問題,這個問題是在 3.1.7 版中導入。

174640712 錯誤 為外掛程式加入適當的資料處理功能。

下列外掛程式已正確處理資料處理:json2xmlaccumulate-requestaccumulate-responseheader-uppercase。如需外掛程式的詳細資料,請參閱 microgateway-plugins

3.1.x 版本

修正錯誤並強化 v.3.1.x 版

3.1.8

2020 年 11 月 16 日星期一,我們已針對 Edge Microgateway 發布下列修正和強化項目。

元件版本:

下表列出與 Edge Microgateway 3.1.8 相關聯的個別元件專案的版本號碼。請注意,由於每個元件都是獨立的專案,因此版本號碼可能與主要產品版本不符:

microgateway core 設定 外掛程式 edgeauth
3.1.8 3.1.9 3.1.7 3.1.3 3.1.2

修正錯誤及強化功能:

問題 ID 類型 說明
169201295 錯誤 在環境變數標記中,數字和布林值未正確剖析。

環境變數替換作業會將所有值剖析為字串,導致剖析布林值或數值時發生錯誤。例如,edgemicro.port 必須是數值,且需要數值。修正了支援布林值和數值的問題。如需設定詳細資料,請參閱「使用環境變數值設定設定屬性」。

169202749 錯誤 在某些情況下,環境變數替換作業無法運作。

無法處理部分設定屬性的環境變數替換作業。如要瞭解相關限制,請參閱「使用環境變數值來設定設定屬性」。

168732942 錯誤 已修正 OAuth 範圍未如預期限制 API Proxy 存取權的問題。

edgemicro-auth Proxy 中的 /token 流量因以下兩種情況而產生 JWT,但未在 Edge 上定義正確的產品範圍:1) 傳送至 /token 流程的要求酬載未傳遞範圍參數,或 2) 透過要求酬載傳遞至 /token 流程中的無效範圍。我們已修正了會傳回 Apigee Edge 中 API 產品定義的所有範圍。

170609716 錯誤 已修正 edgemicro-auth Proxy 中的 /refresh 資料流產生不含 apiProductList 的 JWT 的問題。

170708611 錯誤 自訂外掛程式無法使用 API 產品範圍。

API 產品範圍不適用於自訂外掛程式,也不會寫入快取設定檔。如要瞭解外掛程式如何存取範圍詳細資料,請參閱「 關於外掛程式 init() 函式」。

169810710 功能 儲存在快取設定檔中的金鑰和密鑰。

系統每次重新載入/開始時,系統會將 Edge Microgateway 金鑰和密鑰儲存在快取設定 YAML 檔案中。在 3.1.8 版中,金鑰和密鑰不再儲存在快取設定檔中。如果金鑰和密鑰先前已寫入快取設定檔,系統會移除這些項目。

170708621 功能 無法停用數據分析外掛程式。

在先前的微閘道版本中,數據分析外掛程式預設為啟用,且無法加以停用。在 3.1.8 版中,我們導入了新的設定參數 enableAnalytics,以啟用或停用數據分析外掛程式。詳情請參閱設定參考資料

159571119 錯誤 在自訂外掛程式回應/通訊端逾時的情況下,透過 onerror_request 掛鉤接收空值錯誤。

已修正 onerror_request 事件的正確 HTTP 狀態碼和錯誤訊息,以及 onerror_response 事件的正確錯誤訊息。

3.1.7

2020 年 9 月 24 日星期四,我們已針對 Edge Microgateway 發布下列修正和強化項目。

元件版本:

下表列出與 Edge Microgateway 3.1.7 相關聯的個別元件專案的版本號碼。請注意,由於每個元件都是獨立的專案,因此版本號碼可能與主要產品版本不符:

microgateway core 設定 外掛程式 edgeauth
3.1.7 3.1.8 3.1.6 3.1.2 3.1.1

修正錯誤及強化功能:

問題 ID 類型 說明
131708105 錯誤 analytics 外掛程式會錯誤處理 axpublisher 呼叫的空值回應,並導致工作站結束。

133162200 錯誤 數據分析中的開發人員應用程式資訊未填入 403 狀態回應 (因未經授權的產品資源路徑所造成),或是因權杖過期或無效權杖而產生的 401 回應。

132194290 錯誤 Apigee Edge 拒絕部分數據分析記錄時,系統會捨棄數據分析記錄。

158618994 錯誤 Redis 用戶端連線次數過多。

161404373 錯誤 如果出現 404 狀態回應,回應訊息會包含完整的 Proxy URI。
166356972 錯誤

以 Node.js 12.13.x 或以上版本執行 Edge Microgateway,在執行可轉換要求酬載的外掛程式時導致下列錯誤:

{"message":"write after end","code":"ERR_STREAM_WRITE_AFTER_END"}

168681746 錯誤 無法使用 redisBasedConfigCache:true 的 Edge Microgateway 手動重新載入功能。

149256174 錯誤 網路故障時,系統不會記錄 OAuth 外掛程式錯誤。

166517190 錯誤 Synchronizer 不會儲存及擷取 jwk_public_keys 資料,而是儲存在 Redis 中。

141659881 錯誤 處理無效目標憑證時發生錯誤,並顯示具誤導性的錯誤回應。

142808699 錯誤 存取控制外掛程式未正確處理「allow」和「deny」區段。

微閘道現在可正確處理拒絕區段,並遵循「allow」和「deny」區段的順序。微閘道設定檔已新增 noRuleMatchAction 屬性,以便與 Apigee Edge AccessControl 政策保持一致。另請參閱 GitHub 上的「存取控制外掛程式 README」。

3.1.6

2020 年 8 月 20 日星期四,我們已針對 Edge Microgateway 發布下列修正和強化項目。

元件版本:

下表列出與 Edge Microgateway 3.1.6 相關聯的個別元件專案的版本號碼。請注意,由於每個元件都是獨立的專案,因此版本號碼可能與主要產品版本不符:

microgateway core 設定 外掛程式 edgeauth
3.1.6 3.1.7 3.1.5 3.1.1 3.1.1

修正錯誤及強化功能:

問題 ID 類型 說明
163711992 功能 輪替金鑰指令的自訂金鑰和憑證檔案位置選項。

如要進一步瞭解這些新指令選項,請參閱「輪替金鑰」一文。

154838259 錯誤 修正多個資料中心內多執行個體適用的金鑰輪替問題

如要進一步瞭解這些新指令選項,請參閱「輪替金鑰」一文。

145525133 Alpha 版功能 新的外掛程式指標

詳情請參閱 GitHub 上的 新外掛程式指標 README 檔案。

159396879 錯誤 移除未使用的套件輔助程式
161092943 錯誤 基本路徑驗證有誤

在 3.1.6 版之前,當 basepath 結尾不是 / 時,Proxy 基本路徑的比對結果有誤。

以下進一步說明先前的行為 (已在 3.1.6 中修正):

假設 Proxy 已設定基本路徑:/hello/v1https://mocktarget.apigee.net 的目標路徑。現在,假設 Proxy 收到下列要求:

要求路徑 已解析的路徑 結果
/hello/v1/json https://mocktarget.apigee.net/json 解析的路徑正確,因為 /hello/v1 的基礎路徑已成功比對。
要求路徑 已解析的路徑 結果
/hello/v1json https://mocktarget.apigee.netjson 解析的路徑不正確,因為 /hello/v1/hello/v1json 的子字串。由於 /hello/v1json 不是有效的路徑,因此 Edge Microgateway 應擲回 404。在 3.1.6 以上版本中,系統會擲回 404 錯誤。
160431789 錯誤 自訂外掛程式 - 傳送至 init 的設定物件未填入

與 Edge Microgateway 設定檔合併後,所有自訂外掛程式的設定物件中皆可使用 Apigee Edge 設定。請參閱設定的相關說明。

162758808 錯誤 新的 Redis 備份儲存庫配額設定

您可以使用下列設定來指定配額的 Redis 備份存放區。詳情請參閱使用 Redis 備份儲存庫取得配額相關說明。

3.1.5

2020 年 6 月 26 日星期五,我們已針對 Edge Microgateway 發布下列修正和強化項目。

元件版本:

下表列出與 Edge Microgateway 3.1.5 相關聯的個別元件專案的版本號碼。請注意,由於每個元件都是獨立的專案,因此版本號碼可能與主要產品版本不符:

microgateway core 設定 外掛程式 edgeauth
3.1.5 3.1.6 3.1.4 3.1.0 3.1.0

修正錯誤及強化功能:

問題 ID 類型 說明
159210507 功能 設定排除外掛程式處理程序

我們新增了一項設定功能,可以略過指定網址的外掛程式處理作業。詳情請參閱「 設定外掛程式的排除網址」。

156986819、158529319 錯誤 json2xml 外掛程式的問題已修正

在某些情況下,外掛程式會產生重複的 Content-Type 標頭,以及在某些情況下無法如預期將標頭傳送至目標的問題。

156560067、159688634 功能

在設定中使用環境變數值

新增一項功能,可讓您在設定檔中使用標記指定環境變數。指定的環境變數標記會替換成實際的環境變數值。 替換內容只會儲存在記憶體中,不會儲存在原始設定或快取檔案中。詳情請參閱「 使用環境變數值設定設定屬性」。

(155077210) 錯誤 修正記錄格式問題。

已修正問題,當目標主機出現在記錄檔中,且帶有多餘的冒號。

153673257 錯誤

(僅適用於私有雲的邊緣) 未提取的微閘道感知產品

已修正微閘道感知產品沒有提取的問題。這個問題只在 Edge 針對私有雲安裝作業存在。

154956890、155008028、155829434 功能 支援依據自訂屬性篩選下載的產品

詳情請參閱依自訂屬性篩選產品

153949764 錯誤 記錄檔目的地檔案已滿時,Edge Microgateway 程序當機時會發生當機的問題

改善例外狀況處理機制,以便擷取錯誤並輸出訊息至控制台。

155499600 錯誤 已修正金鑰輪替和 KVM 升級問題

另請參閱輪替 JWT 金鑰

3.1.4

2020 年 4 月 23 日星期五,我們已針對 Edge Microgateway 發布下列修正項目。

修正錯誤:

已修正 3.1.3 版的依附元件問題。3.1.3 版已在 npm 存放區中標示為已淘汰。否則,第 3.1.3 版版本資訊所述的所有錯誤修正和改善項目都適用於這個版本。

3.1.3

2020 年 4 月 15 日星期三,我們已針對 Edge Microgateway 發布下列修正和強化項目。

元件版本:

下表列出與 Edge Microgateway 3.1.3 相關聯的個別元件專案的版本號碼。請注意,由於每個元件都是獨立的專案,因此版本號碼可能與主要產品版本不符:

microgateway core 設定 外掛程式 edgeauth
3.1.3 3.1.3 3.1.3 3.0.14 3.0.9

修正錯誤及強化功能:

  • 153509313 - Node.js 偵錯模組導致記憶體流失的問題已修正。這個問題發生在 3.1.0 版、3.1.1 版和 3.1.2 版。
  • 153509313:修正了兩個不同交易的相同訊息 ID 顯示在記錄輸出內容中的問題。
  • 151673570 - 修正 Edge Microgateway 未更新為使用新的 Apigee KVM API 的問題。Edge Microgateway 現在使用新的指令來新增及更新 KVM 值。
  • 152822846 - 在先前版本中,Edge Microgateway 已更新,因此其資源路徑對應處理方式與 Apigee Edge 相同。這個版本已修正未正確處理 /literal_string/* 模式的問題。例如:/*/2/*。另請參閱 設定「/」、「/*」和「/**」的資源路徑行為
  • 152005003 - 已針對配額啟用機構和環境範圍 ID 的配額變更。
  • 152005003 - 已針對配額啟用機構和環境範圍 ID 的配額變更。「org + env + appName + productName」組合會做為配額 ID 使用。

3.1.2

2020 年 3 月 16 日星期一,我們已針對 Edge Microgateway 發布下列修正和強化項目。

元件版本:

下表列出與 Edge Microgateway 3.1.3 相關聯的個別元件專案的版本號碼。請注意,由於每個元件都是獨立的專案,因此版本號碼可能與主要產品版本不符:

microgateway core 設定 外掛程式 edgeauth
3.1.2 3.1.2 3.1.2 3.0.13 3.0.9

修正錯誤及強化功能:

  • 151285018 - 我們改善了功能,為 Edge Microgateway 和後端目標之間的流量新增 HTTP Proxy 支援。此外,Edge Microgateway 和 Apigee Edge 之間現有的 HTTP Proxy 支援也已修正相關問題。詳情請參閱:
  • 149101890:目標伺服器或負載平衡器關閉連結的記錄通知代碼從「ERROR」變更為「INFO」。
  • 150746985:修正在設定檔中出現 redisBasedConfigCache: truequotaUri: https://%s-%s.apigee.net/edgemicro-auth 的情況下,edgemicro verify 指令無法正常運作的問題。
  • 151284716:改善了在重新載入期間重新啟動工作站時,更快關閉伺服器連線的速度。
  • 151588764 - 將用於執行 Docker 容器中 Edge Microgateway 的 Docker 映像檔的 Node.js 版本更新至 12,因為 Node.js v8 已淘汰。
  • 151306049 - 說明文件已更新,列出 Edge Microgateway CLI 指令使用的 Apigee Edge 管理 API。詳情請參閱「 Edge Microgateway 會使用哪些管理 API?」一文。

3.1.1

我們在 2 月 20 日星期四發布了下列修正和強化項目至 Edge Microgateway。

元件版本:

下表列出與 Edge Microgateway 3.1.1 相關聯的個別元件專案的版本號碼。請注意,由於每個元件都是獨立的專案,因此版本號碼可能與主要產品版本不符:

microgateway core 設定 外掛程式 edgeauth
3.1.1 3.1.1 3.1.1 3.0.13 3.0.9

修正錯誤及強化功能:

  • 146069701 - 已修正 microgateway-core 模組未遵循 HTTP_PROXYHTTPS_PROXY 環境變數的問題。 經過這項變更後,系統現在會忽略 YAML 設定檔中的 Proxy 設定 (如有指定),僅使用環境變數來指定 Proxy。

    如要在設定檔中指定 Proxy 設定,您必須一併指定 HTTP_PROXY 變數,這個變數的 Proxy 網址與設定檔中指定的 Proxy 網址相同。舉例來說,如果您指定以下設定:

    edge_config:
      proxy: http://10.128.0.20:3128
      proxy_tunnel: true
    

    此外,您還必須指定以下環境變數:

    HTTP_PROXY=http://10.128.0.20:3128
  • 146320620:已新增設定參數 edgemicro.headers_timeout。這項屬性會限制 HTTP 剖析器在收到完整 HTTP 標頭時等候的時間長度 (以毫秒為單位)。例如:
    edgemicro:
    keep_alive_timeout: 6000
    headers_timeout: 12000

    參數會在內部設定要求的 Node.js Server.headersTimeout 屬性。(預設值:比使用 edgemicro.keep_alive_timeout 設定的時間多 5 秒。這項預設設定可防止負載平衡器或 Proxy 錯誤捨棄連線)。

  • 149278885 - 新增一項功能,可讓您在 API Proxy 層級設定目標 API 逾時,而非使用一種全域逾時設定。

    如果在 API Proxy 中設定 TargetEndpoint 屬性 io.timeout.millis,Edge Microgateway 將可擷取該屬性,並套用目標端點專屬的逾時設定。如未套用這個參數,Edge Microgateway 會使用以 edgemicro.request_timeout 指定的全域逾時。

3.1.0

我們在 1 月 21 日星期二發布了以下修正和強化項目至 Edge Microgateway。

元件版本:

下表列出與 Edge Microgateway 3.1.0 相關聯的個別元件專案的版本號碼。請注意,由於每個元件都是獨立的專案,因此版本號碼可能與主要產品版本不符:

microgateway core 設定 外掛程式 edgeauth
3.1.0 3.1.0 3.1.0 3.0.12 3.0.9

修正錯誤及強化功能:

  • 144187500 - 觸發 quotas.failOpen 旗標時,系統會記錄新的 WARN 層級事件。如果發生配額處理錯誤,或是對 Edge 的「quota apply」要求無法更新遠端配額計數器,就會觸發這個旗標。在這種情況下,系統只會根據本機的計數處理配額,直到下次成功同步處理配額為止。以前,只有在記錄層級設為 DEBUG 時,系統才會記錄這個事件。

    例如:

    2020-01-20T02:52:53.040Z [warn][localhost:8000][5][foo-eval][test][hello/][]
    [DbpGIq9jKfzPX8jvXEivhA0LPwE][f372cc30-3b2f-11ea-845f-a627f][quota][remote quota not
    available so processing locally, setting quota-failed-open for identifier: AppQuota60.Quota60]
    [GET][][][][]
  • 145023519:修正了 Edge Microgateway 偵測到 API Proxy 變更時,進行中或新交易會受到影響的問題。現在對 Proxy 進行變更後,Edge Microgateway 會重新啟動快取和工作站節點。這項異動生效後,執行中的交易和傳送至微閘道的新 API 呼叫不會受到影響。
  • 146378327 - sourceRequesttargetRequesttargetResponse 的記錄層級已變更為「INFO」層級。
  • 146019878 - 修正 Edge Analytics 和 Edge Microgateway sourceResponse/targetResponse 記錄事件中針對「API Proxy 效能」計算的延遲時間差異。現在,Edge Analytics 和 Microgateway 記錄事件的延遲時間會保持一致。
  • 模式比對邏輯相關變更:
    • 147027862 - OAuth 外掛程式已更新,現在支援下列 API 產品中指定的下列資源路徑比對模式:
      • /{literal}**
      • /{literal}*
      • 超過兩個模式的任何組合

      經過本次變更後,Edge Microgateway 外掛程式現在採用與 Apigee Edge 相同的模式比對,如設定「/」、「/*」和「/**」的資源路徑行為中所述。

    • 145644205 - 更新 apiKeys 外掛程式的模式比對邏輯,以比對 OAuth 外掛程式。
  • 143488312 - 已修正問題:用戶端 ID 參數中開頭或結尾的空格,導致 OAuth 權杖和 API 金鑰要求的 JWT 產品清單建立時沒有任何內容。
  • 145640807 和 147579179:新增一項功能,讓名為「同步處理者」的特殊 Edge Microgateway 執行個體可從 Apigee Edge 擷取設定資料並寫入本機 Redis 資料庫。接著,您可以設定其他微閘道執行個體,從資料庫讀取其設定資料。這項功能可為 Edge Microgateway 新增復原層級。這可讓微閘道執行個體啟動及運作,完全不需要與 Apigee Edge 通訊。詳情請參閱「使用同步處理器」。

    同步處理工具功能目前可與 Redis 5.0.x 搭配使用。

3.0.x 版本

修正錯誤並強化 v.3.0.x 版

3.0.10

我們在 11 月 8 日星期五發布了以下修正和強化項目:Edge Microgateway。

元件版本:

下表列出與 Edge Microgateway 3.0.10 相關聯的個別元件專案的版本號碼。請注意,由於每個元件都是獨立的專案,因此版本號碼可能與主要產品版本不符:

microgateway core 設定 外掛程式 edgeauth
3.0.10 3.0.8 3.0.8 3.0.11 3.0.8

修正錯誤及強化功能:

  • 142677575 - 我們已更新功能,讓 Edge Microgateway 的 API 產品中使用的資源路徑模式比對現在符合 Apigee Edge 使用的資源路徑模式比對,如 設定「/」、「/*」和「/**」的資源路徑行為所述。

    注意:如果您使用 /*/2/** 等複合資源模式,請務必將 edgemicro_auth Proxy 新增至獨立 API 產品。接著,您必須將該產品加入 Proxy 的開發人員應用程式中,如以下螢幕截圖所示:

    alt_text

    注意:Edge Microgateway 不支援 features.isSingleForwardSlashBlockingEnabled 設定屬性,如 設定「/」、「/*」和「/**」的資源路徑行為所述。

  • 143740696:quotas 設定結構已變更 (另請參閱 3.0.9 版本的版本資訊)。quotas 屬性可用來設定配額外掛程式。結構變更的目的在於提高設定元素的清晰度。如要設定配額外掛程式,請使用下列 YAML 設定。請注意,設定屬性稱為 quotas。如要進一步瞭解個別 quotas 設定屬性,請參閱 配額的設定選項

    edgemicro:
      home: ../gateway
      port: 8000
      max_connections: -1
      max_connections_hard: -1
      logging:
        level: info
        dir: /var/tmp
        stats_log_interval: 60
      plugins:
        dir: ../plugins
        sequence:
          - oauth
          - quota
    quotas:
      bufferSize:
        hour: 20000
        minute: 500
        default: 10000
      useDebugMpId: true
      failOpen: true
    ...
  • 141750056:新增一項功能,可讓您將 Redis 做為配額備份存放區使用。如果 useRedis 為 true,系統會使用 volos-quota-redis 模組。設為「是」時,配額僅適用於連線至 Redis 的 Edge Microgateway 執行個體。如果為 false,系統會將 volos-quota-apigee 模組做為備份存放區,配額計數器為全球通用。詳情請參閱「 配額的設定選項」一文。例如:
    edgemicro:
    ...
    quotas:
      useRedis: true
      redisHost: localhost
      redisPort: 6379
      redisDb: 1
  • 140574210 - edgemicro-auth Proxy 產生權杖的預設到期時間已從 108000 毫秒 (1.8 分鐘) 變更為 1800 秒 (30 分鐘)。
  • 143551282 - 為了支援支援 SAML 的機構,我們已將 edgemicro genkeys 指令更新為加入 ‑‑token 參數。這個參數可讓您使用 OAuth 權杖 (而非使用者名稱/密碼) 進行驗證。詳情請參閱 產生金鑰的相關說明。

3.0.9

10 月 11 日星期五,我們針對 Edge Microgateway 發布了下列修正和強化項目。

元件版本:

下表列出與 Edge Microgateway 3.0.9 相關聯的個別元件專案的版本號碼。請注意,由於每個元件都是獨立的專案,因此版本號碼可能與主要產品版本不符:

microgateway core 設定 外掛程式 edgeauth
3.0.9 3.0.7 3.0.7 3.0.10 3.0.7

修正錯誤及強化功能:

  • 141989374 - 配額外掛程式新增「失敗開啟」功能。 啟用這項功能後,如果發生配額處理錯誤,或對 Edge 的「配額套用」要求無法更新遠端配額計數器,系統只會依據本機的計數處理配額,直到下一次成功的遠端配額同步處理作業為止。在這兩種情況下,要求物件都會設定 quota-failed-open 標記。

    如要啟用配額的「失敗開啟」功能,請完成下列設定:

    quotas :
     failOpen : true

    注意:此外,OAuth 外掛程式 fail-open 要求物件旗標的名稱已變更為 oauth-failed-open

  • 142093764 - 對 edgemicro-auth Proxy 做出設定變更,以免配額超支。並將配額類型設為日曆。如要使用這項改善項目,您必須將 edgemicro-auth 更新至 3.0.7 以上版本。
  • 142520568 - 新增功能,可啟用在配額回應中記錄 MP (訊息處理器) ID 的功能。如要使用這項功能,必須將 edgemicro-auth Proxy 更新為 3.0.7 以上版本,並設定下列設定:
    quotas:
      useDebugMpId: true

    設定 useDebugMpId 後,Edge 的配額回應將包含 MP ID,並由 Edge Microgateway 記錄。例如:

    {
        "allowed": 20,
        "used": 3,
        "exceeded": 0,
        "available": 17,
        "expiryTime": 1570748640000,
        "timestamp": 1570748580323,
        "debugMpId": "6a12dd72-5c8a-4d39-b51d-2c64f953de6a"
    }

3.0.8

我們在 9 月 26 日星期四發布了下列修正和強化項目至 Edge Microgateway。

元件版本:

下表列出與 Edge Microgateway 3.0.8 相關聯的個別元件專案的版本號碼。請注意,由於每個元件都是獨立的專案,因此版本號碼可能與主要產品版本不符:

microgateway core 設定 外掛程式 edgeauth
3.0.8 3.0.6 3.0.6 3.0.9 3.0.6

修正錯誤及強化功能:

  • 140025210 - 新增「失效開啟」功能。如果 JWT 權杖因連線錯誤導致無法成功向 edgemicro-auth Proxy 發出 API 金鑰驗證呼叫,導致無法重新整理 API 金鑰,這項功能可讓 API 處理繼續進行。

    這項功能可讓您設定寬限期,將舊的權杖保留在快取中,並在寬限期到期前重複使用。這項功能可讓 Edge Microgateway 在發生暫時性連線失敗的情況下繼續處理要求。重新啟用連線且成功通過 Verify API 金鑰呼叫時,系統會擷取新的 JWT 並取代快取中的舊 JWT。

    如要設定新的「失敗開啟」功能,請按照下列步驟操作:

    1. 在 Edge Microgateway 設定檔的 oauth 節存中,設定下列屬性:
      oauth:
        failOpen: true
        failopenGraceInterval: time_in_seconds
        cacheKey: true
        ...

      例如:

      oauth:
        failOpen: true
        failopenGraceInterval: 5
        cacheKey: true
        ...

      在這個示例中,如果因為連線問題而無法重新整理舊權杖,系統會將舊權杖用於 5 秒。5 秒後,系統會傳回驗證錯誤。

  • 141168968 - 已更新,在所有外掛程式記錄檔輸出內容中加入 correlation_id。此外,部分記錄檔的記錄層級已視需要變更為 error
  • 140193349 - 已更新 edgemicro-auth Proxy,要求每次驗證 API 金鑰要求時都必須驗證 Edge Microgateway 金鑰和密鑰。更新了 Edge Microgateway,讓系統一律在每次驗證 API 金鑰要求時傳送金鑰和密鑰。這項變更可避免用戶端取得僅包含 API 金鑰的 JWT。
  • 140090250 - 更新新增診斷記錄以便處理配額。有了這項變更,您現在可以將仲裁記錄輸出與其他 Edge Microgateway 記錄檔建立關聯。

3.0.7

我們在 9 月 12 日星期四發布了下列修正和強化項目至 Edge Microgateway。

元件版本:

下表列出與 Edge Microgateway 3.0.7 相關聯的個別元件專案的版本號碼。請注意,由於每個元件都是獨立的專案,因此版本號碼可能與主要產品版本不符:

microgateway core 設定 外掛程式 edgeauth
3.0.7 3.0.5 3.0.5 3.0.8 3.0.5

修正錯誤及強化功能:

  • 140075602 - 已更新 OAuth 外掛程式,以便在適當時傳回 5xx 狀態碼。先前,外掛程式在所有非 200 情況下只會傳回 4xx 狀態碼。現在,如果訊息回應並非 200 狀態,系統會根據錯誤傳回確切的 4xx 或 5xx 代碼。

    這項功能預設為停用。如要啟用這項功能,請將 oauth.useUpstreamResponse: true 屬性新增至 Edge Microgateway 設定。例如:

    oauth:
      allowNoAuthorization: false
      allowInvalidAuthorization: false
      gracePeriod: 10
      useUpstreamResponse: true
  • 140090623 - 在 3.0.6 版中,加入了新的設定屬性 quota.quotaUri。如要透過部署至貴機構的 edgemicro-auth Proxy 管理配額,請設定這項設定屬性。如未設定這項屬性,配額端點會預設為內部 Edge Microgateway 端點。例如:
    edge_config:
      quotaUri: https://%s-%s.apigee.net/edgemicro-auth

    在 3.0.7 版中,edgemicro-auth 已更新為接受這項新設定。如要使用 quotaUri 屬性,您必須升級至最新的 edgemicro-auth Proxy。詳情請參閱 升級 Edgemicro-auth Proxy。

  • 140470888 - 為提供驗證的配額呼叫新增了授權標頭。此外,edgemicro-auth Proxy 已經過修改,將「機構」從配額 ID 中移除。由於配額端點位於客戶的機構中,因此不再需要配額 ID。
  • 140823165 - 下列屬性名稱:
    edgemicro:
        keepAliveTimeout

    3.0.6 版中的記錄有誤。正確的屬性名稱如下:

    edgemicro:
        keep_alive_timeout
  • 139526406 - 我們修正瞭如果開發人員應用程式提供多項產品,就會發生配額計數有誤的錯誤。在含有多項產品的應用程式中,系統現在會正確對每項產品強制執行配額。「appName + productName」組合會做為配額 ID 使用。

3.0.6

我們在 8 月 29 日星期四發布了下列修正和強化項目至 Edge Microgateway。

  • 138633700 - 新增設定屬性 keepAliveTimeout。這個屬性可讓您設定 Edge Microgateway 逾時 (以毫秒為單位)。(預設值:5000 毫秒)

    例如:

    edgemicro:
      keep_alive_timeout: 600
  • 140090623 - 新增設定屬性 quotaUri。如要透過部署至貴機構的 edgemicro-auth Proxy 管理配額,請設定這項設定屬性。如未設定這項屬性,配額端點會預設為內部 Edge Microgateway 端點。例如:
    edge_config:
      quotaUri: https://your_org-your_env.apigee.net/edgemicro-auth
    

    如要使用這項功能,您必須先為貴機構部署最新版本的 edgemicro-auth Proxy。詳情請參閱「 升級 Edgemicro-auth Proxy」一文。

  • 138722809 - 新增設定屬性 stack_trace。這個屬性可讓您控制是否在記錄檔中顯示堆疊追蹤。例如:
    stack_trace: false

    如果將 stack_trace 設為 true,系統就會在記錄中列印堆疊追蹤。如果設為 false,則堆疊追蹤不會在記錄中列印。

3.0.5

我們在 8 月 15 日星期四發布了下列修正和強化項目至 Edge Microgateway。

修正錯誤
  • 139005279 - 已修正 edgemicro status 指令未傳回正確工作站程序數量的問題。
  • 138437710 - ExitCounter 類別中的一個問題導致系統無法寫入正確記錄。
改善一般記錄訊息
  • 139064652 - 新增為事件和系統記錄新增 tracedebug 記錄層級的功能。目前我們只新增新增這些記錄層級的功能。目前可用的記錄層級有 infowarnerror
  • 139064616 - 所有主控台記錄陳述式的記錄輸出已標準化。控制台記錄陳述式現在包含下列屬性:
    • 時間戳記
    • 元件名稱
    • 程序 ID
    • 控制台記錄訊息
改善 JWT 金鑰和密鑰記錄訊息
  • 138413755 - 改善以下 CLI 指令的 JWT 金鑰和密鑰相關記錄訊息:cert、verify、upgradekvm、Token、genkeys、撤銷金鑰、輪替金鑰,以及設定。
改善逾時和連線遭拒的錯誤訊息
  • 138413577 - 新增及改善後端服務逾時的錯誤處理方式。
  • 138413303 - 新增並改善回應和通訊端逾時的錯誤處理。
  • 138414116 - 新增「連線遭拒」錯誤的錯誤處理機制。

3.0.4

我們在 8 月 1 日星期四發布了下列修正和強化項目至 Edge Microgateway。

  • 134445926 - 改善內部 Edge Microgateway 驗證。
  • 137582169 - 解決導致非使用程序的問題。額外程序會導致外掛程式重新載入並過度使用記憶體。Edge Microgateway 現在會將程序數量保持在預期限制內。
  • 137768774 - 記錄訊息改善項目:
    • 已清除交易 (要求) 記錄。
    • 視需要新增更多記錄訊息。
    • 將交易 (要求) 記錄訊息從控制台輸出內容移至相關記錄檔。
    • 更新主控台記錄檔以使用集中化記錄功能。
  • 138321133、138320563 - 對配額緩衝區進行基礎內部變更,以便日後強化配額。

3.0.3

我們在 7 月 23 日星期二發布了以下修正和強化項目至 Edge Microgateway。

  • 記錄功能強化:現有的執行階段記錄檔會使用新的 eventLog() 函式,以一致的格式擷取和記錄執行階段資料。記錄資訊包括:
    • 時間戳記 (ISO 8601:YYYY-MM-DDTHH:mm:ss.sssZ)。
    • 記錄層級 (錯誤、警告或資訊)。
    • 主機名稱 - 要求標頭的要求主機名稱。
    • 程序 ID - 如果您執行的是 Node.js 程序的叢集,這是發生記錄的程序 ID。
    • Apigee 機構名稱。
    • 機構中的環境名稱。
    • API Proxy 名稱。
    • 用戶端 IP 位址。
    • ClientId。
    • 關聯性 ID (目前未設定)。
    • Edge Microgateway 元件名稱。
    • 自訂訊息 - 部分物件可能會輸出傳送至此錯誤屬性的其他資訊。
    • 要求方法 (若為 HTTP 要求)。
    • 回應狀態碼 (如果是 HTTP 要求)。
    • 錯誤訊息。
    • 錯誤代碼 - 如果物件包含錯誤代碼,則會列印在此屬性中。
    • 所用時間。
    • 作業系統 線條標記結尾。

    空值屬性值會產生空白的方括號 []

    以下範例顯示記錄格式:

    Timestamp [level][hostname][ProcessId][Org][Environment][APIProxy][ClientIp][ClientId][][component][customMessage][reqMethod][respStatusCode][errMessage][errCode][timeTaken]

    (137770055)。

  • 效能:系統不會根據環境篩選 API 產品。我們已修正這項問題。(135038879)。
  • 整合功能測試整合,並改善程式碼品質。

3.0.2

2019 年 7 月 3 日星期三,我們已針對 Edge Microgateway 發布下列修正和強化項目。

程式碼品質:程式碼已通過品質審查,且已根據使用者要求的品質標準修改程式碼。我們修正了 JSHint 衍生的程式碼品質錯誤和警告。因此,我們找出並修復了部分實際的程式碼錯誤。所有 Apigee Edge Microgateway 模組都已完成這項程序。請參閱 6 月 28 日和 7 月 2 日的 microgateway-configmicrogateway-coremicrogateway-pluginsmicrogateway 修訂版本。所有程式碼品質變更的模組均已通過內部工具的測試,該工具會根據客戶用途驗證 Edge Microgateway 的執行作業。

3.0.1

2019 年 6 月 21 日星期五,我們已針對 Edge Microgateway 發布下列修正和強化項目。

  • 134834551 - 變更 Edge Microgateway 支援的 Node.js 版本
    (支援 Node.js 的版本:8 和 12;版本 7、9 和 11 屬於實驗性質)
  • 134751883 - Edge Microgateway 在負載量不足時當機
  • 134518428 - 如果篩選器模式不正確,Edge Microgateway 的產品端點會傳回 5XX
  • 135113408 - 工作站應在工作意外終止時重新啟動
  • 134945852 - 未在 OAuth 外掛程式中使用 tokenCacheSize
  • 134947757 - 在 OAuth 外掛程式中設定快取存留時間
  • 135445171 - OAuth 中的寬限期計算不正確
  • 使用 Edge Microgateway 安裝提供的 Memored 模組
  • 135367906 - 安全性稽核

2.5.x 版

新功能和強化項目 2.5.x 版

(修正日期:2019 年 6 月 7 日 2.5.38 年)

設定不正確的 JWT 可能會導致工作站在使用權杖快取時異常終止。已修正 Edge microgateway-plugins 模組中的問題。(b/134672029)。

(已新增 2.5.37) 新增 CLI 選項 edgemicro-cert -t

edgemicro cert -t 選項可讓您指定 OAuth 權杖,用於驗證管理 API。另請參閱管理憑證

(已新增 2.5.35) 支援使用 edgemicroctl 對 Edge Microgateway 偵錯

您可以將 mgdebug 旗標與 edgemicroctl 搭配使用。另請參閱 Kubernetes 整合工作

(已新增 2.5.35) 為 edgemicroctl 啟用 Windows 版本

(已新增 2.5.31) 新的 Edgemicro-auth/token API

已新增 Edgemicro-auth/token API,讓您以 Base64 編碼的基本授權標頭和 Grant_type 做為表單參數傳遞用戶端/密鑰。請參閱「直接取得不記名權杖」一節。

(已修正 2.5.31) 私人設定不會採用權杖旗標

先前如果將 Edge Microgateway 設為在 Edge for Private Cloud 上使用 OAuth2 存取權杖 (未遵循權杖) 時無法正常運作,這個問題現已修正。

Docker:支援使用自行簽署的憑證

(已新增 2.5.29) 如果您使用的是 Node.js 預設不信任的憑證授權單位 (CA),可以在透過 Edge Microgateway 執行 Docker 容器時使用 NODE_EXTRA_CA_CERTS 參數。詳情請參閱「使用 Node.js 不信任的 CA」。

Docker:支援傳輸層安全標準 (TLS)

(已新增 2.5.29) 在 Docker 容器中執行的 Edge Microgateway 現在支援使用 TLS 對 Edge Microgateway 伺服器發送的傳入要求 (北端要求),以及從 Edge Microgateway 傳送至目標應用程式的傳出要求 (南端要求)。

以下範例會詳細說明如何設定這些 TLS 設定:

在這些範例中,您將瞭解如何使用容器掛接點 /opt/apigee/.edgemicro 載入憑證,隨後在 Edge Microgateway 設定檔中參照這些憑證。

Docker:支援要求 Proxy

(已加 2.5.27) 如果您在 Docker 容器中執行 Edge Microgateway,則可以使用這些選項來控管微閘道在防火牆後方執行的 Proxy 行為:

  • HTTP_PROXY
  • HTTPS_PROXY
  • NO_PROXY

詳情請參閱「將 Edge Micro 做為 Docker 容器執行」。

Docker:新版外掛程式操作說明

(已新增 2.5.27) 如果您在 Docker 容器中執行 Edge Microgateway,現在有兩種方法可以部署外掛程式。其中一個使用 Docker 掛接點的選項,是新的選項。先前存在的另一個選項基本上沒有變更,但 Dockerfile 已更新。詳情請參閱下列連結:

KVM 升級指令支援新的 OAuth 權杖

(已新增 2.5.27) 您可以透過 upgradekvm 指令使用 OAuth 權杖。詳情請參閱「升級 KVM」一文。

在 Edge Analytics 中區隔 API

(已新增 2.5.26) 新的數據分析外掛程式旗標可用來隔離特定 API 路徑,該路徑會在 Edge Analytics 資訊主頁中顯示為獨立 Proxy。舉例來說,您可以將健康狀態檢查 API 區隔開來,以免與實際 API 呼叫混淆。詳情請參閱「從數據分析排除路徑」一文。

設定本機 Proxy

(已新增 2.5.25) 如果使用本機 Proxy,您就不用在 Apigee Edge 中手動建立具備微閘道感知的 Proxy。而微閘道則會使用本機 Proxy 的基本路徑。詳情請參閱使用本機 Proxy 模式

使用獨立模式

(已新增 2.5.25) 您可以從任何 Apigee Edge 依附元件執行 Edge Microgateway。這個情境稱為獨立模式,可讓您在沒有網際網路連線的情況下執行及測試 Edge Microgateway。請參閱在獨立模式下執行 Edge Microgateway

撤銷金鑰

(已新增 2.5.19 版) 已新增 CLI 指令,可撤銷 Edge Microgateway 設定的金鑰和密鑰憑證。

edgemicro revokekeys -o [organization] -e [environment] -u [username] -k [key] -s [secret]
詳情請參閱「撤銷金鑰」一文。

支援 Docker

(已新增 2.5.19) 您現在可以將最新的 Edge Microgateway 版本下載為 Docker 映像檔

docker pull gcr.io/apigee-microgateway/edgemicro:latest

Kubernetes 支援

(已新增 2.5.19) 您可以在部署於 Kubernetes 叢集的服務前,將 Edge Microgateway 做為服務或做為補充資訊閘道部署。請參閱:整合 Edge Microgateway 與 Kubernetes 的總覽

支援 TCP 節點螢幕選項

(已新增 2.5.16) Edge Micro 設定已新增 nodelay 這項配置設定。

根據預設,TCP 連線會使用 Nagle 演算法先緩衝資料再傳送。如果將 nodelay 設為 true,系統會停用這項行為 (資料會在每次呼叫 socket.write() 時立即關閉資料)。詳情請參閱 Node.js 說明文件

如要啟用 nodelay,請編輯 Edge Micro 設定檔,如下所示:

edgemicro:
  nodelay: true
  port: 8000
  max_connections: 1000
  config_change_poll_interval: 600
  logging:
    level: error
    dir: /var/tmp
    stats_log_interval: 60
    rotate_interval: 24

新的永久監控 CLI 選項

(已新增 2.5.12) edgemicro forever 指令新增了參數。這些參數可讓您指定 forever.json 檔案的位置,以及啟動或停止「永久」背景程序。另請參閱永久監控

參數說明
-f, --file指定 forever.json 檔案的位置。
-a, --actionstartstop。預設值為 start。

例:

如何永遠啟用:

edgemicro forever -f ~/mydir/forever.json -a start

如何永久停用:

edgemicro forever -a stop

JWT 金鑰輪替

我們新增了一項功能,可讓您輪替公開/私密金鑰組,這些金鑰組可用於產生用於 Edge Microgateway 中 OAuth 安全性的 JWT 權杖。請參閱 輪替 JWT 金鑰一文。

篩選已下載的 API Proxy

根據預設,Edge Microgateway 會下載 Edge 機構中,名稱開頭為「edgemicro_」的所有 Proxy。您可以變更這項預設設定,下載名稱符合模式的 Proxy。請參閱「 篩選已下載的 Proxy」。

指定沒有 API Proxy 的產品

您可以在 Apigee Edge 中建立不含任何 API Proxy 的 API 產品。這項產品設定可讓與該產品相關聯的 API 金鑰與貴機構中部署的任何 Proxy 搭配使用。自 2.5.4 版起,Edge Microgateway 支援這項產品設定。

支援永久監控

Edge Microgateway 具備 forever.json 檔案,您可以設定此檔案來控制邊緣應重新啟動的次數和間隔。這個檔案會設定名為「永遠監控」的服務,並可透過程式輔助方式管理「永遠」服務。請參閱「 永久監控」一文。

Edge Micro 設定檔的集中管理

如果您執行多個 Edge Microgateway 執行個體,建議您透過單一位置管理其設定。如要這麼做,請指定 HTTP 端點,讓 Edge Micro 下載設定檔。請參閱 指定設定檔端點一文。

支援永久 CLI 選項

(已新增 2.5.8) 使用 edgemicro forever [package.json] 指令指定 forever.json 檔案的位置。在新增這個指令之前,設定檔必須位於 Edge Microgateway 根目錄。

例如:

edgemicro forever ~/mydir/forever.json

新增 configUrl 選項以重新載入指令

(已新增 2.5.8) 您現在可以搭配 edgemicro reload 指令使用 --configUrl-u 選項。

JWT 時間差異的寬限期

(已新增 2.5.7) OAuth 設定中的 gracePeriod 屬性,有助於防止系統時鐘與 JWT 授權權杖中指定的「之前」部分 (nbf) 或「核發時間」(iat) 時間之間有些微差異而造成的錯誤。請將這項屬性設為秒數,以因應這類差異。請參閱「 OAuth 屬性」一節。

(已新增 2.5.7) OAuth 設定中的 gracePeriod 屬性,有助於防止系統時鐘與 JWT 授權權杖中指定的「之前」部分 (nbf) 或「核發時間」(iat) 時間之間有些微差異而造成的錯誤。請將這項屬性設為秒數,以因應這類差異。請參閱「 OAuth 屬性」一節。

已修正 v2.5.x 版的錯誤

  • (問題 #236) 修正清除快取時的錯字。
  • (問題 #234) 重新載入 Edge Microgateway 2.5.35 的當機問題。
  • (問題 #135) 使用 -v 選項時,無效的虛擬主機參照「安全」錯誤。這項修正會在部署前修改 Edgemicro-驗證 Proxy,確保虛擬主機與「-v」標記中指定的值完全相符。另外,您可以為虛擬主機指定數量和名稱,數量不限 (不再受限於預設值和安全)。
  • (問題 #141) edgemicro load 指令不支援設定檔選項 -c。這個問題已經修正。
  • (問題 #142) Edge Microgateway 在安裝時針對已淘汰的加密貨幣提出異議。這個問題已經修正。
  • (問題 #145) 配額不適用於 Edge Microgateway。這個問題已經修正。
  • (Apigee 社群問題: https://community.apigee.com/questions/33149/emg-jwt-token-validated-against-two-api-proxies-a.html#answer-33336) JWT 權杖均通過 OAUTH 中驗證的 API Proxy 和資源 URI。這項問題現已修正。
  • (Apigee 社群問題:https://community.apigee.com/questions/47846/microgateway-not-working-with-oauth.html) Microgateway 無法與 OAuth 搭配運作。這個問題已經修正。
  • 修正 Windows 上的 pidPath。
  • (問題 #157) 導致下列錯誤訊息的問題已修正:ReferenceError: deployProxyWithPassword 未定義。
  • (問題 #169) 更新 Node.js 依附元件 (npm 稽核)
  • edgemicro-auth Proxy 現在會使用 Edge JWT 政策。Proxy 不再依賴 Node.js 來提供 JWT 支援。

2.4.x 版

新功能和強化項目 2.4.x 版

1. 為 Edgemicro-驗證 Proxy (PR 116) 設定自訂別名

您可以變更 edgemicro-auth Proxy 的預設基本路徑。根據預設,基本路徑為 /edgemicro-auth。如要變更,請在 edgemicro configuration 指令中使用 -x 標記。

示例:

edgemicro configure -x /mypath …


2. 支援基本路徑的萬用字元支援 (PR 77)

您可以在 edgemicro_* Proxy 的基本路徑中使用一或多個「*」萬用字元。舉例來說,/team/*/members 的基礎路徑可讓用戶端呼叫 https://[host]/team/blue/membershttps://[host]/team/green/members,不必建立新的 API Proxy 來支援新團隊。請注意,系統不支援 /**/

重要事項:Apigee 不支援使用萬用字元「*」做為基本路徑的第一個元素。舉例來說,系統「不」支援 /*/search。

3. 已新增私人設定路徑至 CLI 以用於私人雲端設定 (PR 99)

根據預設,microgateway 設定檔位於 ./config/config.yaml。在 init、設定和啟動指令中,您現在可以使用 -c--configDir 標記在指令列上指定自訂設定路徑。已修正以下問題:無法識別 Private Cloud 安裝項目的自訂設定目錄。

示例:

edgemicro start -o docs -e test -k abc123 -s xyz456 -c /home/microgateway/config

4. 遵循 *_PROXY 變數 (PR 61)

如果 Edge Microgateway 安裝在防火牆後方,並且無法與公用雲端中的 Apigee Edge 通訊,您可以考慮採用以下兩種做法:

選項 1:

第一個選項是在 microgateway 設定檔中將 Edgemicro: proxy_tunnel 選項設為 true:

edge_config:
   proxy: http://10.224.16.85:3128
   proxy_tunnel: true

proxy_tunneltrue 時,Edge Microgateway 會使用 HTTP CONNECT 方法,透過單一 TCP 連線通道 HTTP 要求。(如果設定 Proxy 的環境變數已啟用 TLS,也會發生相同情況)。

選項 2:

第二個選項是指定 Proxy,並將微閘道設定檔中的 proxy_tunnel 設為 false。例如:

edge_config:
   proxy: http://10.224.16.85:3128
   proxy_tunnel: false

在此情況下,您可以設定下列變數,針對要使用的每個 HTTP Proxy 控管主機,或是哪些主機不應處理 Edge Microgateway Proxy:HTTP_PROXYHTTPS_PROXY 以及 NO_PROXY。您可以將 NO_PROXY 設為以半形逗號分隔的網域清單,指出 Edge Microgateway 不應透過 Proxy 使用的網域。例如:

export HTTP_PROXY='http://localhost:3786'
export HTTPS_PROXY='https://localhost:3786'

如要進一步瞭解這些變數,請參閱:

https://www.npmjs.com/package/request#controlling-proxy-behaviour-using-environment-variables


5. 為目標要求設定自訂逾時時間 (PR 57)

您可以使用以下設定為目標要求自訂逾時:

edgemicro:
    request_timeout: 10

逾時設定為秒。如果發生逾時,Edge Microgateway 會回應 504 狀態碼。

6. 遵循目標回應中的自訂 HTTP 狀態訊息 (PR 53)

Edge Microgateway 會遵循針對目標回應設定的自訂 HTTP 狀態訊息。在先前的版本中,Node.js 預設值會覆寫來自目標傳送的狀態訊息。

7. X-Forwarded-For 標頭可以設定 client_ip 以進行分析

如果有,X-Forwarded-For 標頭會設定 Edge Analytics 回報的 client_ip 變數。您可以透過這項功能,瞭解傳送要求至 Edge Microgateway 的用戶端 IP。

8. OAuth 外掛程式異動

OAuth 外掛程式支援 API 金鑰驗證和 OAuth 存取權杖驗證。在這項變更之前,外掛程式會接受任一種安全性措施。經過這項變更,您只能允許其中一個安全性模型,同時保有回溯相容性。

OAuth 外掛程式會新增兩個新旗標:

  • allowOAuthOnly -- 如果設為 true,每個 API 都必須帶有包含不記名存取權杖的 Authorization 標頭。

  • allowAPIKeyOnly -- 如果設為 true,每個 API 都必須具有包含 API 金鑰的 x-api-key 標頭 (或自訂位置)。

這些旗標可在 Edge Microgateway 設定檔中設定,如下所示:

oauth:
    allowNoAuthorization: false
    allowInvalidAuthorization: false
    keep-authorization-header: false
    allowOAuthOnly: false
    allowAPIKeyOnly: false

9. 改善 Edgemicro-驗證 Proxy (PR 40)

已改善 edgemicro-auth Proxy。變更前,Proxy 儲存在 Edge Secure Store 中的金鑰,也就是加密保管箱。現在 Proxy 會將金鑰儲存在 Edge 的加密鍵/值對應 (KVM) 中。

10. 在外掛程式中重新編寫預設目標網址 (PR 74)

您也可以覆寫目標端點通訊埠,並選擇 HTTP 或 HTTPS。請在外掛程式程式碼中修改以下變數:req.targetPortreq.targetSecure。如要選擇 HTTPS,請將 req.targetSecure 設為 true;若是 HTTP,請設為 false。如果將 req.targetSecure 設為 true,請參閱這個討論執行緒以瞭解更多資訊。

11. 初步支援 OAuth 權杖驗證 (PR 125)

您可以將 Edge Microgateway 設為使用 OAuth 權杖進行驗證,而不使用使用者名稱/密碼。如要使用 OAuth 權杖,請在 edgemicro configuration 指令中加入下列參數:

-t, --token <token>

例如:

edgemicro configure -o docs -e test -t <your token>

已修正 2.4.3 版的錯誤

  • 修正了付費機構必須正確執行 Edgemicro-auth Proxy 的問題。現在,您也可以將 Edge Microgateway 與試用機構搭配使用。(PR 5)
  • 修正串流並未完成處理資料,但最終處理常式仍執行的問題。這導致傳送部分回應。(PR 71)
  • 已修正無法識別 Private Cloud 安裝作業自訂設定目錄的問題。(PR 110)
  • 修正用戶端與 Edge Microgateway 之間的雙向 SSL 問題。(PR 70)
  • 修正問題:API 金鑰驗證作業必須在 Proxy 基本路徑結尾加上斜線,才能正常運作。現在,基本路徑結尾不需要加上斜線。(PR 48)

2.3.5 版本

新功能和改善項目 2.3.5 版

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

Analytics (分析) 資料遮蓋

新的設定可讓您防止要求路徑資訊顯示在 Edge Analytics 中。將下列內容新增至微閘道設定,以遮蓋要求 URI 和/或要求路徑。請注意,URI 是由要求的主機名稱和路徑部分組成。

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

2.3.3 版

新功能和改善項目 2.3.3 版

這個版本的新功能和強化項目如下。

停用自動變更輪詢功能

如要關閉自動變更輪詢功能,您可以在微閘道設定中設定這項屬性:

disabled_config_poll_interval: true

根據預設,定期輪詢作業會擷取在 Edge 上進行的任何變更 (產品變更、微閘道感知 Proxy 等) 以及對本機設定檔所做的變更。預設的輪詢時間間隔為 600 秒 (五分鐘)。

在外掛程式中重新編寫目標網址

您可以在外掛程式程式碼中修改以下變數,以動態覆寫外掛程式中的預設目標網址:req.targetHostnamereq.targetPath

新增外掛程式函式簽章

已新增外掛程式函式簽章,以提供目標回應做為引數。這項新增作業可讓外掛程式更輕鬆地存取目標回應。

function(sourceRequest, sourceResponse, targetResponse, data, cb)

簡化預設記錄輸出作業

根據預設,記錄服務現在會省略下載的 Proxy、產品和 JWT 的 JSON。 您可以在啟動 Edge Microgateway 時設定 DEBUG=*,改為預設輸出這些物件。例如:

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

已新增至 CLI 的自訂設定路徑

根據預設,microgateway 設定檔位於 ./config/config.yaml。在初始化、設定及啟動指令中,您現在可以在指令列中指定自訂設定路徑。例如:

edgemicro start -o docs -e test -k abc123 -s xyz456 -c /home/microgateway/config

已修正 2.3.3 版的錯誤

  • 已修正大型要求/回應期間的記憶體流失問題。
  • 修正外掛程式的執行順序。現在會依照說明文件中描述的方式運作。
  • 外掛程式累積要求外掛程式不會再因 GET 要求而停止運作。
  • 已在累積回應內容外掛程式中修正問題,因為缺少回應主體導致錯誤。

版本 2.3.1

安裝附註

部分舊版 Edge Microgateway 可讓您下載 ZIP 檔案以安裝軟體。系統不再支援這些 ZIP 檔案。如要安裝 Edge Microgateway,您必須使用:

npm install -g edgemicro

詳情請參閱安裝主題

新功能和改善項目 2.3.1 版

這個版本的新功能和強化項目如下。

篩選 Proxy

新的設定可讓您篩選 Edge Microgateway 啟動時會載入的 Proxy。先前,微閘道會載入所有微閘道感知 Proxy (名為 Edgemicro_* 的 Proxy),並擷取自您在 Edgemicro 設定指令中指定的邊緣機構/環境。這項新功能可讓您篩選這份 Proxy 清單,讓 Edge Microgateway 僅載入您指定的 Proxy。只需將 Proxy 元素新增至 microgateway 設定檔即可,如下所示:

edge micro:
proxies:
    - edgemicro_[name]
    - edgemicro_[name]
    ...

舉例來說,假設您的 Edge 機構/環境中有 50 個 edgemicro_* Proxy,包括名為 edgemicro_fooedgemicro_bar 的 Proxy。您可以指示微閘道僅使用這兩個 Proxy,如下所示:

edge micro:
proxies:
    - edgemicro_foo
    - edgemicro_bar

啟動時,微閘道只能呼叫指定的 Proxy。如嘗試呼叫從 Edge 機構/環境下載的其他微閘道感知 Proxy,就會發生錯誤。

在外掛程式中設定目標要求標頭

如果您需要新增或修改目標要求標頭,有兩種基本模式:一種是傳入要求包含資料 (如 POST 要求所示),另一種則沒有 (類似簡單的 GET 要求)。

舉例來說,假設傳入要求含有資料,而且您想在目標要求上設定要求標頭,在舊版 Edge Microgateway 中,在這種情況下無法穩定設定目標標頭。

這個模式的關鍵在於先累積用戶端的所有傳入資料。接著,在 onend_request() 函式中,使用新函式 request.setOverrideHeader(name, value) 自訂標頭。

以下是說明如何執行這項作業的外掛程式程式碼範例。系統會將 onend_request 中設定的標頭傳送至目標:

module.exports.init = function(config, logger, stats) {


  function accumulate(req, data) {
    if (!req._chunks) req._chunks = [];
    req._chunks.push(data);
  }

  return {

    ondata_request: function(req, res, data, next) {
      if (data && data.length > 0) accumulate(req, data);
      next(null, null);
    },

    onend_request: function(req, res, data, next) {
      if (data && data.length > 0) accumulate(req, data);
      var content = Buffer.concat(req._chunks);
      delete req._chunks;
      req.setOverrideHeader('foo', 'bar');
      req.setOverrideHeader('content-length', content.length);
      next(null, content);
    },


    onerror_request: function(req, res, data, next) {
      next(null, null);
    }

  };

}

如果要求不包含資料,您可以在 onrequest() 處理常式中設定目標標頭。這個模式並非新的模式,而是先前記載下來,也已用於 Edge Microgateway 提供的範例外掛程式中。

onrequest: function(req, res, next) {
      debug('plugin onrequest');
      req.headers['x-foo-request-id'] = "bar";
      req.headers['x-foo-request-start'] = Date.now();
      next();
    }

零停機重新載入功能

將設定變更為 Edge Microgateway 後,您可以在不捨棄任何訊息的情況下載入設定。這項異動生效後,Edge Microgateway 一律會在叢集模式下啟動,並將 --cluster 選項從 edgemicro start 指令中移除。

此外,我們也新增三個 CLI 指令。您必須從執行 Edgemicro 啟動指令的目錄執行這些指令:

  • edgemicro status - 檢查 Edge Microgateway 是否正在執行。
  • edgemicro stop - 停止 Edge Microgateway 叢集。
  • edgemicro reload - 在不停機的情況下重新載入 Edge Microgateway 設定。

自動重新載入設定,完全不必停機

Edge Microgateway 會定期載入新設定,並在任何變更時重新載入。輪詢作業會接收在 Edge 上進行的任何變更 (產品變更、微閘道感知 Proxy 等),以及對本機設定檔所做的變更。預設的輪詢時間間隔為 600 秒 (五分鐘)。您可以按照下列步驟變更微閘道設定檔中的預設值:

edgemicro:
    config_change_poll_interval: [seconds]

在 CLI 中新增版本資訊

已將 --version 標記新增至 CLI。如要取得最新版本的 Edge Microgateway,請使用:

edgemicro --version

新的 Edge Microgateway 伺服器 SSL 選項

除了 keycert 以外,Edge Microgateway 現在支援下列伺服器 SSL 選項:

Option 鍵 說明
pfx pfx 檔案的路徑,該檔案包含 PFX 格式的用戶端私密金鑰、憑證和 CA 憑證。
passphrase 包含私密金鑰或 PFX 通關密語的字串。
ca 檔案路徑,該檔案包含採用 PEM 格式的信任憑證清單。
ciphers 這個字串可描述要使用的加密方式,並以「:」分隔。
rejectUnauthorized 如果為 true,系統會根據提供的 CA 清單驗證伺服器憑證。如果驗證失敗,系統會傳回錯誤。
secureProtocol 要使用的 SSL 方法。例如,SSLv3_method 將 SSL 強制設為第 3 版。
servername SNI (伺服器名稱指示) TLS 擴充功能的伺服器名稱。

將記錄檔傳送至 stdout

您可以使用新的配置設定,將記錄資料傳送至標準輸出:

edgemicro:
  logging:
    to_console: true  

請參閱 管理記錄檔

2.1.2 版

這個版本的新功能和強化項目如下。

允許設定自訂 API 端點

我們為授權 Proxy 提供了新的可設定端點,以便支援使用自訂驗證服務。端點如下:

  • edgeconfig:verify_api_key_url
  • edgeconfig:products

詳情請參閱「 使用自訂驗證服務」。

2.1.1 版

這個版本的新功能和強化項目如下。

部署與跨平台相容的驗證 Proxy

我們進行了強化,讓用來將 Edge Microgateway 授權 Proxy 部署至 Edge 的指令與 Windows 系統相容。

2.1.0 版

新功能和改善項目 21.0 版

新功能和改善項目如下:

指定用戶端 SSL/TLS 選項

您可以使用一組新的設定選項,指定目標的 SSL/TSL 連線用戶端選項。請參閱「 使用用戶端 SSL/TSL 選項」。

2.0.11 版

安裝附註 v2.0.11

部分舊版 Edge Microgateway 可讓您下載 ZIP 檔案以安裝軟體。系統不再支援這些 ZIP 檔案。如要安裝 Edge Microgateway,您必須使用:

npm install -g edgemicro

詳情請參閱安裝主題

新功能和改善項目 2.0.11 版

新功能和改善項目如下:

在啟動時指定通訊埠

啟動指令可讓您指定通訊埠編號,以覆寫設定檔中指定的通訊埠。您也可以使用 PORT 環境變數指定通訊埠編號。詳情請參閱啟動指令相關說明。

(選用) 保留驗證標頭

新的配置設定 keepAuthHeader 可讓您保留要求中傳送的 Authorization 標頭。如果設為 true,驗證標頭會傳遞至目標。請參閱「 OAuth 屬性」一文。

能使用自訂授權服務

如果您想使用自己的自訂服務處理驗證作業,請將 Edge Microgateway 設定檔中的 authUri 值變更為指向您的服務。詳情請參閱「 使用自訂驗證服務」的說明。

2.0.4 版

Edge Microgateway v.2.0.4 已於 2016 年 5 月 25 日發行。

新功能和改善項目 2.0.4 版

這個版本包含下列新功能和改善項目。

支援產品中的資源路徑

Edge Microgateway 現在支援產品中的資源路徑。資源路徑可讓您依據 Proxy 路徑後置字串限制 API 的存取權。如要進一步瞭解如何建立產品和設定資源路徑,請參閱「建立 API 產品」。

支援 npm 全域安裝

您現在可以使用 npm -g (global) 選項安裝 Edge Microgateway。如要進一步瞭解這個選項,請參閱 npm 說明文件

2.0.0 版

Edge Microgateway 2.0.0 已於 2016 年 4 月 18 日推出。

新功能和改善項目 2.0.0 版

這個版本包含下列新功能和改善項目。

單一程序伺服器

Edge Microgateway 現在是單一處理程序伺服器。不會再使用兩個處理程序模型,由一個程序 (之前稱為「代理程式」) 啟動 Edge Microgateway,也就是第二個程序。新的架構讓自動化和容器化作業變得更容易。

命名空間設定檔

設定檔現在會使用機構和環境為命名空間建立命名空間,讓多個 Microgateway 執行個體可在相同主機上執行。執行 Edge Microgateway 設定指令後,您可以在 ~/.edgemicro 中找到設定檔。

新的環境變數

環境變數有 4 種:EDGEMICRO_ORG、EDGEMICRO_ENV、EDGEMICRO_KEY、EDGEMICRO_SECRET。如果您在系統上設定這些變數,使用指令列介面 (CLI) 設定及啟動 Edge Microgateway 時,就不必指定變數的值。

快取設定

Edge Microgateway 會在未與 Apigee Edge 連線的情況下重新啟動快取設定檔

叢集模式

您現在可以選擇在叢集模式中啟動 Edge Microgateway。叢集模式可讓您充分運用多核心系統。微閘道採用這項功能的 Node.js 叢集模組。詳情請參閱 Node.js 說明文件。

已修正 2.0.0 版的錯誤

外掛程式事件生命週期現在可正確處理含有新回呼程式碼的非同步程式碼。

1.1.2 版本

Edge Microgateway 1.1.2 已於 2016 年 3 月 14 日發布。

新功能和強化項目 1.1.2 版

這個版本包含下列新功能和改善項目。

效能提升

Edge Microgateway 現在正確使用 Node.js HTTP 代理程式,以改善連線集區。這項強化功能可以改善高負載時的效能和整體穩定性。

支援遠端偵錯工具

您可以將 Edge Microgateway 設為使用遠端偵錯工具執行,例如 node-inspector

新設定檔位置

設定 Edge Microgateway 時,agent/config/default.yaml 檔案現已複製到 ~./edgemicro/config.yaml

記錄檔旋轉

新的設定屬性可讓您指定 Edge Microgateway 記錄檔的輪替間隔。

已修正 1.1.2 版的錯誤

下列錯誤已在 1.1.2 版中修正。

說明
與地端部署 Edge 搭配使用的 Edgemicro-internal Proxy 的 Java 呼叫現在使用正確的 MGMT 伺服器。
從代理程式中移除 typescript 依附元件。
修正使用精簡部署選項時的 CLI 錯誤。
修正憑證邏輯依附元件參考資料。