製品内のプランの記述

IBM® API Connect 製品に組み込むプランと、そのプランに含まれる API、および適用されるレート制限を記述します。

このタスクについて

プランには、API および API 操作を含めます。 プランは、レート制限を実装したり、可視性を調整したりするために使用できます。

注: ゲートウェイ・サービスで複数の DataPower® サーバーを使用している場合、レート制限の API 呼び出しを適切に計算するには、ネットワーク構成に応じて、SLM ユニキャスト・ピアリングまたは SLM マルチキャスト・ピアリングのいずれかを使用して、サーバーが SLM ピア・グループを使用して相互に通信できる必要があります。 詳細については、 「SLM ピアリング」 を参照してください。

さらに、バースト制限をプランに適用して、インフラストラクチャーに損害を与える可能性がある使用量の急増を防ぐことができます。 プランごとに、複数のバースト制限を秒および分単位の時間間隔で設定できます。 また、プランごと、および操作ごとに、複数のバースト制限を秒、分、時間、日、および週単位の時間間隔で設定できます。

注: このトピックで指定するすべてのキーと列挙値では、大/小文字が区別されます。

このトピックの最後に製品の YAML 表記のプランの記述例があります。 商品の完全なYAML表現の例は、 商品のYAML表現の例にあります。

手順

プランを記述し、API をプランに組み込み、プランまたは特定の操作に対してレート制限を設定するには、以下の手順を実行します。
  1. plans:を使用して「計画」セクションを開始します。
  2. plans の下で、最初のプランの記述を開始します。このためには、名前、説明を指定し、サブスクリプション要求に承認が必要かどうかを指定します。以下の構文を使用します。
    plans:
      Plan_Name:
        title: Plan_Title
        description: Plan_Description
        approval: Approval_Toggle
    ここで、それぞれ以下のとおりです。
    • Plan_Name はプランの名前です。 単一の語にして、英数字、ダッシュ (-) 文字、およびアンダースコアー (_) 文字のみを含めてください。 この名前には大/小文字の区別があり、 API Manager のユーザー・インターフェースに表示できるように 20 文字以下にする必要があります。
    • Plan_Title は、 Plan.Any ストリングのタイトルですが、 API Manager ユーザー・インターフェースに表示できるように、タイトルを短くしておく必要があります。
    • Plan_Description は、プランの説明です。
    • Approval_Toggle は、true (サブスクリプション要求に承認が必要) または false (サブスクリプションを自動的に承認) のいずれかにしてください。
  3. オプション: プラン内で、そのプラン内のすべての操作で共有される複数のバースト制限およびレート制限を追加します。以下の構文を使用してください:
    注: API Connectでのレート制限およびバースト制限について詳しくは、 API およびプランのレート制限についてを参照してください。
        rate-limits:
          Name:
            value: Rate_Limit
            hard-limit: Limit_Toggle
          Name:
            value: Rate_Limit
            hard-limit: Limit_Toggle
        burst-limits:
          Name:
            value: Burst_Limit
    ここで、それぞれ以下のとおりです。
    • 「名前」 は制限の名前です。
    • Rate_Limit は、レート制限です。 秒数、分数、時間数、日数、または週数の倍数を指定できます (それぞれ secondminutehourday、および week として記述します。これらの語の複数形は使用しないでください)。 次の構文を使用します。1/2minute。 時間単位を単数にする場合、その前に数字を指定する必要はありません (例: 1/minute)。 レート制限を適用しない場合は、Rate_Limitunlimited として設定します。
    • Limit_Toggletrue または falseでなければなりません。 true の場合、レート制限を超えると、開発者による API 呼び出しが失敗します。 Rate_Limitunlimited に設定している場合、このステップは不要です。
    • Burst_Limit は、バースト制限です。 秒数または分数の倍数を指定できます (second または minute として記述します。これらの語の複数形は使用しないでください)。
    注:
    • プラン・レベルでレート制限を適用すると、そのプラン内のすべての操作で共有されるデフォルトのレート制限が作成されます。 特定の操作に特定のレート制限を設定する必要がある場合は、それらを操作自体の中で設定する必要あります。これらの設定はプラン・レベルでの設定をオーバーライドします。
    • テストするカタログの自動サブスクリプションを有効にしてある場合、API Manager テスト・ツールで使用されるテスト・アプリケーションにはレート制限が適用されません。 詳しくは、カタログの処理を参照してください。
  4. plans の下に、組み込む API を指定します。

    以下のように、名前とバージョンで API を参照します。

        apis:
          API_1_nameAPI_1_version: {}
          API_2_nameAPI_2_version: {}
    ここで
    • API_n_name 変数は、API の名前であり、大/小文字が区別されます。
    • API_n_version 変数は、API のバージョンです。
  5. オプション: APIの操作の一部のみを含めたい場合は、含める操作を列挙してください。以下の構文を使用します:
        apis:
          API_nameAPI_version:
            operations:
              - operation: Operation_1_Verb
                path: Operation_1_Path
              - operation: Operation_2_Verb
                path: Operation_2_Path
    
    ここで
    • Operation_n_Path 変数は、組み込む操作のパスです。 新規操作ごとにダッシュが必要です。
    • Operation_n_Verb 変数は、操作に対応する REST verb です。
  6. オプション: 1つの操作に対して複数のレート制限を指定する場合は、次の構文を使用してください:
        apis:
          API_nameAPI_version:
            operations:
              - operation: Operation_Verb
                path: Operation_Path
                rate-limits:
                  Name:
                    value: Operation_Limit
                    hard-limit: Operation_Limit_Toggle
                  Name:
                    value: Operation_Limit
                    hard-limit: Operation_Limit_Toggle
    ここで、それぞれ以下のとおりです。
    • Operation_Limit は、操作に適用するレート制限です。 秒数、分数、時間数、日数、または週数の倍数を指定できます (それぞれ secondminutehourday、および week として記述します。これらの語の複数形は使用しないでください)。 次の構文を使用します。1/2minute。 時間単位を単数にする場合、その前に数字を指定する必要はありません (例: 1/minute)。 レート制限を適用しない場合は、Operation_Limitunlimited として設定します。
    • Operation_Limit_Toggletrue または falseでなければなりません。 true の場合、レート制限を超えると、開発者による API 呼び出しが失敗します。 Operation_Limitunlimited に設定している場合、このステップは不要です。

