キャッシュを追加して Azure API Management のパフォーマンスを向上させる
適用対象: 開発者 | Basic | Basic v2 | Standard | Standard v2 | Premium
API および API Management 内の操作は、応答のキャッシュを使用して構成できます。 応答のキャッシュを使用すると、API の呼び出し元と API プロバイダーのバックエンド読み込みの待機時間を大幅に短縮できます。
重要
組み込みのキャッシュは揮発性であり、同じ API Management サービスの同じリージョン内のすべてのユニットによって共有されます。 キャッシュの種類 (内部または外部) にかかわらず、キャッシュの揮発性やその他の理由によりキャッシュ関連の操作がキャッシュへの接続に失敗した場合、キャッシュ関連の操作を使用する API 呼び出しでエラーは発生せず、キャッシュ操作は正常に完了します。 読み取り操作の場合は、呼び出し元のポリシー式に null 値が返されます。 キャッシュに見つからないデータを取得するための "フォールバック" メカニズムが確実にあるように、ポリシー コードを設計する必要があります。 キャッシュの詳細については、「API Management のキャッシュ ポリシー」と「Azure API Management のカスタム キャッシュ」を参照してください。
ここでは、次の内容について学習します。
- API の応答キャッシュの追加
- 動作中のキャッシュの確認
Note
内部キャッシュは Azure API Management の従量課金レベルでは利用できません。 代わりに外部 Azure Cache for Redis を使用できます。 他の API Management サービス レベルに外部キャッシュを構成することもできます。
前提条件
このチュートリアルを完了するには、以下が必要です。
キャッシュ ポリシーを追加する
この例に示すキャッシュ ポリシーでは、GetSpeakers 操作に対する最初の要求は、バックエンド サービスからの応答を返します。 この応答はキャッシュされ、指定されたヘッダーとクエリ文字列パラメーターによってキーが設定されます。 パラメーターが一致する後続の操作の呼び出しに対しては、キャッシュの有効期間が超過するまで、キャッシュに格納された応答が返されます。
Azure portal にサインインします。
APIM インスタンスを参照します。
[API] タブを選択します。
API の一覧で [Demo Conference API](デモ会議 API) をクリックします。
[GetSpeakers] を選択します。
画面の上部の [デザイン] タブを選択します。
[受信処理] セクションで、[</>] アイコンをクリックします。
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" />
[期間] は、キャッシュに入れられた応答の有効期間を指定します。 この例では、間隔は 20 秒です。
ヒント
外部キャッシュを使用している場合は、「Azure API Management で外部の Azure Cache for Redis を使用する」の説明に従って、キャッシュ ポリシーの caching-type
属性を指定する必要がある場合があります。 詳しくは、「API Management のキャッシュ ポリシー」をご覧ください。
操作を呼び出してキャッシュをテストする
動作中のキャッシュを確認するには、開発者ポータルから操作を呼び出します。
- Azure Portal で、APIM インスタンスに移動します。
- [API] タブを選択します。
- キャッシュ ポリシーを追加した API を選択します。
- [GetSpeakers] 操作を選択します。
- 右上のメニューの [テスト] タブをクリックします。
- [送信] をクリックします。
次のステップ
- キャッシュ ポリシーの詳細については、Azure API Management ポリシー リファレンスの「Caching policies (キャッシュ ポリシー)」を参照してください。
- ポリシー式を使ってキーごとにアイテムをキャッシュする方法については、「 Azure API Management のカスタム キャッシュ」を参照してください。
- 外部の Azure Cache for Redis の使用方法について詳しくは、「Azure API Management で外部の Azure Cache for Redis を使用する」をご覧ください。