Apigee 的已知問題

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

以下各節說明 Apigee 的已知問題。在大多數情況下,我們會在日後推出的版本中修正所列問題。

其他 Edge 已知問題

以下各節說明 Edge 的其他已知問題。

領域 已知問題
快取過期導致 cachehit 值不正確

在 LookupCache 政策後使用 cachehit 流程變數時,由於偵錯點是針對非同步行為的分派方式,LookupPolicy 會在執行回呼之前填入 DebugInfo 物件,導致發生錯誤。

解決方法:第一次呼叫後,請再重複上述程序 (第二次呼叫)。

將 InvalidateCache 政策 PurgeChildEntries 設為 True 無法正常運作

在 InvalidateCache 政策中設定 PurgeChildEntries,只能清除 KeyFragment 元素值,但會清除整個快取。

解決方法:使用 KeyValueMapOperations 政策疊代快取版本管理,並略過快取撤銷的需求。

Edge UI 的已知問題

以下各節說明 Edge UI 的已知問題。

領域 已知問題
機構對應至身分識別區域後,就無法再透過導覽列存取 Edge SSO 區域管理頁面 將機構連結至身分區域後,您就無法從左側導覽列依序選取「管理員」>「單一登入」(SSO) 來存取 Edge SSO 區域管理頁面。如要解決這個問題,請直接使用以下網址前往頁面:https://apigee.com/sso

整合入口網站的已知問題

以下各節說明整合式入口網站的已知問題。

領域 已知問題
SmartDocs
  • 當您使用規格編輯器建立規格,並在入口網站上使用 SmartDocs 發布 API,但尚不支援部分功能,Apigee Edge 可支援 OpenAPI 規格 3.0。

    舉例來說,系統目前不支援 OpenAPI 規格 3.0 的下列功能:

    • allOf 屬性:用於合併及擴充結構定義
    • 遠端參照

    如果 OpenAPI 規範中參照了不支援的功能,在某些情況下,這些工具會略過該項功能,但仍呈現 API 參考說明文件。在其他情況下,不支援的功能會導致錯誤,導致 API 參考說明文件無法成功轉譯。無論是哪種情況,您都必須修改 OpenAPI 規範,避免在日後推出的版本支援之前使用不支援的功能。

    注意:由於規格編輯器在轉譯 API 參考說明文件時,規格編輯器的限制低於 SmartDocs,因此工具之間可能會產生不同的結果。

  • 在入口網站使用「Try this API」時,無論 OpenAPI 規格中為 consumes 設定的值為何,Accept 標頭都會設為 application/json
SAML 識別資訊提供者 自訂網域不支援透過 SAML 識別資訊提供者的單一登出 (SLO)。如要透過 SAML 識別資訊提供者啟用自訂網域,請在調整 SAML 設定時,將「Sign-out URL」(登出網址) 欄位留空。
入口網站管理員
  • 目前系統無法同時更新多個使用者的入口網站更新 (例如網頁、主題、CSS 或指令碼編輯)。
  • 如果您從入口網站中刪除 API 參考說明文件,就無法重新建立該頁面;您必須刪除 API 產品再重新新增,然後重新產生 API 參考說明文件。
  • 設定內容安全政策時,變更最多可能需要 15 分鐘才能完全套用。
  • 自訂入口網站主題時,變更最多可能需要 5 分鐘才能完全套用。
入口網站功能
  • 我們會在日後推出的版本中將搜尋功能整合至整合的入口網站。

Edge for Private Cloud 的已知問題

以下各節說明 Edge for Private Cloud 的已知問題。

區域 已知問題
4.53.00 Edge 路由器功能

邊緣路由器節點上的 apigee-nginx 可能會回報繫結埠或終止 nginx 程序的問題。

受影響的元件:邊緣路由器

問題:這些問題可能是在安裝 apigee-nginx 時,設定功能發生錯誤所致。

解決方法:您可以執行下列指令,手動設定功能:

setcap CAP_NET_BIND_SERVICE=+ep CAP_KILL=+ep /opt/nginx/sbin/nginx
4.53.00 SSO 和新版 UI 安裝

這項問題會影響在 Edge for Private Cloud 4.53.00 上,嘗試在支援 FIPS 的 RHEL 8 上安裝 SSO 或新 UI 的使用者。

受影響的元件:單一登入和新 UI

問題:如果您在支援 FIPS 的 RHEL 8 作業系統上安裝 SSO 或新版 UI,安裝作業會失敗。

解決方法:建議您使用傳統版 UI,因為該版面已完成所有功能,且符合 UI 功能需求。

Edge for Private Cloud 4.52.01 Mint 更新

這個問題只會影響使用 MINT 或在 Edge for Private Cloud 安裝作業中啟用 MINT 的使用者。

