UI でのポリシーの接続と構成

このページは ApigeeApigee ハイブリッドに適用されます。

Apigee Edge ドキュメントを表示する

ポリシーベースの機能を API プロキシに追加する場合は、次の 2 段階で作業を行います。

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

下の図は、ポリシーとフローの関係を示しています。ご覧のように、ポリシーは処理のステップとしてフローに接続されます。API の目的の動作を構成するには、フローについて少し理解する必要があります(このトピックについては、上記のフローの構成で説明しています)。

ポリシーとフローの関係

よく使用されるポリシータイプの 1 つに、SpikeArrest ポリシーがあります。SpikeArrest は、バックエンド サービスのパフォーマンス低下を引き起こすメッセージ トラフィックの急増を防止します。

フローにポリシーを接続する

新しいプロキシ エディタ

ポリシーをフローに接続するには:

  1. API プロキシを選択し、[Develop] ビューに移動します。
  2. 左側のペインで、[Policies] 行の [+] ボタンをクリックします。
  3. [Create policy] ダイアログで、[Select policy type] フィールドをクリックし、[Traffic Management] まで下にスクロールし、[SpikeArrest] を選択します。

  4. 必要に応じて、表示名名前を変更できます。

    [Create policy] ダイアログ。

    完了したら、[Create] をクリックしてポリシーを作成します。

  5. 以上で Spike Arrest ポリシーが作成されたので、それを PreFlow のステップに接続できます。これを行うには、左側のペインで [Proxy Endpoints] > [default] > [PreFlow] を選択します。

    プロキシ エディタで PreFlow のターゲット エンドポイントを選択します。

  6. ビジュアル エディタの右下にある [Response] ペインの [PreFlow] の横にある [+] ボタンをクリックします。

    [Response] ペインの [PreFlow] の横にある [+] ボタンをクリックします。

  7. [Add policy step] ダイアログで、[Spike Arrest] ポリシーを選択します。
  8. [Add] をクリックしてポリシーを接続します。

    Spike Arrest ポリシーが [Response] ペインに表示されます。

    [Response] ペインに表示される Spike Arrest ポリシー。

    プロキシの次の XML コードがテキスト エディタに表示されます。

    <ProxyEndpoint name="default">
      <PreFlow name="PreFlow">
        <Request/>
        <Response>
          <Step><
            <Name>SA-</Name>
          </Step>
        </Response>
      </PreFlow>
      <Flows/>
      <PostFlow name="PostFlow">
        <Request/>
        <Response/>
      </PostFlow>
      <HTTPProxyConnection>
        <BasePath>/myproxy</BasePath>
      </HTTPProxyConnection>
      <RouteRule name="default">
        <TargetEndpoint>default</TargetEndpoint>
      </RouteRule>
    </ProxyEndpoint>
      

フローからのポリシーの接続解除

フローからポリシーを接続解除するには、フローの横にあるその他メニューをクリックし、[Delete policy step] を選択します。

従来バージョンのプロキシ エディタ

ポリシーをフローに接続するには:

  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] リストにポリシーが表示されます。[Designer] ビューの下に、新しく接続されたポリシーの XML を表示する [Code] ビューが表示されます。Apigee は、適切なデフォルト値のセットを含むポリシーのインスタンスを生成します。

デザイナー ビューとコードビュー内の PreFlow のポリシー

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

フローに接続せずにポリシーを追加すると、障害の処理は容易になります。この操作を行うには、[Navigator] ビューの [Policies] バーにある [+] をクリックして、[Add Policy] ダイアログを開き、ポリシーを追加します(前のセクションのステップ 4~6 を参照)。

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

フローに接続されていないポリシーの場合、前の図のように、API キーメッセージ ポリシーの横にある [Policies] リストに接続解除アイコンが表示されます。

ポリシーを作成したら、[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 に反映されます。

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