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

您正在查看 Apigee Edge 說明文件。
前往 Apigee X 說明文件
info

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

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

雖然這些資源的存取權受限,但如果經過授權的使用者對這些資源進行任何修改,系統會直接將新資料覆寫舊資料。這是因為這些資源只會依據目前狀態儲存在 Apigee Edge 中。這項規則的主要例外狀況是 API Proxy 和共用流程。

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

API Proxy 和共用流程的管理 (也就是建立、更新和部署) 作業,都是透過修訂來完成。修訂版本會依序編號,方便您新增變更並儲存為新修訂版本,或是部署 API 代理程式/共用流程的舊修訂版本來還原變更。在任何時間點,在環境中部署的 API Proxy/共用資料流只能有一個修訂版本,除非修訂版本有不同的基礎路徑。

雖然 API 代理程式和共用流程是透過修訂版本管理,但如果對現有修訂版本進行任何修改,舊版變更會直接覆寫,因此無法回溯。

稽核和記錄

Apigee Edge 提供的稽核API、產品和機構記錄功能,可協助您排解問題。這些功能可讓您查看相關資訊,例如誰執行了特定作業 (建立、讀取、更新、刪除、部署和取消部署),以及在 Edge 資源上執行作業的時間。不過,如果對任何 Edge 資源執行任何更新或刪除作業,稽核作業就無法提供舊資料。

反模式

不使用原始碼控管系統,直接透過 Edge UI 或管理 API 管理 Edge 資源 (如上所列)

有個錯誤的觀念認為,Apigee Edge 在修改或刪除資源後,可以將資源還原為先前的狀態。不過,Edge Cloud 不會將資源還原至先前的狀態。因此,使用者有責任確保所有與 Edge 資源相關的資料皆透過來源控管管理,以便在意外刪除或需要回復任何變更的情況下,快速還原舊資料。這對需要此資料來處理執行階段流量的實際工作環境而言特別重要。

以下舉例說明,如果未透過來源控管系統管理資料,且資料經過有意或無意修改/刪除,可能會造成哪些影響:

範例 1:刪除或修改 API Proxy

刪除 API 代理程式,或在現有修訂版本上部署變更時,先前的程式碼將無法復原。如果 API 代理程式包含在 Apigee 以外的來源控管管理 (SCM) 系統中未管理的 Java、JavaScript、Node.js 或 Python 程式碼,就可能會損失大量開發工作和心血。

範例 2:使用特定虛擬主機判斷 API 代理程式

虛擬主機上的憑證即將到期,因此需要更新該虛擬主機。如果有許多 API Proxy,要找出哪些 API Proxy 會使用該虛擬主機進行測試可能會很困難。如果 API 代理程式是在 Apigee 以外的 SCM 系統中管理,則可輕鬆搜尋存放區。

示例 3:刪除 KeyStore/TrustStore

如果刪除虛擬主機或目標伺服器設定所使用的 KeyStore/TrustStore,就無法還原,除非 KeyStore/TrustStore 的設定詳細資料 (包括憑證和/或私密金鑰) 已儲存在來源控管中。

影響

  • 如果刪除任何 Edge 資源,就無法從 Apigee Edge 復原該資源及其內容。
  • API 要求可能會失敗,並導致非預期的錯誤,直到資源恢復到先前的狀態為止。
  • 在 Apigee Edge 中,很難搜尋 API 代理程式與其他資源之間的內部依附關係。

最佳做法

  • 使用任何標準 SCM 搭配持續整合與持續部署 (CICD) 管道,管理 API Proxy 和共用流程。
  • 請使用任何標準 SCM 來管理其他 Edge 資源,包括 API 產品、快取、KVM、目標伺服器、虛擬主機和密鑰存放區。
    • 如果有任何現有的 Edge 資源,請使用管理 API 取得這些資源的設定詳細資料,並以 JSON/XML 酬載的形式儲存在來源控管管理中。
    • 在原始碼控管功能中管理這些資源的任何新更新。
    • 如果需要建立新的 Edge 資源或更新現有的 Edge 資源,請使用儲存在來源控管管理中的適當 JSON/XML 酬載,並使用管理 API 更新 Edge 中的設定。

* 加密的 KVM 無法透過 API 以純文字匯出。使用者有責任記錄放入加密 KVM 的值。

延伸閱讀