このページの内容は Apigee と Apigee ハイブリッドに該当します。
Apigee Edge のドキュメントを表示する。
API プロキシ デベロッパーは、1 つ以上の Apigee のデータ永続性メカニズムを使用して構成データを保管し、後で API プロキシからアクセスできるようにします。このトピックでは、ユースケースに応じて適切な永続性メカニズムを選択する方法について説明します。
永続性メカニズム
次の表は、Apigee で使用可能な永続性メカニズムの簡単な説明を記載しています。メカニズム | 用途 |
---|---|
Key-Value マップ | Key-Value マップ(KVM)は、定期的に変更される可能性のあるデータのための一般的なランタイム ストアを提供します。ユーザー セッション データやショッピング カートなどがこれに該当します。KVM エントリは暗号化できます。Key-Value マップの使用もご覧ください。 |
プロパティ セット | プロパティ セットは、頻繁には変更されない構成データを保存する場合に適しています。プロパティ セットの使用もご覧ください。 |
Kubernetes Secret | (Apigee ハイブリッドのみ)ユーザーの認証情報などのセンシティブ データを保存する場合に Secret を使用します。Kubernetes Secret へのデータの保存もご覧ください。 |
永続性メカニズムのスコープ
利用可能な各永続性メカニズムには、保存済みデータにアクセスできる場所を決定する特定のスコープがあります。次の表は、各永続メカニズムで使用可能なスコープをまとめたものです。スコープの詳細については、永続性スコープについてとプロパティ セットのスコープをご覧ください。
組織 | 環境 | API プロキシ | |
---|---|---|---|
Key-Value マップ | ○ | はい | ○ |
プロパティ セット | × | ○ | ○ |
Kubernetes Secret | × | ○ | × |
使用する永続性メカニズムの決定
このセクションでは、各永続性メカニズムのユースケースについて説明し、構成データの格納に最適なメカニズムを選択できるようにします。
Key-Value マップを使用する状況
Apigee には、KVM データの保存、更新、削除のための API がありません。これらのタスクは、KeyValueMapOperations ポリシーを使用して実行する必要があります。このポリシーを使用すると、プロキシの実行時に、実行中の KVM を操作できます。
次のような場合は KVM の使用を検討してください。
- 数千、数十万、数百万の Key-Value マップエントリがある(ドキュメントに記載されている KVM サイズの上限以下の数)。
- 設計時に不明なエントリがある。
たとえば、ユーザーのログイン時に KVM を使用してユーザー セッション データを保存し、ユーザーのログアウト時にデータを削除します。
プロパティ セットを使用する状況
次のような場合にはプロパティ セットの使用を検討してください。
- キーと値は設計時に判明している。プロパティ セットの値を実行中の API プロキシで変更することはできない。これらの値は、プロキシフローで読み取り専用変数として利用できる。
- 数個から数百個のキー(合計 110 KB 未満)がある。プロパティ セットのキーと値は常にメモリに保存されており、簡単にアクセスできる。
- 管理者が API プロキシを再デプロイしなくても、環境内のプロパティ セットを変更できるようにすることを希望する。
たとえば、プロパティ セットはルートルールを保存するのに適しています。ルートルールは Key-Value ペアで、値はターゲット エンドポイント URL です。通常、これらの値は環境によって異なり、環境にデプロイされた複数の API プロキシで共有できます。プロパティ セットは、公開鍵と証明書の保存にも適しています。
Kubernetes Secret を使用する状況
このオプションは、Apigee ハイブリッドでのみ使用できます。これにより、API プロキシが Kubernetes Secret に保存されているデータにアクセスできます。このオプションは、プロパティ セットと類似しており、保存されたデータは、実行中のプロキシ内でメッセージ フロー変数として利用できます。ただし、データは常にランタイム プレーン内に残ります。Apigee クラウド内の管理プレーンに設定されることはありません。
次のような場合は Kubernetes Secret の使用を検討してください。
- 管理プレーンに保存することを回避すべき機密情報を保存する必要がある。たとえば、外部システムへのアクセスに必要な秘密鍵または認証情報を保存する場合には Kubernetes Secret を使用できる。
- 保存したデータを、同じ環境にデプロイされている複数の API プロキシと共有する必要がある。