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 Services は、リクエスト / レスポンス フローを処理している通常のプールから隔離されたスレッドプールでポリシーを実行します。これは内部で行われる最適化で、API デベロッパーが行うことはまずありません。
  • name: このポリシーの名前。この名前はポリシー インスタンスに対して一意で、処理ステップとしてポリシーをフローに追加する場合に使用します。

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