您正在查看 Apigee Edge 說明文件。
請參閱 Apigee X 說明文件。 info
身為現有的 Apigee Edge 客戶,您可以選擇將安裝作業遷移至 Apigee X,以便充分利用新功能,或在不同區域提供服務。
本頁說明遷移至 Apigee X 前,您需要處理的設定中的反模式,以及遷移前應注意的其他行為變更。
更廣泛的 Apigee Edge 反模式清單說明瞭在任何情況下都應避免的使用做法。本頁面說明特定不建議的使用方式,這些做法會阻止遷移作業。請立即解決這些問題,以免遷移至 Apigee X 時發生問題。
不含 API 產品的應用程式 | ||||||||||||||||||||||||
摘要 | 是否需要用戶端變更? | 解決方法 | ||||||||||||||||||||||
有些應用程式沒有 API 產品。 Apigee Edge 和 Apigee X 的差異:
|
否。 |
解決方法:應用程式沒有 API 產品將每個應用程式憑證與至少一項 API 產品建立關聯。如要進一步瞭解如何執行這項操作,請參閱「註冊應用程式及管理 API 金鑰」。 最簡單的方法,就是將所有 API 產品的存取權指派給各個應用程式。 這與 Apigee Edge 的功能相當。 挑戰在於,如果您想採用「最低權限」做法,就必須決定每個應用程式憑證必須具備存取權的 API 產品最低清單。您可以根據用戶端 ID,使用 Apigee Edge Analytics 報表分析這項資訊。 |
||||||||||||||||||||||
不設定到期時間的快取 | ||||||||||||||||||||||||
摘要 | 是否需要用戶端變更? | 解決方法 | ||||||||||||||||||||||
快取沒有到期時間。 Apigee Edge 和 Apigee X 的差異:
|
否 |
解決方法:快取未設定到期時間為所有快取設定到期時間。 |
||||||||||||||||||||||
非確定路徑上的 JSONPath 篩選器運算式 | ||||||||||||||||||||||||
摘要 | 是否需要用戶端變更? | 解決方法 | ||||||||||||||||||||||
對於非確定路徑,查詢篩選運算式的結果並非 JSONPath 規格中的一部分。請參閱 https://goessner.net/articles/JsonPath/。 Apigee Edge 和 Apigee X 的差異: 瀏覽這個範例結構時, { "books": [ { "name": "A", }, { "name": "B", } ] } 使用
使用運算式
|
是 |
解決方法:在非確定路徑上使用 JSONPath 篩選器運算式尋找並取代受影響的查詢。 |
||||||||||||||||||||||
不存在索引的 JSONPath 運算式 | ||||||||||||||||||||||||
摘要 | 是否需要用戶端變更? | 解決方法 | ||||||||||||||||||||||
在 Apigee X 和 Apigee Edge 中,含有不存在索引的 JSONPath 運算式會產生不同的行為。如果找不到路徑,Apigee X 會傳回 Apigee Edge 和 Apigee X 的差異: 瀏覽這個範例結構時, { "books": [ { "name": "A", }, { "name": "B", } ] } 使用
|
是 |
解決方法:針對不存在的索引使用 JSONPath 運算式尋找並取代受影響的查詢。 |
||||||||||||||||||||||
含有陣列索引的 JSONPath 運算式未傳回陣列物件 | ||||||||||||||||||||||||
摘要 | 是否需要用戶端變更? | 解決方法 | ||||||||||||||||||||||
含有陣列索引或切片的 JSONPath 運算式會在 Apigee X 中傳回陣列物件。 Apigee Edge 和 Apigee X 的差異: 瀏覽這個範例結構時, { "books": [ { "name": "A", }, { "name": "B", } ] } 使用
使用運算式
使用
|
是 |
解決方法:含有陣列索引的 JSONPath 運算式未傳回陣列物件找出並取代可能在升級後傳回不同結果的運算式。 |
||||||||||||||||||||||
KeyStore 名稱限制 |
||||||||||||||||||||||||
摘要 | 是否需要用戶端變更? | 解決方法 | ||||||||||||||||||||||
Apigee X 金鑰庫名稱只能包含英文字母、數字和連字號。Edge 金鑰存放區名稱不會設有這些限制。 |
否 |
解決方法:Keystore 名稱限制檢查 KeyStore 名稱,並視需要更新名稱,移除不支援的字元。 |
||||||||||||||||||||||
為 API Proxy 部署多個基礎路徑 |
||||||||||||||||||||||||
摘要 | 是否需要用戶端變更? | 解決方法 | ||||||||||||||||||||||
在環境中部署多個 API Proxy 修訂版本,且每個修訂版本都有不同的基礎路徑。 Apigee Edge 和 Apigee X 的差異:
|
否 |
解決方法:為 API Proxy 部署多個基礎路徑更新所有套件,這樣無論 basepath 為何,都只會將一個套件修訂版本部署至環境。 |
||||||||||||||||||||||
不符合規定的 HTTP 訊息 |
||||||||||||||||||||||||
摘要 | 是否需要用戶端變更? | 解決方法 | ||||||||||||||||||||||
用戶端或 API Proxy 傳送的訊息 (要求或回應) 不符合 HTTP 標準。例如無效的標頭名稱、部分受限制標頭的重複內容等等。 如果 API 執行作業發生下列一或多項錯誤,就無法遷移至 Apigee X:
|
是的,可能會。 |
解決方法:不符合規定的 HTTP 訊息您必須先修正 HTTP 通訊協定中的所有錯誤,才能遷移至 Apigee X。如果錯誤來自用戶端應用程式,您必須請用戶端應用程式的開發人員修正問題。 |
||||||||||||||||||||||
OAuth 2.0 權杖到期時間無效 |
||||||||||||||||||||||||
摘要 | 是否需要用戶端變更? | 解決方法 | ||||||||||||||||||||||
OAuth 2.0 權杖到期限制超出規定範圍。 Apigee Edge 和 Apigee X 的差異:
|
否 |
解決方法:OAuth 2.0 權杖到期時間無效
使用 OAuthV2 政策,並在 |
||||||||||||||||||||||
產品數量超過上限 |
||||||||||||||||||||||||
摘要 | 是否需要用戶端變更? | 解決方法 | ||||||||||||||||||||||
Apigee Edge 的設定不符合定義的產品限制。部分產品限制在 Apigee Edge 上並未強制執行,但在 Apigee X 上會強制執行。 |
否 |
解決方法:產品數量超出上限請先修正超出產品限制的用量,再遷移至 Apigee X。 |
||||||||||||||||||||||
同時包含端點和路徑目標連線指定詞的 ServiceCallout 政策 |
||||||||||||||||||||||||
摘要 | 是否需要用戶端變更? | 解決方法 | ||||||||||||||||||||||
在「ServiceCallout」政策中,
Apigee Edge 會記錄這項規定,但不會強制執行。如果 Apigee X 遇到同時具備這兩種設定的 |
否 |
解決方法:同時使用端點和路徑目標連線指定詞的 ServiceCallout 政策
檢查 ServiceCallout 政策設定,並移除任何不符合規定的 |
||||||||||||||||||||||
指定伺服器名稱限制 |
||||||||||||||||||||||||
摘要 | 是否需要用戶端變更? | 解決方法 | ||||||||||||||||||||||
Apigee X 目標伺服器名稱只能包含英文字母、數字、連字號和半形句號。 Edge 目標伺服器名稱不會設有這些限制。 |
否 |
解決方法:指定目標伺服器名稱限制檢查目標伺服器名稱,並視需要更新名稱,移除不支援的字元。 |
||||||||||||||||||||||
虛擬主機中的試用憑證 |
||||||||||||||||||||||||
摘要 | 是否需要用戶端變更? | 解決方法 | ||||||||||||||||||||||
一或多個虛擬主機使用 Apigee 提供的「免費試用」憑證。這會導致虛擬主機回應 Apigee Edge 和 Apigee X 的差異:
|
是 |
解決方法:虛擬主機中的試用憑證您必須設定自己的網域,並適當地提供憑證。
任何依賴 |
||||||||||||||||||||||
未解析的 DNS |
||||||||||||||||||||||||
摘要 | 是否需要用戶端變更? | 解決方法 | ||||||||||||||||||||||
目標端點有未解析的網域名稱。 Apigee Edge 和 Apigee X 的差異:
|
否 |
解決方法:未解析 DNS使用有效的網域名稱更新目標端點。 |