適用対象: 開発者 | 基本 | 基本 v2 | 標準 | 標準 v2 | プレミアム | プレミアム v2 | 分離型
API および API Management 内の操作は、応答のキャッシュを使用して構成できます。 応答のキャッシュを使用すると、API の呼び出し元と API プロバイダーのバックエンド読み込みの待機時間を大幅に短縮できます。 この記事では、API にキャッシュを追加する方法について説明します。
重要
組み込みキャッシュは揮発性であり、同じ API Management インスタンス内の同じリージョン内のすべてのユニットによって共有されます。 キャッシュの種類 (内部または外部) に関係なく、キャッシュの揮発性のためにキャッシュ関連の操作がキャッシュに接続できない場合、またはその他の理由で失敗した場合、キャッシュ関連の操作を使用する API 呼び出しでエラーが発生せず、キャッシュ操作が正常に完了します。 読み取り操作の場合は、呼び出し元のポリシー式に null 値が返されます。 ポリシー コードは、キャッシュに見つからないデータを取得するためのフォールバック メカニズムがあることを確認するように設計する必要があります。
キャッシュの詳細については、「API Management のキャッシュ ポリシー」と「Azure API Management のカスタム キャッシュ」を参照してください。
この記事では、次の操作を行います。
- API の応答キャッシュの追加
- キャッシュが機能していることを確認する
注
内部キャッシュは、Azure API Management の 従量課金 レベルでは使用できません。 代わりに外部 Azure Cache for Redis を使用できます。 他の API Management サービス レベルに外部キャッシュを構成することもできます。
前提条件
キャッシュ ポリシーを追加する
この例に示すキャッシュ ポリシーでは、テスト操作に対する最初の要求からバックエンド サービスからの応答が返されます。 この応答はキャッシュされ、指定されたヘッダーとクエリ文字列パラメーターによってキーが設定されます。 一致するパラメーターを持つ操作の後続の呼び出しでは、キャッシュ期間の間隔が切れるまで、キャッシュされた応答が返されます。
Azure portal にサインインします。
API Management インスタンスに移動します。
左側のメニューで [API>API] を選択します。
キャッシュを構成する API を選択します。
画面の上部にある [ デザイン ] タブを選択します。
[ 受信処理 ] セクションで、 </> アイコンを選択します。
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>
outbound
要素で、次のポリシーを追加します。<cache-store duration="20" />
このポリシーでは、
duration
キャッシュされた応答の有効期限を指定します。 間隔は 20 秒です。保存 を選択します。
ヒント
外部キャッシュを使用している場合は、「 Azure API Management での外部 Azure Cache for Redis の使用」の説明に従って、キャッシュ ポリシーの caching-type
属性を指定できます。 詳細については、 API Management キャッシュ ポリシーを 参照してください。
操作を呼び出してキャッシュをテストする
キャッシュをテストするには、ポータルで操作を呼び出します。
- Azure portal で API Management インスタンスに移動します。
- 左側のメニューで [API>API] を選択します。
- キャッシュ ポリシーを追加した API を選択します。
- テストする操作を選択します。
- ウィンドウの上部にある [ テスト ] タブを選択します。
- [トレース] を 2 回または 3 回連続して素早く選択します。
- [HTTP 応答] で、[トレース] タブを選択します。
-
[受信] セクションに移動し、
cache-lookup
ポリシーまでスクロールします。 次のスクリーンショットのようなメッセージが表示されます。これは、キャッシュ ヒットを示しています。
関連するコンテンツ
- キャッシュ ポリシーの詳細については、Azure API Management ポリシー リファレンスの「Caching policies (キャッシュ ポリシー)」を参照してください。
- ポリシー式を使用したキーによる項目のキャッシュについては、 Azure API Management でのカスタム キャッシュに関するページを参照してください。
- 外部の Azure Cache for Redis または Azure Managed Redis の使用方法について詳しくは、「Azure API Management で外部の Azure Cache for Redis を使用する」をご覧ください。