使用鍵/值對應

本頁適用於 ApigeeApigee Hybrid

查看 Apigee Edge 說明文件。

本節將說明如何使用鍵/值對應 (KVM)。

總覽

有時您可能需要儲存資料,以便在執行階段擷取資料,而不會過期的資料不應在 API 代理程式邏輯中硬式編碼。鍵值對應 (KVM) 是這類情況的理想選擇。KVM 是加密鍵/值字串組合的自訂集合。

以下列出在 KVM 中儲存資料的三種廣泛用途:

  • 使用者工作階段資料:僅由執行階段建立及刪除的資料;您無法在執行階段以外的地方查看或管理 KVM 項目。例如購物車內容。
  • 設定 (例如轉送規則和查閱表):通常是在執行階段外建立,但由執行階段讀取的資料。這類資料會透過 UI 或 API 設定,然後提供給閘道 (做為變數或唯讀內容)。

    舉例來說,假設您有一個 API 代理程式,需要在測試環境中呼叫一個目標 (或服務呼籲) 網址,並在實際執行環境中呼叫另一個目標網址。您可以讓 API Proxy 偵測所在環境,執行相關的 KeyValueMapOperations 政策,並從適當的 KVM 擷取正確的目標網址,而非在 API Proxy 中硬式編碼網址。

    日後,如果其中一個或兩個目標發生變更,您只需將 KVM 更新為新的網址即可。API 代理會擷取新的值,因此不必重新部署。

  • 憑證:儲存憑證、私密金鑰或權杖,例如外部服務的權杖、產生 OAuth 權杖所需的憑證,或是用於 JavaCallout 政策或 JavaScript 的私密金鑰,以便進行加密或 JSON Web Token (JWT) 簽署。您可以將憑證、金鑰或符記儲存在 KVM 中,並在呼叫需要這些憑證、金鑰或符記的目標時,動態擷取這些項目,而非在要求中傳遞憑證、金鑰或符記,或在 Proxy 邏輯中以硬式編碼方式處理這些項目。

您會發現,在其他情況下儲存鍵/值字串組合也很實用。一般來說,在下列情況下,請考慮使用 KVM:

  • 程式碼中的特定部分在執行階段需要不同的值。
  • 您必須在不硬式編碼的情況下傳遞機密資料。
  • 您希望儲存的值不會過期,就像快取一樣。

在某些情況下,物件集是 KVM 的絕佳替代方案,因為物件集更容易使用。詳情請參閱「使用資源集」。

關於 KVM 範圍

範圍定義 KVM 可用的範圍。KVM 可在下列範圍建立:

範圍 說明
API Proxy 只有 API 代理程式才能存取 KVM。
環境 特定環境中的所有 API 代理程式都可以存取 KVM。舉例來說,您可能不希望在 prod 環境中部署的 API Proxy 能存取 test 環境中的 KVM。如果您希望在實際工作環境中使用相同的 KVM 鍵,請建立以 prod 環境為範圍的平行 KVM。
機構 所有環境中的所有 API 代理程式都可以存取 KVM。

關於 KVM 加密

Apigee 中,API 代理程式、機構和環境範圍的所有 KVM 項目都會使用 Cloud KMS 金鑰進行保護,這項金鑰是在 Apigee 機構佈建時提供 (請參閱 Organization 資源中的 runtimeDatabaseEncryptionKey 欄位)。Apigee 使用 AES256 做為加密標準。

Apigee hybrid 中,您可以為 API 代理程式、機構和環境範圍的所有 KVM 項目提供個別的加密金鑰。Apigee 接受 AES128、AES196 或 AES256 的加密區塊大小做為加密標準。

建立 KVM

按照下列各節所述建立 KVM。

Cloud 控制台中的 Apigee

如要建立新的 (空白) KVM,或查看 KVM 清單,請按照下列步驟操作:

  1. 在瀏覽器中開啟 Cloud 控制台中的 Apigee UI
  2. 在左側導覽窗格中,依序按一下「管理」>「環境」
  3. 從可用環境清單中選取要編輯的環境。
  4. 在「環境詳細資料」頁面上,按一下「鍵/值對應」分頁標籤。

    「鍵/值對應」頁面會顯示現有的 KVM 清單。如果您尚未建立任何 KVM,清單會為空白。

  5. 如要建立新的 (空白) KVM,請按一下「+ 建立鍵值對應」

    系統隨即會顯示「新增鍵值對應」對話方塊。

  6. 在「Key value map name」欄位中輸入 KVM 的名稱。

    名稱只能包含英文字母、數字和連字號,長度不得超過 255 個字元。不得包含空格或其他特殊字元。例如:my-kvm-1

  7. 按一下 [建立]。

    清單中會顯示新的 KVM。

