共用方式為


新增快取以改善 Azure API 管理的效能

適用於:開發人員 |基本 |基本 v2 |標準 |標準 v2 |進階 |進階 v2 |隔離

可以使用回應快取設定 API 和 API 管理中的作業。 回應快取可大幅降低 API 呼叫端的延遲,以及 API 提供者的後端負載。 本文說明如何將快取新增至 API。

重要事項

內建快取是揮發性的,而且會由相同 API 管理實例中相同區域中的所有單位共用。 不論使用的快取類型為何(內部或外部),如果快取相關作業因為快取的波動性或任何其他原因而無法連線到快取,則使用快取相關作業的 API 呼叫不會引發錯誤,而且快取作業會順利完成。 在讀取作業的情況下,Null 值會傳回給呼叫原則運算式。 您的原則程式代碼應該設計成確保有後援機制可擷取快取中找不到的數據。

顯示 API 管理中快取原則的螢幕快照。

在本文章中,您將:

  • 為您的 API 新增回應快取
  • 驗證快取是否正常運作

附註

Azure API 管理的消耗層方案中無法使用內部快取。 您可以改用外部 Azure Redis 快取。 您也可以在其他 API 管理服務層中設定外部快取。

先決條件

新增快取原則

根據此範例中顯示的快取原則,對測試作業的第一個要求會傳回來自後端服務的回應。 此回應會被快取,並依指定的標頭和查詢字串參數來識別。 後續以相同參數進行作業的呼叫會返回快取的回應,直到快取有效時間間隔到期為止。

  1. 登入 Azure 入口網站

  2. 移至您的 API 管理實例。

  3. 選取左側功能表中的API>API

  4. 選取您要對其設定快取的 API。

  5. 在畫面頂端,選取 [ 設計 ] 索引標籤。

  6. 在 [ 輸入處理 ] 區段中,選取 </> 圖示:

    顯示入口網站中 API 管理 API 的螢幕快照。

  7. inbound 元素中,新增下列原則:

    <cache-lookup vary-by-developer="false" vary-by-developer-groups="false">
        <vary-by-header>Accept</vary-by-header>
        <vary-by-header>Accept-Charset</vary-by-header>
        <vary-by-header>Authorization</vary-by-header>
    </cache-lookup>
    <rate-limit calls="10" renewal-period="60" />
    

    附註

    在快取查詢後加入 速率限制 政策(或 按金鑰限制速率限制 政策),以幫助限制呼叫次數,並防止快取無法使用時後端服務過載。

  8. outbound 元素中,新增下列原則:

    <cache-store duration="20" />
    

    在此原則中, duration 指定快取回應的到期間隔。 間隔為20秒。

  9. 選取 [儲存]。

秘訣

如果您使用外部快取,如在 Azure API 管理中使用外部 Redis 相容快取中所述,您可能想要指定 caching-type 快取原則的屬性。 如需詳細資訊,請參閱 API 管理快取原則

呼叫作業以測試快取功能

若要測試快取功能,請在入口網站中呼叫作業。

  1. 在 Azure 入口網站中,移至您的 APIM 執行個體。
  2. 選取左側功能表中的API>API
  3. 選取您已新增快取原則的 API。
  4. 選取要測試的作業。
  5. 選取視窗頂端的 [ 測試 ] 索引標籤。
  6. 快速連續選取 [追蹤] 兩次或三次。
  7. 在 [HTTP 回應] 底下,選取 [追蹤] 索引標籤。
  8. 跳至 [輸入] 區段並捲動至 cache-lookup 原則。 您應該會看到一則類似於以下螢幕擷取畫面中的訊息,該訊息表示快取命中:在入口網站中測試 API 時快取查閱的螢幕擷取畫面。