キャッシュ保存と永続性の概要

このページは ApigeeApigee ハイブリッドに適用されます。

Apigee Edge のドキュメントを表示する。

Apigee の永続性機能には、キャッシュ、Key-Value マップ、プロパティ セットが含まれます。Apigee ハイブリッドを使用している場合は、Kubernetes シークレットを使用してセンシティブ データを保持できます。

機能 用途
キャッシュ 汎用キャッシュ用のポリシーを使用すると、複数のリクエスト / レスポンス セッションにまたがってプロキシで必要とされるオブジェクトを保存できます。ResponseCache ポリシーを使用して、バックエンド リソースのレスポンスをキャッシュに保存することもできます。レスポンス キャッシュは、バックエンド データが定期的に更新される場合にのみ特に役立ちます。ResponseCache ポリシーを使用すると、バックエンド データソースへの呼び出しを減らすことができます。
Key-Value マップ Key-Value マップ(KVM)は、定期的に変更される可能性のあるデータのための一般的なランタイム ストアを提供します。たとえば、ユーザー セッション データやショッピング カートなどが該当します。KVM エントリは暗号化できます。
プロパティ セット プロパティ セットは、頻繁には変更されない構成データを保存する場合に適しています。
Kubernetes Secret (Apigee ハイブリッドのみ)Secret を使用して、ユーザーの認証情報などのセンシティブ データを保存します。

キャッシュ

環境スコープのキャッシュ リソースは、API プロキシフロー内でキャッシュ ポリシーが実行されると動的に作成されます。キャッシュ ポリシーには、PopulateCache ポリシーLookupCache ポリシーInvalidateCache ポリシーResponseCache ポリシーなどがあります。

キャッシュに保存されたアイテムはメモリ(L1)に 1 秒間留まります。この構成は変更できません。1 秒後、キャッシュに保存されたオブジェクトがデータベース(L2)に配置され、キャッシュが期限切れになるまで使用可能です。詳細については、メモリ内キャッシュ レベルと永続性キャッシュ レベルをご覧ください。有効期限などのキャッシュの詳細は、キャッシュ ポリシーの構成によって管理します。キャッシュ リソースを一覧表示および削除できる Apigee API が用意されています。

キャッシュ ポリシーを使用する際は、キャッシュに保存される値のキーが一意になるようにキャッシュキーを構成します。キャッシュに保存したデータと同じデータをキャッシュから取得するには、キャッシュキーと他の構成可能な値が信頼できる手段になります。キャッシュのサイズと可用性には、特定の上限が適用されます。

キャッシュは次のような用途に使用できます。

  • レイテンシとトラフィックの低減: 表現の再利用によってリクエストに短時間で応答します。
  • トランザクション間でのデータ保持: セッション データを保存して HTTP トランザクション間で再利用できます。
  • セキュリティの維持: キャッシュ エントリへのアクセスにスコープを設けて、特定の環境または特定の API プロキシからのみアクセスできるようにします。

バックエンド レスポンスのキャッシュ保存

ResponseCache ポリシーを使用して、バックエンド リソースのレスポンスをキャッシュに保存できます。

これは、バックエンド データが定期的に更新される場合にのみ特に役立ちます。ResponseCache ポリシーを使用すると、バックエンド データソースへの呼び出しを減らすことができます。

ResponseCache ポリシーを使用すると、Apigee に特定の HTTP レスポンス キャッシュ保存ヘッダーを参照させ、ヘッダーの指示に従ってアクションを実行させることもできます。たとえば、バックエンド ターゲットからのレスポンスについて、Apigee は Cache-Control ヘッダーをサポートしています。このヘッダーは、キャッシュ保存されているレスポンスの最長期間を制御する目的などに使用できます。詳しくは、HTTP レスポンス ヘッダーのサポートをご覧ください。

短期の汎用キャッシュ保存

汎用キャッシュ用のポリシーを使用すると、複数のリクエスト / レスポンス セッションにまたがってプロキシで必要とされるオブジェクトを保存できます。

PopulateCache ポリシーLookupCache ポリシーInvalidateCache ポリシーを使用すると、実行時にキャッシュ データの入力、取得、フラッシュを行うことができます。

たとえば、一時的に以下のデータを保存できます。

  • セッション管理のセッション ID
  • 送信呼び出しの認証情報(API キー、OAuth アクセス トークンなど)
  • アプリでページ制御が必要なレスポンスの内容

キャッシュ ポリシーは、実行時にプロキシ変数とユーザーが指定した構成済みキャッシュの間で値をコピーします。値はキャッシュに格納される際に、ユーザーが指定した変数からキャッシュにコピーされます。キャッシュから取得される値は、プロキシで使用するために変数にコピーされます。

コードの例については、例: 汎用キャッシュをご覧ください。

Apigee API を使用したキャッシュの管理

キャッシュ API を使用して、キャッシュの一覧表示と削除を行えます。

Key-Value マップ(KVM)を使用した長期的な保持

構造化データを暗号化または暗号化されていない状態で無期限に保存するには、任意の Key-Value ペアを含む Key-Value マップ(KVM)を作成します。たとえば、以下の情報を保存できます。

  • IP アドレスを国コードに関連付けるマップ。
  • アクセスを許可 / 拒否される IP アドレスのリスト。
  • 長い URL と短縮 URL を関連付けるマップ。
  • 割り当て数、OAuth トークンの有効期限など、環境固有のデータ。

KVM には、organization、environment、apiproxy の 3 つのスコープのいずれかを含めることが可能です。たとえば、Key-Value ペアを組織内のすべての API に使用する場合は、組織スコープで KVM を作成します。特定の API プロキシだけが Key-Value にアクセスできるようにする場合は、apiproxy スコープで KVM を作成します。詳細については、Key-Value マップの活用をご覧ください。

プロパティ セット

プロパティ セットは、データを格納する Key-Value ペアのカスタム コレクションです。API プロキシは、実行時にこのデータを取得できます。

通常、プロパティ セットを使用して、API プロキシ ロジックにハードコードすべきでない無期限のデータ(構成データなど)を格納するために使用します。フロー変数にアクセスできるプロキシ内の任意の場所で、プロパティ セットのデータにアクセスできます。

プロパティ セットの一般的なユースケースは、環境ごとに関連する値を提供することです。たとえば、テスト環境で動作しているプロキシに固有の構成値で、環境をスコープとしたプロパティ セットを作成し、本番環境用に別のプロパティ セットを作成できます。

詳細については、プロパティ セットの使用をご覧ください。

Kubernetes Secret

(Apigee Hybrid のみ)機密データを管理するカスタム Vault で Kubernetes をすでに使用している場合は、Kubernetes Secret の使用を検討してください。KVM データの場合と同様に、API プロキシフロー変数で Kubernetes Secret のデータにアクセスできます。詳細については、Kubernetes Secret へのデータの保存をご覧ください。