この手順では、ポリシーを設定して API に適用します。必要に応じて SLA 層をセットアップできます。 この手順では、ポリシーを設定して適用する方法を説明します (例: レート制限 SLA ベースのポリシー)。
SLA 層について
アプリケーションの SLA レベルに応じてアプリケーションから API へのコールを 3 要求または 5 要求に制限する、次のようなアクセス層を作成します。
-
要求を 3 回/分に制限する層。承認を必要としない。
-
要求を 5 回/分に制限する層。API にアクセスするアプリケーションの API バージョンオーナーの承認を必要とする。
この手順では、アクセスを 1 つの API リソースに制限します。その他のリソースへのアクセスは無制限です。アプリケーションが保護されたリソースをコンシュームしようとすると、ポリシーが適用されます。要求には、期待されるユーザー名とパスワードが含まれている必要があります。アプリケーションから API への SLA 制限内で繰り返されるコールは成功しますが、それ以外は失敗します。
必要な RAML スニペットの追加方法
API のタイプが RAML なのか HTTP なのかを確認します (不明な場合)。API バージョンの詳細ページの [Status (状況)] で [Configure Endpoint (エンドポイントの設定)] をクリックし、[Type (タイプ)] が RAML であることを確認します。
SLA ベースのレート制限やその他の特定のポリシーを使用する場合は、RAML API に特定の RAML スニペットを追加する必要があります。API インスタンスの適用済みポリシーのリストに、ポリシーに必要な RAML スニペットへのリンクが表示されます。
レート制限ポリシーはクライアント ID ベースなので、クライアント ID とシークレットをクエリパラメーターとしてセットアップします。ポリシーを適用するための traits (特性) を RAML に追加します。RAML を次のように編集します。
-
ルートレベルに
traits: というセクションを追加し、クエリパラメーターを定義します。traits: - client-id-required: queryParameters: client_id: type: string client_secret: type: string -
各メソッドの trait を参照し、各メソッドに次のクエリパラメーターが必要であることを指定します。RAML ファイル内の各メソッドの後に、
is: [client-id-required] を追加します。次に例を示します。/users: get: is: [client-id-required] description: Gets a list of JSONPlaceholder users.
層の追加方法
-
API Manager の [API Administration (API 管理)] で、バージョンをクリックします。
-
API がリソースレベルのポリシーをサポートすることを確認します。API バージョンの詳細ページの [Status (状況)] で [Configure Endpoint (エンドポイントの設定)] をクリックし、[Type (タイプ)] が RAML であることを確認します。
-
[SLA Tiers (SLA 層)] を選択し、[Add SLA Tier (SLA 層を追加)] をクリックします。次のように層に制限をセットアップします。
-
Name (名前): Free (無料)
-
Approval (承認): Automatic (自動)
-
制限
-
# of Reqs (要求数): 3
-
Time Period (期間): 1
-
Time Unit (時間単位): Minute (分)
-
-
-
[Add SLA Tier (SLA 層を追加)] を再度クリックし、次のように層に制限をセットアップします。
-
Name (名前): Premium (プレミアム)
-
Approval (承認): Manual (手動)
-
制限
-
# of Reqs (要求数): 5
-
Time Period (期間): 1
-
Time Unit (時間単位): Minute (分)
-
-
ポリシーの適用方法
この手順では、上記のとおり SLA 層を追加し終わったところか、API Manager > [API Administration (API 管理)] に移動したことを前提とします。後者の場合は、API インスタンスをクリックし、次の手順に従ってポリシーを適用します。
-
[Policies (ポリシー)] を選択します。
-
[Apply New Policy (新規ポリシーを適用)] をクリックし、[Select Policy (ポリシーを選択)] で [Rate Limiting - SLA-based policy (レート制限 - SLA ベースのポリシー)] を選択して [Configure (設定)] をクリックします。または、[Rate Limiting (レート制限)] > [Configure Policy (ポリシーを設定)] を選択します。
-
[Limits (制限)] で、要求数、期間、測定単位を設定します。
-
API の
/users リソースでポリシーを設定します。-
[Method & Resource Conditions (メソッドとリソースの条件)] で、[Apply Configurations to Specific Methods & Resources (特定のメソッドとリソースに設定を適用)] を選択します。
-
[Method (メソッド)] で [GET] を選択します。
-
[URI Template Regex (URI テンプレート正規表現)] に
/users と入力して /users リソースのみにレート制限を適用するか、.* と入力して API のすべてのリソース URI にレート制限を適用します。 -
Mule 4 の場合は、[Expose Headers (ヘッダーを公開)] チェックボックスをオンにして、トークン適用およびレート制限ポリシーのヘッダー伝播を設定します。
-
[Apply (適用)] をクリックします。
API に RAML 仕様が添付されている場合、[Preview Resource Matching (リソース一致をプレビュー)] をクリックして、検索条件が適用されるリソースを確認します。
-