受影響的元件:edge-message-processor

問題:如果您已啟用營利功能,並要安裝 4.52.01 做為全新安裝,或從先前的 Private Cloud 版本升級,就會遇到訊息處理器問題。開啟的執行緒數量會逐漸增加,導致資源耗盡。在 edge-message-processor system.log 中,您會看到下列例外狀況:

Error injecting constructor, java.lang.OutOfMemoryError: unable to create new native thread
Apigee HTTP/2 安全漏洞

我們最近在多個 HTTP/2 通訊協定 (CVE-2023-44487) 實作中發現阻斷服務 (DoS) 安全漏洞,包括 Apigee Edge for Private Cloud。這個漏洞可能會導致 Apigee API 管理功能遭到阻斷服務攻擊。詳情請參閱 Apigee 安全性公告 GCP-2023-032

Edge for Private Cloud 的路由器管理伺服器元件會暴露在網際網路上,因此可能會有安全漏洞。雖然 Edge for Private Cloud 的其他 Edge 專屬元件的管理端口已啟用 HTTP/2,但這些元件都不會公開給網際網路。在 Cassandra、Zookeeper 和其他非 Edge 元件上,系統不會啟用 HTTP/2。建議您採取下列步驟來解決 Edge for Private Cloud 的安全漏洞:

如果您使用的是 Edge Private Cloud 4.51.00.11 以上版本,請按照下列步驟操作:

  1. 更新管理伺服器:

    1. 在每個管理伺服器節點上開啟 /opt/apigee/customer/application/management-server.properties
    2. 在屬性檔案中新增下列這行內容:
      conf_webserver_http2.enabled=false
    3. 重新啟動管理伺服器元件:
      apigee-service edge-management-server restart
  2. 更新訊息處理器:

    1. 在每個訊息處理器節點上開啟 /opt/apigee/customer/application/message-processor.properties
    2. 在屬性檔案中新增下列這行內容:
      conf_webserver_http2.enabled=false
    3. 重新啟動訊息處理器元件:
      apigee-service edge-message-processor restart
  3. 更新路由器:

    1. 在每個路由器節點上開啟 /opt/apigee/customer/application/router.properties
    2. 在屬性檔案中新增下列這行內容:
      conf_webserver_http2.enabled=false
    3. 重新啟動訊息處理器元件:
      apigee-service edge-router restart
  4. 更新 QPID:

    1. 在每個 QPID 節點上開啟 /opt/apigee/customer/application/qpid-server.properties
    2. 在屬性檔案中新增下列這行內容:
      conf_webserver_http2.enabled=false
    3. 重新啟動訊息處理器元件:
      apigee-service edge-qpid-server restart
  5. 更新 Postgres:

    1. 在每個 Postgres 節點上開啟 /opt/apigee/customer/application/postgres-server.properties
    2. 在屬性檔案中新增下列這行內容:
      conf_webserver_http2.enabled=false
    3. 重新啟動訊息處理器元件:
      apigee-service edge-postgres-server restart

如果您使用的是 4.51.00.11 以下版本的 Edge for Private Cloud,請按照下列步驟操作:

  1. 更新管理伺服器:

    1. 在每個管理伺服器節點上開啟 /opt/apigee/customer/application/management-server.properties
    2. 在屬性檔案中加入下列兩行:
      conf_webserver_http2.enabled=false
      conf/webserver.properties+http2.enabled=false
    3. 重新啟動管理伺服器元件:
      apigee-service edge-management-server restart
  2. 更新訊息處理器:

    1. 在每個訊息處理器節點上開啟 /opt/apigee/customer/application/message-processor.properties
    2. 在屬性檔案中加入下列兩行:
      conf_webserver_http2.enabled=false
      conf/webserver.properties+http2.enabled=false
    3. 重新啟動訊息處理器元件:
      apigee-service edge-message-processor restart
  3. 更新路由器:

    1. 在每個路由器節點上開啟 /opt/apigee/customer/application/router.properties
    2. 在屬性檔案中加入下列兩行:
      conf_webserver_http2.enabled=false
      conf/webserver.properties+http2.enabled=false
    3. 重新啟動訊息處理器元件:
      apigee-service edge-router restart
  4. 更新 QPID:

    1. 在每個 QPID 節點上開啟 /opt/apigee/customer/application/qpid-server.properties
    2. 在屬性檔案中加入下列兩行:
      conf_webserver_http2.enabled=false
      conf/webserver.properties+http2.enabled=false
    3. 重新啟動訊息處理器元件:
      apigee-service edge-qpid-server restart
  5. 更新 Postgres:

    1. 在每個 Postgres 節點上開啟 /opt/apigee/customer/application/postgres-server.properties
    2. 在屬性檔案中加入下列兩行:
      conf_webserver_http2.enabled=false
      conf/webserver.properties+http2.enabled=false
    3. 重新啟動訊息處理器元件:
      apigee-service edge-postgres-server restart
