製品内のプランの記述
IBM® API Connect 製品に組み込むプランと、そのプランに含まれる API、および適用されるレート制限を記述します。
このタスクについて
プランには、API および API 操作を含めます。 プランは、レート制限を実装したり、可視性を調整したりするために使用できます。
注: ゲートウェイ・サービスで複数の DataPower® サーバーを使用している場合、レート制限の API 呼び出しを適切に計算するには、ネットワーク構成に応じて、SLM ユニキャスト・ピアリングまたは SLM マルチキャスト・ピアリングのいずれかを使用して、サーバーが SLM ピア・グループを使用して相互に通信できる必要があります。 詳細については、 「SLM ピアリング」 を参照してください。
さらに、バースト制限をプランに適用して、インフラストラクチャーに損害を与える可能性がある使用量の急増を防ぐことができます。 プランごとに、複数のバースト制限を秒および分単位の時間間隔で設定できます。 また、プランごと、および操作ごとに、複数のバースト制限を秒、分、時間、日、および週単位の時間間隔で設定できます。
注: このトピックで指定するすべてのキーと列挙値では、大/小文字が区別されます。
このトピックの最後に製品の YAML 表記のプランの記述例があります。 商品の完全なYAML表現の例は、 商品のYAML表現の例にあります。
手順
プランを記述し、API をプランに組み込み、プランまたは特定の操作に対してレート制限を設定するには、以下の手順を実行します。
結果
これで、製品に組み込むプランの記述が完了しました。 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: {}