Flex Gateway新着情報
Governance新着情報
Monitoring API Managerこの手順では、ポリシーを設定して API に適用します。必要に応じて SLA 層をセットアップできます。 この手順では、ポリシーを設定して適用する方法を説明します (例: レート制限 SLA ベースのポリシー)。
アプリケーションの SLA レベルに応じてアプリケーションから API へのコールを 3 要求または 5 要求に制限する、次のようなアクセス層を作成します。
要求を 3 回/分に制限する層。承認を必要としない。
要求を 5 回/分に制限する層。API にアクセスするアプリケーションの API バージョンオーナーの承認を必要とする。
この手順では、アクセスを 1 つの API リソースに制限します。その他のリソースへのアクセスは無制限です。アプリケーションが保護されたリソースをコンシュームしようとすると、ポリシーが適用されます。要求には、期待されるユーザー名とパスワードが含まれている必要があります。アプリケーションから API への SLA 制限内で繰り返されるコールは成功しますが、それ以外は失敗します。
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 (リソース一致をプレビュー)] をクリックして、検索条件が適用されるリソースを確認します。