反模式:無需使用原始碼控管功能即可管理 Edge 資源

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

Apigee Edge 提供許多不同類型的資源,每個類型的資源都有不同的用途。有些資源只能透過 Edge UI、管理 API 或採用管理 API 的工具設定 (例如建立、更新和/或刪除),也只有具備必備角色和權限的使用者可以設定。舉例來說,只有屬於特定機構的機構管理員可以設定這些資源。這表示使用者無法透過開發人員入口網站或任何其他方式設定這些資源。這些資源包括:

  • API Proxy
  • 共用流程
  • API 產品
  • 快取
  • KVM
  • KeyStore 和 Truststores
  • 虛擬主機
  • 目標伺服器
  • 資源檔案

雖然這些資源的存取權受限,但即使已獲授權的使用者做出任何修改,歷來資料只會以新資料覆寫。這是因為這些資源只會根據目前狀態儲存在 Apigee Edge 中。這項規則的主要例外狀況為 API Proxy 和共用流程。

修訂版本控管下的 API Proxy 和共用流程

API Proxy 和共用流程是透過修訂版本進行管理,也就是建立、更新和部署。修訂版本會依序編號,因此您可以加入新的變更並將其儲存為新的修訂版本,或藉由部署先前的 API Proxy/共用流程修訂版本來還原變更。除非修訂版本有不同的基礎路徑,否則環境中只會部署一個 API Proxy/共用流程的一個修訂版本。

雖然 API Proxy 和共用流程是透過修訂版本管理,但如果對現有修訂版本做出任何修改,就無法復原,因為舊的變更會直接覆寫。

稽核與記錄

Apigee Edge 提供稽核API、產品及機構記錄功能,有助於排解各種情況。這些功能可讓您查看更多資訊,例如執行特定作業 (建立、讀取、更新、刪除、部署、取消部署) 的人員,以及這些作業對 Edge 資源執行的時間。不過,如有任何 Edge 資源對任何邊緣資源執行更新或刪除作業,稽核作業就無法提供較舊的資料。

反模式

透過 Edge UI 或管理 API 直接管理 Edge 資源 (如上所示),而不使用來源控制系統

有一項誤解,Apigee Edge 能在修改或刪除後,將資源還原至先前的狀態。不過,Edge Cloud 不會將資源還原至先前狀態。因此,使用者有責任確保所有與 Edge 資源相關的資料都透過原始碼控管管理功能管理,這樣萬一意外刪除或有任何變更需要復原,系統就能快速還原舊資料。在執行階段流量需要使用這些資料的正式環境時,這一點尤其重要。

我們將透過幾個範例來說明這一點,以及如果資料並非透過原始碼控制系統管理,且在不知情或無意中遭到修改/刪除,則可能造成什麼影響:

範例 1:刪除或修改 API Proxy

如果 API Proxy 遭到刪除,或對現有修訂版本部署變更,則先前的程式碼無法復原。如果 API Proxy 含有並非由 Apigee 以外的原始碼控制管理 (SCM) 系統管理的 Java、JavaScript、Node.js 或 Python 程式碼,許多開發工作和工作可能會遺失。

範例 2:透過特定虛擬主機終止 API Proxy

虛擬主機中的憑證即將到期,該虛擬主機必須更新。如果有多個 API Proxy,要找出使用該虛擬主機的 API Proxy 可能並不容易。如果 API Proxy 是在 Apigee 以外的 SCM 系統管理,很容易就能搜尋存放區。

範例 3:刪除 KeyStore/truststore

刪除由虛擬主機或目標伺服器設定使用的 KeyStore/truststore 之後,除非金鑰庫/truststore 的設定詳細資料 (包括憑證和/或私密金鑰) 儲存在原始碼控管中,否則無法復原。

影響程度

  • 任何 Edge 資源遭到刪除後,您就無法從 Apigee Edge 復原該資源及其內容。
  • API 要求可能會失敗並發生非預期的錯誤,導致服務中斷,直到資源還原至先前的狀態為止。
  • 在 Apigee Edge 中,很難在 API Proxy 和其他資源之間搜尋交互依附關係。

最佳做法

  • 使用任何標準 SCM 搭配持續整合和持續部署 (CICD) 管道,即可管理 API Proxy 和共用流程。
  • 請使用任何標準 SCM 管理其他 Edge 資源,包括 API 產品、快取、KVM、目標伺服器、虛擬主機和 KeyStore。
    • 如果已有 Edge 資源,請使用管理 API 取得其設定詳細資料,當做 JSON/XML 酬載,並儲存在原始碼控管管理中。
    • 請在原始碼控制管理頁面中管理這些資源的任何新更新。
    • 如果必須建立新的 Edge 資源或更新現有的 Edge 資源,請使用儲存在原始碼控制管理系統中的適當 JSON/XML 酬載,並使用管理 API 更新 Edge 中的設定。

* 無法從 API 以純文字格式匯出已加密的 KVM。使用者應負責記下哪些值要放入加密的 KVM。

其他資訊