Apigee 的已知問題
您正在查看 Apigee Edge 說明文件。
參閱 Apigee X 說明文件。 資訊
以下各節說明 Apigee 的已知問題。在大多數情況下,我們會在日後推出的版本中修正所列問題。
其他 Edge 已知問題
以下各節說明 Edge 的其他已知問題。
領域 |
已知問題 |
快取過期導致 cachehit 值不正確 |
在 LookupCache 政策後使用 cachehit 流程變數時,由於偵錯點是針對非同步行為的分派方式,LookupPolicy 會在執行回呼之前填入 DebugInfo 物件,導致發生錯誤。
解決方法:第一次呼叫後,請再重複上述程序 (第二次呼叫)。
|
將 InvalidateCache 政策 PurgeChildEntries 設為 True 無法正常運作 |
在 InvalidateCache 政策中設定 PurgeChildEntries ,只能清除 KeyFragment 元素值,但會清除整個快取。
解決方法:使用 KeyValueMapOperations 政策疊代快取版本管理,並略過快取撤銷的需求。
|
Edge UI 的已知問題
以下各節說明 Edge UI 的已知問題。
整合入口網站的已知問題
以下各節說明整合式入口網站的已知問題。
領域 |
已知問題 |
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 的已知問題
以下各節說明 Private Cloud Edge 的已知問題。
領域 |
已知問題 |
OPDK 4.52.01 薄荷更新 |
這項問題只會影響到使用 MINT 或是在 Edge 中針對 Private Cloud 安裝功能啟用 MINT 的使用者。
受影響的元件:邊緣訊息處理器
問題:如果您已啟用營利功能,並安裝 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) 實作中 (包括私有雲的 Apigee Edge) 中發現阻斷服務 (DoS) 安全漏洞,這項安全漏洞可能導致 Apigee API 管理功能的 DoS。
詳情請參閱 Apigee 安全性公告 GCP-2023-032。
Private Cloud 的邊緣路由器和管理伺服器元件會在網際網路中揭露,因此可能容易遭受攻擊。雖然已在 Private Cloud 其他 Edge 專用元件的管理通訊埠啟用 HTTP/2,但這些元件均不會暴露在網際網路中。在 Cassandra、Zookeeper 等非邊緣元件上,HTTP/2 不會啟用。建議您採取下列步驟,解決 Private Cloud 的邊緣安全漏洞:
如果使用 Edge Private Cloud 4.51.00.11 以上版本,請按照下列步驟操作:
更新管理伺服器:
- 在每個管理伺服器節點上開啟
/opt/apigee/customer/application/management-server.properties
- 在屬性檔案中加入這一行:
conf_webserver_http2.enabled=false
- 重新啟動管理伺服器元件:
apigee-service edge-management-server restart
更新訊息處理工具:
- 在每個訊息處理工具節點上開啟
/opt/apigee/customer/application/message-processor.properties
- 在屬性檔案中加入這一行:
conf_webserver_http2.enabled=false
- 重新啟動訊息處理工具元件:
apigee-service edge-message-processor restart
更新路由器:
- 在每個路由器節點上開啟
/opt/apigee/customer/application/router.properties
- 在屬性檔案中加入這一行:
conf_webserver_http2.enabled=false
- 重新啟動訊息處理工具元件:
apigee-service edge-router restart
更新 QPID:
- 在每個 QPID 節點上開啟
/opt/apigee/customer/application/qpid-server.properties
- 在屬性檔案中加入這一行:
conf_webserver_http2.enabled=false
- 重新啟動訊息處理工具元件:
apigee-service edge-qpid-server restart
Update Postgres:
- 在每個 Postgres 節點上開啟
/opt/apigee/customer/application/postgres-server.properties
- 在屬性檔案中加入這一行:
conf_webserver_http2.enabled=false
- 重新啟動訊息處理工具元件:
apigee-service edge-postgres-server restart
如果您使用 4.51.00.11 之前的 Private Cloud 版本,請按照下列步驟操作:
更新管理伺服器:
- 在每個管理伺服器節點上開啟
/opt/apigee/customer/application/management-server.properties
- 在屬性檔案中加入以下兩行:
conf_webserver_http2.enabled=false
conf/webserver.properties+http2.enabled=false
- 重新啟動管理伺服器元件:
apigee-service edge-management-server restart
更新訊息處理工具:
- 在每個訊息處理工具節點上開啟
/opt/apigee/customer/application/message-processor.properties
- 在屬性檔案中加入以下兩行:
conf_webserver_http2.enabled=false
conf/webserver.properties+http2.enabled=false
- 重新啟動訊息處理工具元件:
apigee-service edge-message-processor restart
更新路由器:
- 在每個路由器節點上開啟
/opt/apigee/customer/application/router.properties
- 在屬性檔案中加入以下兩行:
conf_webserver_http2.enabled=false
conf/webserver.properties+http2.enabled=false
- 重新啟動訊息處理工具元件:
apigee-service edge-router restart
更新 QPID:
- 在每個 QPID 節點上開啟
/opt/apigee/customer/application/qpid-server.properties
- 在屬性檔案中加入以下兩行:
conf_webserver_http2.enabled=false
conf/webserver.properties+http2.enabled=false
- 重新啟動訊息處理工具元件:
apigee-service edge-qpid-server restart
Update Postgres:
- 在每個 Postgres 節點上開啟
/opt/apigee/customer/application/postgres-server.properties
- 在屬性檔案中加入以下兩行:
conf_webserver_http2.enabled=false
conf/webserver.properties+http2.enabled=false
- 重新啟動訊息處理工具元件:
apigee-service edge-postgres-server restart
|
更新至 4.52 版時升級 Postgresql | 從 Edge for Private Cloud 4.50 版或 4.51 版升級至 4.52 版時,Apigee-postgresql 發生問題。這多半會發生在資料表數量大於 500 時。
您可以執行下列 SQL 查詢,查看 Postgres 中的資料表總數:
select count(*) from information_schema.tables
解決方法:
將 Apigee Edge 4.50.00 或 4.51.00 更新至 4.52.00 時,請務必先執行
初步步驟,再升級 Apigee-postgresql。
|
RHEL 8.0 上的 apigee-mirror |
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 政策設定全域變更。
- 建立設定檔 (如果尚未建立的話):
/opt/apigee/customer/application/message-processor.properties
- 在檔案中加入以下內容,根據您的 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"
- 確認
/opt/apigee/customer/application/message-processor.properties 檔案由 apigee:apigee 擁有。
- 重新啟動每個訊息處理器。
如要驗證連線集區 JNDI 屬性是否生效,您可以執行 tcpdump,觀察 LDAP 連線集區隨著時間的變化。
|
要求處理延遲時間過長 |
139051927:訊息處理器中發現的高 Proxy 處理延遲時間會影響所有 API Proxy。症狀包括一般 API 回應時間的處理時間延遲 200 至 300 毫秒,即使 TPS 偏低,有時也可能會隨機發生。如果訊息處理器在超過 50 部目標伺服器中建立連線,就可能發生這種情況。
根本原因:訊息處理工具會保留快取,將目標伺服器網址對應至 HTTPClient 物件,讓傳出連線連線至目標伺服器。這項設定的預設值為 50,這對於多數部署作業來說可能太低。如果部署作業在設定中具有多個機構/環境變數組合,且目標伺服器數量完全超過 50 個,則目標伺服器網址會持續從快取中剔除,因而造成延遲。
驗證:如要判斷目標伺服器網址撤銷是否造成延遲問題,請在訊息處理器 system.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。設定時的最佳值應大於訊息處理器要連線的目標伺服器數量。設定較高的這項屬性不會產生副作用,唯一影響將可改善訊息處理工具 Proxy 要求處理時間。
注意:Private Cloud 50.00 版邊緣的預設設定為 500。
|
鍵/值對應的多個項目 |
157933959:同時插入及更新範圍限定在機構或環境層級的相同鍵/值對應 (KVM) 會導致資料不一致,並導致更新遺失。
注意:這項限制僅適用於 Private Cloud Edge。公有雲和混合雲的邊緣沒有這項限制。
如需解決方法,請在 Edge for Private Cloud 的 apiproxy 範圍中建立 KVM。
|
除非另有註明,否則本頁面中的內容是採用創用 CC 姓名標示 4.0 授權,程式碼範例則為阿帕契 2.0 授權。詳情請參閱《Google Developers 網站政策》。Java 是 Oracle 和/或其關聯企業的註冊商標。
上次更新時間:2024-05-18 (世界標準時間)。
[{
"type": "thumb-down",
"id": "missingTheInformationINeed",
"label":"缺少我需要的資訊"
},{
"type": "thumb-down",
"id": "tooComplicatedTooManySteps",
"label":"過於複雜/步驟過多"
},{
"type": "thumb-down",
"id": "outOfDate",
"label":"過時"
},{
"type": "thumb-down",
"id": "translationIssue",
"label":"翻譯問題"
},{
"type": "thumb-down",
"id": "samplesCodeIssue",
"label":"示例/程式碼問題"
},{
"type": "thumb-down",
"id": "otherDown",
"label":"其他"
}]
[{
"type": "thumb-up",
"id": "easyToUnderstand",
"label":"容易理解"
},{
"type": "thumb-up",
"id": "solvedMyProblem",
"label":"確實解決了我的問題"
},{
"type": "thumb-up",
"id": "otherUp",
"label":"其他"
}]