Apigee Adapter for Envoy 版本資訊

本頁內容適用於 ApigeeApigee Hybrid

查看 Apigee Edge 說明文件。

本頁面記錄 2021 年和之前所有 Apigee Adapter for Envoy 軟體的版本資訊。

如需目前版本資訊 (2022 年和之後),請參閱「Adapter for Envoy」。

v2.0.4

我們在 2021 年 12 月 3 日發布 Apigee Adapter for Envoy 2.0.4 版。

功能和改善項目

  • 已更新 CLI samples 指令支援的 Envoy 和 Istio 版本清單。現在支援的樣本版本如下:
    • Envoy 1.18 至 1.20 版
    • Istio 1.10 至 1.12 版

修正的問題

  • 系統已為 PEM 區塊私密金鑰載入作業新增空值檢查,避免發生恐慌。(問題 #360)
  • 遠端服務授權錯誤現在會記錄在 Debug 層級。但 API 金鑰的權杖擷取錯誤不在此限。在這種情況下,系統會在「Error」層級記錄錯誤,因此即使停用 apigee-remote-service-envoy 的「Debug」記錄層級,錯誤仍會顯示。另請參閱「設定遠端服務記錄層級」。(問題 #104)

v2.0.3

我們在 2021 年 9 月 21 日發布了 Apigee Adapter for Envoy 2.0.3 版。

修正的問題

  • 修正直接回覆的 Analytics 記錄問題。這項問題只會在特定情況下發生。例如:
    • 對於不需要 authn/z 檢查的要求,系統不會產生 authContext,且動態中繼資料為空值,因此會忽略存取記錄項目。
    • 遭拒回應使用 RPC 代碼而非 HTTP 代碼,導致記錄在 Apigee 使用者介面中顯示為成功。

v2.0.2

我們已於 2021 年 6 月 7 日發布 Apigee Adapter for Envoy 2.0.2 版。

修正的問題

  • 修正競爭狀況,避免 JWT 宣告範圍為空值時發生 403 錯誤和恐慌。

v2.0.1

我們已在 2021 年 4 月 29 日 (星期二) 發布 Apigee Adapter for Envoy 2.0.1 版。

修正的問題

功能 說明
錯誤

修正了與 Apigee Hybrid 1.5.0 版或 Apigee 搭配使用時,導致 2.0.0 版無法正常運作的問題。如果將 Apigee Hybrid 安裝作業升級至 1.5.x 版,建議的介面卡升級路徑如下:

  1. 將 Apigee Adapter for Envoy 升級至 v2.0.1。
  2. 將 Apigee Hybrid 升級至 1.5.1 版。

如果您使用 Apigee,只要將轉接程式升級至 2.0.1 版即可。

v2.0.0

我們已在 2021 年 4 月 6 日 (星期二) 發布 Apigee Adapter for Envoy 2.0.0 版。

功能和改善項目

功能 說明
支援多租戶環境

您現在可以啟用介面卡,在 Apigee 機構中為多個環境提供服務。這項功能可讓您使用與一個 Apigee 機構相關聯的 Apigee Adapter for Envoy,為多個環境提供服務。在這項變更之前,一個介面卡一律會繫結至一個 Apigee 環境。如要進一步瞭解這項功能,請參閱「支援多租戶環境」。

支援 Envoy v3 API
支援 Envoy 中繼資料

Envoy 1.16 以上版本允許傳送 ext_authz 中繼資料,不必使用標頭。使用這項變更和相關變更後,我們現在可以為遭拒的要求提供更合適的 HTTP 回應狀態碼,且不再需要在 Envoy 中安裝 RBAC 篩選器。請參閱

這項功能僅適用於 Envoy 1.16 以上版本和 Istio 1.9 以上版本。

這項變更生效後,系統就不會再將下列設定新增至 Envoy 設定檔 (envoy-config.yaml):

additional_request_headers_to_log:
    - x-apigee-accesstoken
    - x-apigee-api
    - x-apigee-apiproducts
    - x-apigee-application
    - x-apigee-clientid
    - x-apigee-developeremail
    - x-apigee-environment

如要在特殊情況下將標頭附加至要求,只要在介面的 config.yaml 檔案中設定 append_metadata_headers:true 屬性即可。

remote-token Proxy 從 remote-service Proxy 中分割出來

remote-service Proxy 已重構為兩個獨立的 Proxy。在 2.0.x 版中,佈建作業會安裝兩個 API Proxy:remote-serviceremote-token/token/certs 端點已從 remote-service 代理伺服器移至 remote-token

這項異動可有效區隔函式。現在,remote-service Proxy 只會用於內部介面卡通訊,而 remote-token Proxy 則提供可自訂的 OAuth 範例工作流程。即使使用 provision --force-proxy-install 指令,我們也絕不會覆寫您的自訂 remote-token Proxy。

支援資料擷取

轉接程式現在支援將 Envoy 中繼資料傳遞至 Apigee 的資料擷取功能,該功能會將您在指定變數中擷取的資料傳送至 Apigee Analytics,以供自訂報表使用。這項功能與 Apigee 資料擷取政策類似。如要進一步瞭解這項功能,請參閱「 擷取自訂報表的資料」。

不需要 RBAC

如先前在「Envoy 中繼資料支援」一節所述,我們現在會立即拒絕未經授權的要求,不需要額外的 RBAC 篩選器。由於系統未使用 RBAC,用戶端現在會從適配器收到這些 HTTP 狀態碼:

  • 401 未獲授權
  • 403 禁止存取
  • 429 要求數量過多
  • 500 內部伺服器錯誤

如要允許未經授權的要求繼續,請在介面卡的 config.yaml 檔案中設定 auth:allow_unauthorized:true

系統不再預設附加 x-apigee-* 標頭

如「Envoy 中繼資料支援」一節所述,系統預設不會再附加 x-apigee-* 標頭。如要新增這些項目,請在 config.yaml 檔案中設定 append_metadata_headers:true。這項設定完全是選用項目,只有在需要將標頭轉送至上游目標服務時,才需要使用。

將要求自訂比對至 Apigee API 產品作業

api_header 設定屬性的語意與先前的 target_header 屬性相同 (預設值仍為目標主機名稱),且指定標頭的內容仍會與 API 產品的「遠端服務目標」屬性或「API 產品作業設定」中的「來源」欄位相符。

如要使用 Envoy 中繼資料覆寫這個標頭值,您可以將 Envoy 的 apigee_api 中繼資料元素傳遞至介面卡,直接指定 API 產品的遠端服務目標或 API 產品作業的 API 來源。如要設定,請在 Envoy 設定檔中加入類似下列的程式碼 (您可以使用 Adapter 的 CLI 產生):

typed_per_filter_config:
  envoy.filters.http.ext_authz:
    "@type": type.googleapis.com/envoy.extensions.filters.http.ext_authz.v3.ExtAuthzPerRoute
    check_settings:
      context_extensions:
        apigee_api: httpbin.org
系統會立即記錄遭拒要求的 Analytics

現在 Envoy 轉接程式會立即將遭拒的要求記錄至 Analytics,而不是等待要求在存取記錄中傳回。這樣做效率更高,而且不需要在要求中附加任何中繼資料。

已移除 UDCA 支援

由於直接上傳功能已取代串流功能,因此您不再需要將資料串流至 Apigee Hybrid 和 Apigee 中的 Apigee 通用資料收集代理程式 (UDCA),即可進行數據分析。這項變更只是移除這個選項的舊版支援。

在佈建/繫結 CLI 指令中,為 Edge for Private Cloud 新增 mTLS 支援

使用 CLI 佈建或列出產品繫結時,Apigee Edge for Private Cloud 使用者可以透過 ‑‑tls‑cert‑‑tls‑key‑‑tls‑ca 分別提供用戶端 TLS 憑證和根憑證。

介面卡與 Apigee 執行階段之間的 mTLS 支援

您可以在轉接程式 config.yaml 檔案的 tenant 區段中提供用戶端 TLS 憑證,在轉接程式和 Apigee 執行階段之間使用 mTLS。這項異動適用於所有支援的 Apigee 平台。此外,這項功能也會為 Apigee Edge for Private Cloud 平台啟用 mTLS 分析。詳情請參閱「在介面卡和 Apigee 執行階段之間設定 mTLS」。

其他問題和修正項目

  • 修正問題:多個具有相同 API 來源的作業設定共用相同的配額值區 ID,導致配額計算發生衝突。(問題 #34)
  • 修正問題:如果作業未指定動詞,系統會拒絕要求 (如果未指定任何動詞,預期行為是允許所有動詞)。(問題 #39)

v1.4.0

我們在 2020 年 12 月 16 日 (星期三) 發布 Apigee Adapter for Envoy 1.4.0 版。

支援的平台

我們發布適用於 macOS、Linux 和 Windows 的二進位檔。

我們發布的 Docker 映像檔來自 Google 的無發行版、Ubuntu 和 Ubuntu with Boring Crypto。

這個版本支援下列平台:

  • Apigee Hybrid 1.3.x 版、1.4.x 版 (發布日期待定)、Apigee for Public Cloud、 Apigee for Private Cloud 和 Google Cloud 上的 Apigee
  • Istio 1.5、1.6、1.7、1.8 版
  • Envoy 1.14、1.15、1.16 版

功能和改善項目

功能 說明
remote-service Proxy 不再需要與使用遠端服務目標的 API 產品建立關聯。

由於不再需要這項關聯,請注意下列異動:

  • 佈建期間不再建立 remote-service API 產品。
  • bindings verify CLI 指令已不適用,因此已淘汰。
您不再需要 Apigee 組織管理員角色,即可佈建服務。

現在您可以使用 IAM 角色 API 建立者和部署者,不必再具備機構管理員權限即可佈建。您必須授予這兩個角色,才能成功佈建。
(僅適用於 Google Cloud 上的 Apigee 和 Apigee Hybrid)

其他問題和修正項目

  • 修正問題:重新佈建 Apigee 時,如果沒有 --rotate 選項,系統會因錯誤而結束。
  • 佈建 CLI 現在會從指定的 config.yaml 檔案讀取並重複使用數據分析服務帳戶憑證 (問題 #133)。

v1.3.0

我們已於 2020 年 11 月 23 日 (星期一) 發布 Apigee Adapter for Envoy 1.3.0 版。

支援的平台

我們發布適用於 macOS、Linux 和 Windows 的二進位檔。

我們發布的 Docker 映像檔來自 Google 的無發行版、Ubuntu 和 Ubuntu with Boring Crypto。

這個版本支援下列平台:

  • Apigee Hybrid 1.3.x 版、1.4.x 版 (發布日期待定)、Apigee for Public Cloud、 Apigee for Private Cloud 和 Google Cloud 上的 Apigee
  • Istio 1.5、1.6、1.7、1.8 版
  • Envoy 1.14、1.15、1.16 版

功能和改善項目

功能 說明
支援 API 產品 OperationGroups。 OperationGroups 會透過 HTTP 方法,將 Proxy 或遠端服務中的資源和相關配額強制執行作業繫結。詳情請參閱「OperationGroup」。
(僅適用於 Google Cloud 上的 Apigee 和 Apigee Hybrid)
從樣本產生作業中移除動態轉送 Proxy 的支援。 因此,如果主機名稱與 API 產品中設定的遠端服務目標主機不同,用戶端就必須加入 HOST 標頭。例如:
curl -i http://localhost:8080/httpbin/headers -H "HOST:httpbin.org"

請參閱「建立 API 產品」。

支援服務帳戶和 Workload Identity。 如要在 Apigee Hybrid 叢集外部執行介面卡時,允許將 Analytics 資料上傳至 Apigee,您必須搭配 apigee-remote-service-cli provision 指令使用 analytics-sa 參數。此外,這個介面卡現在支援 Google Kubernetes Engine (GKE) 的 Workload Identity。請參閱「佈建指令」。
(僅適用於 Google Cloud 上的 Apigee 和 Apigee Hybrid)
新的 jwt_provider_key 設定屬性。 這組金鑰會新增至設定檔。 代表 Envoy 設定中的 JWT 供應商 payload_in_metadata 金鑰,或 Istio 設定中的 RequestAuthentication JWT 核發者。
KeepAliveMaxConnectionAge 設定屬性現在預設為 1 分鐘。 先前的預設值為 10 分鐘。這項變更可讓您更順暢地調整規模。這個值也會用於存取記錄串流生命週期。請參閱設定檔
移除 CLI 指令。 下列 CLI 指令已淘汰。建議您改用 Apigee API,更新 API 產品的遠端服務目標:
  • apigee-remote-service-cli bindings add
  • apigee-remote-service-cli bindings remove
新增 CLI 指令。 指令:
apigee-remote-service-cli samples templates

列出可在 samples create 指令中搭配 --template 旗標使用的選項。請參閱 CLI 參考資料

變更現有的 CLI 指令。 apigee-remote-service-cli samples create 指令已變更。系統會嚴格檢查 Envoy 或 Istio 範本專屬的旗標,如果旗標使用錯誤,就會傳回錯誤。native 範本選項已淘汰,如要取得可用範本清單,請使用 apigee-remote-service-cli samples templates 指令。 另請參閱 CLI 參考資料
/token 端點回應現在遵循 OAuth2 規格 回應中新增了 access_token 參數,並淘汰了 token 參數。

v1.2.0

我們在 2020 年 9 月 30 日 (星期三) 發布 Apigee Adapter for Envoy 1.2.0 版。

支援的平台

我們發布適用於 macOS、Linux 和 Windows 的二進位檔。

我們發布的 Docker 映像檔來自 Google 的無發行版、Ubuntu 和 Ubuntu with Boring Crypto。

這個版本支援下列平台:

  • Apigee Hybrid 1.3.x 版
  • Istio 1.5、1.6、1.7 版
  • Envoy 1.14 和 1.15 版

功能和改善項目

功能 說明
Google Cloud 上的 Apigee 支援 您現在可以搭配 Google Cloud 上的 Apigee 使用 Apigee Adapter for Envoy。 您可以在自己的叢集中執行介面卡,也可以將 Envoy 的遠端服務當做原生二進位檔或容器執行。使用佈建指令,在 Apigee 上佈建轉接程式。
直接上傳分析資料 您現在可以設定 Apigee 介面卡,直接將數據分析資料上傳至 Apigee。如果您使用 Apigee Hybrid,這項新功能可讓您將介面卡部署至自己的 Kubernetes 叢集,也就是 Apigee Hybrid 安裝所在的叢集以外的叢集。如要啟用直接上傳功能,請使用 provision 指令搭配新的 --analytics-sa 旗標。請參閱佈建指令
從 Apigee 載入 API 產品資料後,健康檢查會傳回「Ready」 從 Apigee 載入 API 產品資料後,Kubernetes 健康狀態檢查才會傳回「Ready」。這項變更可協助擴充及升級,因為在準備就緒前,系統不會將任何流量傳送至新例項化的介面卡。

其他問題和修正項目

  • 修正潛在的配額同步處理死結問題 (問題 #17)。
  • Prometheus 註解已移至 Pod 規格 (問題 #69)。
  • 修正了錯誤發出的驗證錯誤 (Issue #62)。

v1.1.0

我們已於 2020 年 8 月 26 日 (星期三) 發布 Apigee Adapter for Envoy 1.1.0 版。

支援的平台

我們發布適用於 macOS、Linux 和 Windows 的二進位檔。

我們發布的 Docker 映像檔來自 Google 的無發行版、Ubuntu 和 Ubuntu with Boring Crypto。

1.1.0 版支援下列平台:

  • Apigee Hybrid 1.3 版
  • Istio 1.5、1.6、1.7 版
  • Envoy 1.14 和 1.15 版

功能和改善項目

功能 說明
驗證繫結 CLI 中新增了 apigee-remote-service-cli bindings verify 指令。這項指令會驗證指定的繫結 API 產品及其相關聯的開發人員應用程式,是否也與遠端服務產品相關聯。請參閱「驗證繫結」。
生成樣本 CLI 中新增了 apigee-remote-service-cli samples create 指令。這個指令會為原生 Envoy 或 Istio 部署作業建立設定檔範例。您使用這項指令產生的設定檔,會取代先前版本中隨 Adapter for Envoy 安裝的範例檔案。請參閱範例指令
OAuth2 驗證 如果 Apigee 啟用多重驗證 (MFA),介面卡現在會使用 OAuth2 驗證。使用 --legacy 旗標時,請一併使用 --mfa 旗標。
Distroless 容器 現在,介面卡會使用 Google 的 Distroless (gcr.io/distroless/base) 映像檔,而非 scratch 做為預設的 Docker 映像檔基礎。

其他問題和修正項目

  • 修正 OPDK 中繫結指令的 CLI 問題。(#29)
  • 連線中斷時,配額可能會停滯 (apigee/apigee-remote-service-envoy. (#31)
  • Docker 映像檔現在會以非超級使用者 (999) 建構。
  • Kubernetes 範例會強制執行使用者不得為根目錄。
  • 對 Proxy 端點執行 curl 指令時,不再需要 --http1.1。範例已移除標記。

1.0.0 版

我們已於 2020 年 7 月 31 日 (星期五) 發布 Apigee Adapter for Envoy 正式版。

支援的平台

我們發布適用於 macOS、Linux 和 Windows 的二進位檔。

我們發布的 Docker 映像檔包括從頭開始建構的映像檔、Ubuntu 映像檔,以及搭載 Boring Crypto 的 Ubuntu 映像檔。

在 1.0.0 版中,我們支援下列平台:

  • Apigee Hybrid 1.3 版
  • Istio 1.5 和 1.6 版
  • Envoy 1.14 和 1.15 版

新增和變更

在 v1.0-beta4 版和正式版之間,我們對轉接程式進行了下列變更:

  • 前往 Boring builds

    我們已推出新版本,使用符合 FIPS 規定的 Go BoringSSL 程式庫

  • 記錄層級標記變更

    為確保一致性,apigee-remote-service-envoy 服務的記錄層級標記已變更:

    舊旗 新旗標
    log_level log-level
    json_log json-log
  • 新的 CLI 旗標

    CLI token 指令新增了下列標記:

    旗標 說明
    --legacy 如果您使用 Apigee Cloud,請設定這個旗標。
    --opdk 如果您使用 Apigee for Private Cloud,請設定這個旗標。