任意のテキスト エディタ、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 の代わりに適用する設定を定義します。他のポリシータイプでは独自の設定を定義します。詳細については、ポリシー リファレンスをご覧ください。