ポリシーと SLA 層の適用方法

この手順では、ポリシーを設定して 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 を次のように編集します。

  1. ルートレベルに ​traits:​ というセクションを追加し、クエリパラメータを定義します。

    traits:
      - client-id-required:
          queryParameters:
           client_id:
            type: string
          client_secret:
            type: string
  2. 各メソッドの trait を参照し、各メソッドに次のクエリパラメータが必要であることを指定します。RAML ファイル内の各メソッドの後に、​is: [client-id-required]​ を追加します。次に例を示します。

    /users:
      get:
        is: [client-id-required]
        description: Gets a list of JSONPlaceholder users.

層の追加方法

  1. API Manager の [API Administration (API 管理)] で、バージョンをクリックします。

  2. API がリソースレベルのポリシーをサポートすることを確認します。API バージョンの詳細ページの [Status (状況)] で [Configure Endpoint (エンドポイントの設定)] をクリックし、[Type (タイプ)] が RAML であることを確認します。

  3. [SLA Tiers (SLA 層)] を選択し、[Add SLA Tier (SLA 層を追加)] をクリックします。次のように層に制限をセットアップします。

    • Name (名前): Free (無料)

    • Approval (承認): Automatic (自動)

    • 制限

      • # of Reqs (要求数): 3

      • Time Period (期間): 1

      • Time Unit (時間単位): Minute (分)

  4. [Add SLA Tier (SLA 層を追加)] を再度クリックし、次のように層に制限をセットアップします。

    • Name (名前): Premium (プレミアム)

    • Approval (承認): Manual (手動)

    • 制限

      • # of Reqs (要求数): 5

      • Time Period (期間): 1

      • Time Unit (時間単位): Minute (分)

ポリシーの適用方法

この手順では、上記のとおり SLA 層を追加し終わったところか、API Manager > [API Administration (API 管理)] に移動したことを前提とします。後者の場合は、API インスタンスをクリックし、次の手順に従ってポリシーを適用します。

  1. [Policies (ポリシー)] を選択します。

  2. [Apply New Policy (新規ポリシーを適用)] をクリックし、[Select Policy (ポリシーを選択)] で [Rate Limiting - SLA-based policy (レート制限 - SLA ベースのポリシー)] を選択して [Configure (設定)] をクリックします。または、[Rate Limiting (レート制限)] > [Configure Policy (ポリシーを設定)] を選択します。

  3. [Limits (制限)] で、要求数、期間、測定単位を設定します。

  4. 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 (適用)] をクリックします。

      rlp conditions

      API に RAML 仕様が添付されている場合、[Preview Resource Matching (リソース一致をプレビュー)] をクリックして、検索条件が適用されるリソースを確認します。

Was this article helpful?

💙 Thanks for your feedback!