傳統版 Apigee UI

如要建立新的 (空白) KVM,或查看 KVM 清單,請按照下列步驟操作:

  1. 登入 Apigee UI
  2. 依序選取「管理」>「環境」>「鍵值對應表」
  3. 在環境下拉式清單中,選取要建立 KVM 的環境。

    「鍵/值對應」頁面會顯示現有的 KVM 清單。如果您尚未建立任何 KVM,清單會是空白的。

  4. 如要建立新的 (空白) KVM,請按一下「+Key value map」

    系統隨即會顯示「新增鍵值對應」對話方塊。

  5. 在「Name」欄位中輸入 KVM 的名稱。

    名稱只能包含英文字母、數字和連字號。不得包含空格或其他特殊字元。例如:my-kvm-1

  6. 按一下「新增」

    清單中會顯示新的 KVM。

Apigee API

使用 Apigee API 建立、列出及刪除下列範圍的 KVM:

KVM 政策

如要在執行階段建立 KVM,並在 API 代理程式中更新 KVM,請使用 KeyValueMapOperations 政策。在政策中,您可以在父項元素的 mapIdentifier 屬性中指定 KVM 名稱。

只要在 UI 中儲存政策或部署 API Proxy (如果您是在離線狀態下開發),<InitialEntries> 元素就能在新的 KVM 中建立並填入基準資料表項目。如果政策中的值有所變更,系統會覆寫現有值。任何新的鍵/值組合都會與現有的鍵/值組合一併新增至現有的 KVM。

如果尚未存在 KVM,<Put> 元素會建立新的 KVM,並建立含有一或多個值的鍵。如果 KVM 已存在,系統會新增鍵/值組合 (如果鍵已存在,則會更新)。您可以在 KVM 政策中使用多個 <Put> 元素。

偵錯

使用 KeyValueMapOperations 政策擷取加密的 KVM 值時,您必須提供變數名稱來儲存值。由於所有 KVM 值都已加密,因此您需要在變數名稱中加上 private. 前置字串,以免 KVM 鍵/值組合出現在偵錯工作階段中。

擷取 KVM

使用 KeyValueMapOperations 政策<Get> 元素擷取 KVM。由於所有 KVM 值都已加密,請在包含擷取值的變數名稱中加入 private. 前置字串。這個前置字串會在您偵錯 API 代理程式時,隱藏偵錯工作階段中的值。詳情請參閱 <Get> 元素

刪除 KVM

按照下列各節所述刪除 KVM。

Cloud 控制台中的 Apigee

如要刪除 KVM,請按照下列步驟操作:

  1. 在瀏覽器中開啟 Cloud 控制台中的 Apigee UI
  2. 在左側導覽窗格中,依序按一下「管理」>「環境」
  3. 從可用環境清單中選取要編輯的環境名稱。
  4. 在「環境詳細資料」頁面上,按一下「鍵/值對應」分頁標籤。

    「Key Value Maps」頁面會顯示現有的鍵/值對應清單。

  5. 找出要刪除的 KVM 資料列。
  6. 按一下「動作」欄中的
  7. 在對話方塊中按一下「Delete Key Value Map」,確認要執行這項操作。

    系統會刪除 KVM 並從清單中移除。

傳統版 Apigee UI

如要刪除 KVM,請按照下列步驟操作:

  1. 登入 Apigee UI
  2. 依序選取「管理」>「環境」>「鍵值對應表」
  3. 在環境下拉式清單中,選取要刪除 KVM 的環境。

    「鍵/值對應」頁面會顯示現有的 KVM 清單。

  4. 將滑鼠游標懸停在要刪除的 KVM 上。
  5. 按一下 「刪除」
  6. 按一下「刪除」確認操作。

    系統會刪除 KVM 並從清單中移除。

Apigee API

請使用下列其中一個 Apigee API,根據 KVM 的範圍刪除 KVM: