Send Docs Feedback

Note: Most user interface tasks can be performed in Edge Classic or the New Edge experience. For an overview, getting started topics, and release notes specific to the New Edge experience, see the docs.

XML ファイルでのポリシーの添付と構成

お気に入りのテキストエディタ、XML 対応エディタ、または IDE を使用して、ポリシーを ローカルに作成し、編集することができます。このトピックでは、ポリシーの作成、構成、添付、展開、テストを行う方法の例として、Quota ポリシータイプを使用します。

ほとんどの API プロキシはクォータを強制します。Quota では、クライアントアプリが所定の時間内に 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 スキーマからポリシーを生成したりできます。すべてのポリシーには、ポリシータイプに固有な設定もあれば、すべてのポリシーにわたって共通の設定もあります。参照用として、ポリシースキーマは、GitHub の API プラットフォームサンプルで提供されています。

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

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

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

name を除いて、これらのポリシー属性のデフォルト設定はほとんど変更する必要がありません。このような理由により、これら設定は多くの場合、実際にはドキュメントのポリシーサンプルから除外されています。

上記の例で、AllowIntervalTimeUnitは Quota ポリシーに固有な要素です。これらの要素は、API サービスが API のために強制する設定を提供します。その他のポリシータイプでは独自の設定が定義されています。これらの内容については、「Policy Reference」で確認できます。

Help or comments?