更新至 4.52 版時的 Postgresql 升級作業

Apigee-postgresql 在從 Edge for Private Cloud 4.50 或 4.51 版升級至 4.52 版時發生問題。這類問題主要發生在資料表數量超過 500 個時。

您可以執行下列 SQL 查詢,查看 Postgres 中的資料表總數:

select count(*) from information_schema.tables

解決方法: 更新 Apigee Edge 4.50.00 或 4.51.00 至 4.52.00 時,請務必先執行 初步步驟,再升級 Apigee-postgresql。

apigee-mirror (適用於 RHEL 8.0)

apigee-mirror 不適用於 Red Hat Enterprise Linux (RHEL) 8.0。

解決方法:解決方法是,在執行較舊 RHEL 版本或其他 Apigee 支援的作業系統的伺服器上安裝 apigee-mirror。即使您已在 RHEL 8.0 伺服器上安裝 Apigee,也可以使用鏡像來新增套件。

LDAP 政策

149245401:透過 LDAP 資源設定的 JNDI 的 LDAP 連線集區設定未反映,且 JNDI 預設會導致每次使用單一連線。因此,每次使用時都會開啟和關閉連線,每小時會產生大量的 LDAP 伺服器連線。

解決方法:

如要變更 LDAP 連線集區屬性,請按照下列步驟設定所有 LDAP 政策的全域變更。

  1. 如果尚未建立設定屬性檔案,請建立一個:
    /opt/apigee/customer/application/message-processor.properties
  2. 將下列內容加入檔案 (根據 LDAP 資源設定需求,取代 Java 命名和目錄介面 (JNDI) 屬性的值)。
    bin_setenv_ext_jvm_opts="-Dcom.sun.jndi.ldap.connect.pool.maxsize=20
    -Dcom.sun.jndi.ldap.connect.pool.prefsize=2
    -Dcom.sun.jndi.ldap.connect.pool.initsize=2
    -Dcom.sun.jndi.ldap.connect.pool.timeout=120000
    -Dcom.sun.jndi.ldap.connect.pool.protocol=ssl"
  3. 請確認檔案 /opt/apigee/customer/application/message-processor.properties 由 apigee:apigee 擁有。
  4. 重新啟動每個訊息處理器。

如要確認連線集區 JNDI 屬性是否生效,您可以執行 tcpdump,觀察 LDAP 連線集區隨時間變化的行為。

要求處理時間過長

139051927:訊息處理器中發現高 Proxy 處理延遲時間,影響所有 API Proxy。症狀包括處理時間比正常 API 回應時間延遲 200 到 300 毫秒,即使 TPS 很低也可能隨機發生。當郵件處理器連線的目標伺服器超過 50 個時,就可能發生這種情況。

根本原因:訊息處理器會保留快取,將目標伺服器網址對應至 HTTPClient 物件,以便建立至目標伺服器的傳出連線。這項設定的預設值為 50,但對於多數部署作業而言,這可能過低。如果部署作業在設定中包含多個組織/環境組合,且目標伺服器的總數超過 50 個,則目標伺服器網址會不斷從快取中移除,導致延遲。

驗證:如要判斷是否是目標伺服器網址淘汰導致延遲問題,請在 Message Processor 系統.logs 中搜尋「onEvict」或「Eviction」關鍵字。這些記錄檔中的內容表示,由於快取大小太小,因此目標伺服器網址會從 HTTPClient 快取中剔除。

解決方法:如果是 Edge for Private Cloud 19.01 和 19.06 版本,您可以編輯及設定 HTTPClient 快取,/opt/apigee/customer/application/message-processor.properties

conf/http.properties+HTTPClient.dynamic.cache.elements.size=500

然後重新啟動訊息處理工具。對所有訊息處理工具進行相同的變更。

值 500 是範例。最佳設定值應大於訊息處理工具要連線的目標伺服器數量。將這項屬性設為較高的值不會有任何副作用,唯一的影響是可改善訊息處理程序的代理要求處理時間。

注意:Edge for Private Cloud 50.00 版的預設設定為 500。

鍵/值對應的多個項目

157933959:對同一個鍵/值對應 (KVM) 並行插入及更新,且範圍限定為機構或環境層級,會導致資料不一致,且更新內容遺失。

注意:這項限制僅適用於 Edge for Private Cloud。Edge for Public Cloud 和 Hybrid 則沒有這項限制。

如要使用 Edge for Private Cloud 的解決方法,請在 apiproxy 範圍內建立 KVM