Menu Close

8.7.11. 3scale Product カスタムリソースでのポリシーチェーンの設定

3scale の管理者は、Product カスタムリソースを設定して、その API プロダクトに適用するポリシーチェーンを指定できます。CR をデプロイした後、3scale は設定されたポリシーをプロダクトのアップストリームで公開される API のリクエストに適用します。

手順

  1. 新規またはデプロイされた Product CR で、policies オブジェクトに 1 つ以上のポリシーを設定します。以下は例になります。

      apiVersion: capabilities.3scale.net/v1beta1
      kind: Product
      metadata:
        name: product1
      spec:
        name: "OperatedProduct 1"
        policies:
        - configuration:
            http_proxy: http://example.com
            https_proxy: https://example.com
          enabled: true
          name: camel
          version: builtin
        - configuration: {}
          enabled: true
          name: apicast
          version: builtin

    各ポリシーに、以下のフィールドを指定します。

    • ポリシーにパラメーターがない場合、configuration は空の中かっこのペアです。ポリシーにパラメーターがある場合は、ここで指定します。指定する必要のあるパラメーターの名前については、Administering the API Gateway, APIcast standard policies の関連するポリシーのドキュメントを参照してください。
    • enabled は、ポリシーをオンまたはオフにするブール値のスイッチです。
    • name はポリシーを識別します。これは、Product カスタムリソースがリンクするテナントの範囲にある一意の名前です。ポリシー名を特定するには、Administering the API Gateway, APIcast standard policies の関連するポリシーのドキュメントを参照してください。
    • version は、標準ポリシーの場合は builtin で、カスタムポリシーの場合はユーザー定義の文字列です。たとえば、カスタムポリシーのバージョンを 1.0 に設定できます。

      Product CR に apicast ポリシーを指定しないと、operator がこれを追加します。

      ポリシーチェーンがすでに管理ポータルに定義されている場合は、3scale toolbox の export コマンドを実行してポリシーチェーンを .yaml 形式でエクスポートできます。export 出力を Product CR に貼り付けできます。たとえば、api-provider-account-one は3scale プロバイダーアカウントの名前で、my-api-product-one はポリシーチェーンをエクスポートするプロダクトの名前である場合、以下のコマンドを実行します。

    3scale policies export api-provider-account-one my-api-product-one
  2. ポリシーチェーンが含まれる Product CR をデプロイします。たとえば、product1.yaml ファイルを更新した場合は、以下のコマンドを実行します。

    oc create -f product1.yaml

    この例では、以下のような出力になります。

    product.capabilities.3scale.net/product1 created