XML ファイルでのポリシーの接続と構成

任意のテキスト エディタ、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 スキーマからポリシーを生成できます。どのポリシーにも、ポリシータイプに固有な設定もあれば、すべてのポリシーで共通の設定もあります。

管理 UI でポリシーを接続すると、API プロキシ ビルダーがそのポリシータイプのインスタンスを XML スキーマから生成します。ポリシー構成で要素が表示されることがありますが、その要素が常にドキュメントで説明されているとは限りません。

すべてのポリシーで次の属性が定義されています。

  • enabled: ポリシーの状態("on" または "off")を表します。この設定を変更して、ランタイムにポリシーを有効または無効にできます。enabledfalse に設定されているポリシーは適用されません。
  • continueOnError: ポリシーの失敗時に、パイプラインでメッセージの処理を続行するかどうかを定義します。Quota ポリシーを適用すると、割り当て超過を通知するエラーが発生する可能性があります。その場合は、この属性を false に設定する必要があります。
  • async: ポリシーで async=true を有効にすると、リクエスト / レスポンスフローにサービスを提供している通常のプールとは分離して、異なるスレッドプール内でポリシーを実行するように API サービスに命令します。これは内部で行われる最適化で、API デベロッパーが行うことはまずありません。
  • name: このポリシーに付ける名前。この名前はポリシー インスタンスに対して一意で、処理ステップとしてポリシーをフローに接続する場合に使用します。

上記の例で、AllowIntervalTimeUnit は Quota ポリシーに固有な要素です。これらの要素では、API Services が API の代わりに適用する設定を定義します。他のポリシータイプでは独自の設定を定義します。詳細については、ポリシー リファレンスをご覧ください。