結果

これで、製品に組み込むプランの記述が完了しました。 Plans セクションは、以下のシナリオのようになっている必要があります。

プランに対してレート制限を適用する一方で、操作を個別に指定していない場合、プラン・セクションは以下の形式になります。

plans:
  Plan_Name:
    title: Plan_Title
    description: Plan_Description
    approval: Approval_Toggle
    rate-limits:
      Name:
        value: Limit
        hard-limit: Limit_Toggle
    apis:
      API_1_nameAPI_1_version: {}
      API_2_nameAPI_2_version: {}
プラン・レベルでレート制限を強制していて、2 つの操作を含め、各操作に 1 つの別個のレート制限を使用する場合、Plans セクションの形式は以下のようになっている必要があります。
plans:
  Plan_Name:
    title: Plan_Title
    description: Plan_Description
    approval: Approval_Toggle
    rate-limits:
      Name:
        value: API_Limit
        hard-limit: API_Limit_Toggle
    burst-limits:
      Name:
        value: Burst_limit
    apis:
      API_nameAPI_version:
        operations:
          - operation: Operation_1_Verb
            path: Operation_1_Path
            rate-limits:
              Name:
                value: Operation_Limit
                hard-limit: Operation_Limit_Toggle
          - operation: Operation_2_Verb
            path: Operation_2_Path

どちらの例でも、変数は上記ステップで説明したとおりです。また、インデントは例示されているとおりに設定してください。

以下の例では、完全なサンプル Plans セクションを示します。
plans:
  default:
    title: Default Plan
    description: Default Plan
    approval: false
    rate-limits:
      default:
        value: 100/hour
        hard-limit: false
  my-plan:
    title: my_plan
    rate-limits:
      Default rate-limit:
        value: 50/1hour
        hard-limit: false
    burst-limits:
      Default burst-limit:
        value: 10/1second
    apis:
      api21.0.0:
        operations:
          - operation: get
            path: /path2
      api31.0.0:
        operations:
          - operation: get
            path: /path3
            rate-limits:
              limit3:
                value: 10/1second
                hard-limit: true
              limit4:
                value: 100/1hour
                hard-limit: true
      api11.0.0: {}