任意のテキスト エディタ、XML 対応エディタまたは IDE を使用して、ポリシーをローカルに作成し、編集できます。このトピックでは、Quota ポリシータイプを例として、ポリシーの作成、構成、接続、デプロイ、テストを行う方法を説明します。
ほとんどの API プロキシで割り当てが使用されています。割り当てにより、クライアント アプリが一定の時間内に API を呼び出せる回数が制限されます。以下の例では、1 分間に 1 件のリクエストという制限をアプリに追加する Quota ポリシーを構成しています。この値は現実的ではありませんが、ポリシーの効果をわかりやすくするために単純化しています。
API プロキシの構成で、ポリシー ファイルは XML ファイルとして /apiproxy/policies
ディレクトリに格納されています。
たとえば、QuotaPolicy という名前の Quota タイプのポリシーは、次のような内容で、QuotaPolicy.xml
という名前のファイルとして作成されます。
<Quota enabled="true" continueOnError="false" async="false" name="QuotaPolicy"> <Allow count="1"/> <Interval>1</Interval> <TimeUnit>minute</TimeUnit> </Quota>
テキスト ファイルを手動で作成するか、XML スキーマからポリシーを生成できます。どのポリシーにも、ポリシータイプに固有な設定もあれば、すべてのポリシーで共通の設定もあります。
すべてのポリシーで次の属性が定義されています。
enabled
: ポリシーの状態("on" または "off")を表します。この設定を変更して、ランタイムにポリシーを有効または無効にできます。enabled
がfalse
に設定されているポリシーは適用されません。continueOnError
: ポリシーの失敗時に、パイプラインでメッセージの処理を続行するかどうかを定義します。Quota ポリシーを適用すると、割り当て超過を通知するエラーが発生する可能性があります。その場合は、この属性を false に設定する必要があります。async
: ポリシーでasync=true
を有効にすると、リクエスト / レスポンスフローにサービスを提供している通常のプールとは分離して、異なるスレッドプール内でポリシーを実行するように API サービスに命令します。これは内部で行われる最適化で、API デベロッパーが行うことはまずありません。name
: このポリシーに付ける名前。この名前はポリシー インスタンスに対して一意で、処理ステップとしてポリシーをフローに接続する場合に使用します。
上記の例で、Allow
、Interval
、TimeUnit
は Quota ポリシーに固有な要素です。これらの要素では、API Services が API の代わりに適用する設定を定義します。他のポリシータイプでは独自の設定を定義します。詳細については、ポリシー リファレンスをご覧ください。