カスタムポリシーの適用

カスタムポリシーの適用は、​内部ポリシー​と同じように適用します。

カスタムポリシーを適用する場合、設定パラメーターは ​definition/gcl.yaml​ で定義されます。

構成パラメーターの定義の詳細については、policy-pdk-create-schema-definition.adocを参照してください。

始める前に

接続モードでのポリシーの適用

接続モードでカスタムポリシーを適用すると、​gcl.yaml​ で定義された設定パラメーターとメタデータが API Manager UI に表示されます。

接続モードでカスタムポリシーを適用するには、Applying Policies for Managed Flex Gateways and Connected Modeを参照してください。

接続モードでのポリシーの更新

API Manager でカスタムポリシーを適用する手順は、次のとおりです

  1. [Anypoint Platform] > [API Manager]​ に移動します。

  2. [API Administration (API 管理)]​ で、ポリシーを適用する API の名前をクリックします。

  3. 左側のナビゲーションメニューから、​[Policies (ポリシー)]​ をクリックします。

  4. 更新するポリシーのその他のオプションボタン (​1%​) をクリックし、​[Edit configuration (設定を編集)]​ をクリックします。

  5. [Policy version (ポリシーバージョン)]​ 設定パラメーターで​最新​バージョンを選択します。

  6. [Save (保存)]​ をクリックします。

  7. 更新するポリシーのその他のオプションボタン (​1%​) をクリックし、​[Check for implementation updates (実装の更新を確認)]​ をクリックします。

    実装の更新の詳細は、​「ポリシー実装を更新する」​を参照してください。

  8. 確認用のダイアログボックスで ​[Update all (すべて更新)]​ をクリックします。

ローカルモードでのポリシーの適用

ローカルモードで実行されている Flex Gateway では、​ローカルの宣言型設定ファイル​を使用してカスタムポリシーを適用します。最初に Flex Gateway を実行するときに、この設定ファイルの場所を指定します。

ローカル宣言ファイルを作成する手順は、次のとおりです。

  1. target/wasm32-wasi/release​ の PDK ディレクトリに、次の 2 つのファイルをコピーします。

    • <your_custom_policy>_definition.yaml

    • <your_custom_policy>_implementation.yaml

  2. この 2 つのファイルを ​/etc/mulesoft/flex-gateway/conf.d/​ Flex Gateway 設定ディレクトリに貼り付けます。

  3. ポリシーを API インスタンスにバインドするために、​.yaml​ というファイル拡張子を持つポリシーバインディング設定ファイルを作成します。

    • ファイルにカスタム名を付けます。

    • ファイルを Flex Gateway の設定ディレクトリ ​/etc/mulesoft/flex-gateway/conf.d/custom​ に保存します。このディレクトリには複数の設定ファイルを保存できます。

  4. 次の YAML スニペットをコピーしてファイルに貼り付け、必要な箇所を適切な値に変更します。

    apiVersion: gateway.mulesoft.com/v1alpha1
    kind: PolicyBinding
    metadata:
      name: <custom-policy-id>
    spec:
      targetRef:
        kind: ApiInstance
        name: <your-api-instance>
      policyRef:
        kind: Extension
        name: <your_custom_policy>-<version>-impl
      config:
        <custom-cofiguration-parameters>: "your parameter"
    • Metadata.name:​: カスタムポリシーインスタンス名。

    • spec.targetRef.name​: カスタムポリシーを適用する API インスタンスの名前。API インスタンスはすでに定義済みで、適用されている必要があります。

    • spec.policyRef.name​: カスタムポリシーの実装 ID。ポリシー ID を取得するには、ポリシーのルートディレクトリで ​make show-policy-ref-name​ コマンドを実行します。

    • spec.config​: ポリシーの設定データ。

  5. ファイルを保存します。ゲートウェイによって設定が自動的に更新されます。

ローカルモードでのポリシーの更新

ローカルモードで Flex Gateway のカスタムポリシーを更新する手順は、次のとおりです。

  • 設定パラメーターを編集していない場合は、Flex Gateway 設定ディレクトリの古い ​<your_custom_policy>_implementation.yaml​ を ​target/wasm32-wasi/release​ PDK ディレクトリの実装ファイルに置き換えます。

  • 設定パラメーターを編集した場合は、​ローカルモードでのポリシーの適用​の手順を繰り返して設定パラメーターを更新します。

カスタムポリシーの並び替え

カスタムポリシーの並び替えは、内部ポリシーと同じように行います。

ポリシーを並び替えるには、Ordering Policiesを参照してください。

ポリシーは、要求では順序どおりに、応答では逆の順序で実行されます。ただし、要求と応答のどちらでも実行されないポリシーもあります。

たとえば、次の順序で並んでいるポリシーがあるとします。

  1. ポリシー X

  2. ポリシー Y

要求ではポリシー X、ポリシー Y の順に実行され、応答ではポリシー Y、ポリシー X の順に実行されます。