UI でのポリシーの添付と構成

ポリシーベースの機能を API プロキシに追加するには、次の 2 つの手順に従います。

  1. ポリシータイプのインスタンスを構成する。
  2. ポリシー インスタンスをフローに添付する。

以下の図では、ポリシーとフローの関係を示します。この図に示すように、ポリシーは処理の「ステップ」としてフローに添付されます。API の適切な動作を構成するには、フローについて少し理解する必要があります。(このトピックについては、前述のフローの構成で説明しています。)

ポリシーとフローの関係

一般的に使用されているポリシータイプの 1 つに SpikeArrest があります。SpikeArrest は、バックエンド サービスのパフォーマンス低下の原因になるメッセージ トラフィックの急増を防止します。

フローへのポリシーの添付

ポリシーをフローに添付するには:

  1. API プロキシを選択して [Develop] ビューに移動します。
  2. API プロキシ エディタの [Navigation] ペインで、ポリシーを添付するフローを選択します。
    たとえば、次の図ではデフォルトの API プロキシ エンドポイント用に PreFlow フローが選択されています。
    ポリシーを添付するフローを選択します
  3. [Design] ビューで、ポリシーを添付するリクエスト フローまたはレスポンス フローに関連付けられている [+Step] をクリックします。次に例を示します。
    [+Step] をクリックします
    [Add Step] ダイアログが開き、カテゴリ別のポリシーリストが表示されます。
    カテゴリのポリシーリスト
  4. スクロールし、選択されたフローに添付するポリシーのタイプを選択します。
  5. 次のフィールドを変更します。
    • Display Name: ポリシーの一意の表示名。UI によりデフォルトの名前が生成されますが、内容がわかりやすい名前をポリシーに付けることをおすすめします。そうすることで、組織の他のデベロッパーが、ポリシーの目的を容易に理解できます。

    • Name: ポリシーの一意の名前。以下の点を除き、ポリシー名は表示名と一致します。

      • スペースはダッシュに置き換えられます。

      • 連続するダッシュは 1 つのダッシュに置き換えられます。

      • ダッシュ、アンダースコア、(前述のとおり置き換えられる)スペースを除く、英数字ではない文字(ポンド記号、パーセント記号、アンパサンドなど)は削除されます。

  6. [Add] をクリックします。

    選択されたフローにポリシーが添付されます。

添付されたポリシーは、フロー(この例ではデフォルトのプロキシ エンドポイントの Prefrow)の [Designer] ビューと、[Navigation] ペインの [Policies] リストに表示されます。[Designer] ビューの下の [Code] ビューには、新しく添付されたポリシーの XML が表示されます。Edge により、一連の適切なデフォルト値を含むポリシーのインスタンスが生成されます。

[Designer] ビューまたは [Code] ビューでの PreFlow 内のポリシー

フローに添付せずにポリシーを追加する

ポリシーをフローに添付せずに追加するには(障害を処理する際にはこれが便利です)、[Navigator] ビューの [Policies] バーにある [+] をクリックして、[Add Policy] ダイアログを開き、ポリシーを追加します(前述のセクションのステップ 4 から 6)。

[+] をクリックして、ポリシーを追加します

フローに添付されないポリシーの場合、[Policies] リストでは「添付解除」アイコンで示されます。これは、前の図の API キーメッセージ ポリシーの横に表示されています。

ポリシーを作成した後、それをフローに添付できます。添付するには、[Policies] リストから [Designer] ビューの該当するフローにポリシーをドラッグ&ドロップ します。

フローからのポリシーの添付解除

フローからポリシーを添付解除するには、そのフローを選択します。フローの [Designer] ビューでポリシーのアイコンにマウスカーソルを合わせます。アイコンに表示される丸い X をクリックします。

ポリシー インスタンスの削除

ポリシー インスタンスを削除するには、[Navigator] ビューでポリシーのエントリにマウスカーソルを合わせます。エントリの右側に表示される丸い X アイコンをクリックします。

UI でのポリシーの構成

この UI で生成されるポリシー インスタンスでは、一般的な設定に適切なデフォルト値が適用されます。要件に応じてこれらの設定を変更する必要が生じることがあります。

次に例を示します。
    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <SpikeArrest async="false" continueOnError="false" enabled="true" name="spikearrest-1">
      <DisplayName>SpikeArrest-1</DisplayName>
      <FaultRules/>
      <Properties/>
      <Identifier ref="request.header.some-header-name"/>
      <MessageWeight ref="request.header.weight"/>
      <Rate>30ps</Rate>
    </SpikeArrest>
    

ポリシーを構成するには、[Code] ビューで XML 構成を直接編集できます。たとえば、Spike Arrest ポリシーのピーク メッセージ レートは当初 1 秒あたり 30 メッセージに設定されています。このピークレートを変更するには、ポリシーの XML で <Rate> 要素の値を変更します。ポリシー構成の詳細については、ポリシー リファレンスをご覧ください。

また [Code] ビューでは、ポリシーの切り取りと貼り付けを実行できます。GitHub で入手可能なサンプルのポリシーを再利用するには、これが便利な方法です。

[Code] ビューでポリシーを変更すると、その変更は [Property Inspector] に反映されます。またこの逆も同様です。[Property Inspector] で行った変更は、[Code] ビューの XML に反映されます。

このトピックで使用する割り当てポリシーに関するドキュメントについては、割り当てポリシーをご覧ください。