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] をクリックします。

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

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

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

フローに接続せずにポリシーを追加する

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

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

フローに接続されていないポリシーの場合、[Policies] リストでは「接続解除」アイコンで示されます。これは、上の図の API key message ポリシーの横に表示されています。

ポリシーを作成したら、[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> 要素値を変更することで実行できます。ポリシー構成の詳細については、「Policy Reference」を参照してください。

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

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

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