演習 - API 要求をスロットリングする

完了

API Management では、ポリシーを使用してスロットリング (レート制限) を実装します。

あなたの政府機関では、大量の要求など、API の誤用を防ぐ必要があることを思い出してください。

このユニットでは、Census API を呼び出せる頻度に制限を設定する方法について説明します。 この例では、制限はすべての Census API エンドポイントにグローバルに適用されます。

レート制限ポリシーを適用する

API Management 内でスロットリング ポリシーを適用するには、次の手順のようにします。

  1. 前の演習で使用したものと同じアカウントを使用して、Azure portal にサインインします。

  2. Azure portal メニューで、または [ホーム] ページから、[すべてのリソース] を選択した後に、API Management インスタンスを選択します。

  3. 左側のメニュー ペインの [API] で、[API] を選択し、中央のペインで、[Census Data] を選択します。

  4. 上部のメニュー バーで、[デザイン] タブを選択し、[すべての操作] を選択します。

  5. [受信処理] セクションで、</> アイコンを選択します。 XML ポリシー エディターが表示されます。

    Screenshot of the Design tab with the Policies icon highlighted in the Inbound processing section.

  6. <inbound> 要素全体を次のコードに置き換えます。

    <inbound>
        <rate-limit calls="3" renewal-period="15" />
        <base />
    </inbound>
    
  7. [保存] を選択します。

ポリシー ファイルには 3 つのポリシーがすべて含まれている必要があり、次のコードのようになります。

<policies>
    <inbound>
        <rate-limit calls="3" renewal-period="15" />
        <base />
    </inbound>
    <backend>
        <base />
    </backend>
    <outbound>
        <set-header name="x-powered-by" exists-action="delete" />
        <redirect-content-urls />
        <base />
    </outbound>
    <on-error>
        <base />
    </on-error>
</policies>

注意

各セクション内のポリシーの順序は、この例においては重要ではありません。

ポリシーをテストする

次に、スロットリング ポリシーが動作しているかどうかを確認しましょう。

  1. [Census Data] を再度選択し、上部のメニュー バーで、[テスト] タブを選択します。

  2. [GetLatestCensus] 操作を選択し、[送信] を連続して 3 回選択します。

  3. 3 回目に要求を送信すると、429 エラー (要求が多すぎます) 応答が返されます。

    Screenshot of an HTTP response showing a 429 Too Many Requests error.