API Management

Azure API Managementで流量制限を設定してみた

Azure API Managementでは、一定時間内に一定回数以上のアクセスが来たときにHTTP 429(Too Many Requests)を返却するような、流量制限を設定することができる。

今回は、Azure Portal上でをAzure API Managementの流量制限を設定してみたので、その手順を共有する。

前提条件

下記記事の実装が完了していること。

Azure FunctionsをAzure API Management経由で呼び出してみたこれまでは、Azure App ServiceからAzure Functionsを直接呼び出していたが、Azure API Manage...

やってみたこと

  1. 流量制限の設定
  2. 流量制限設定後の動作確認
  3. 流量制限の削除

流量制限の設定

流量制限の設定は、Azure Portal上で実行できる。その手順は、以下の通り。

1) Azure Portalにログインし、作成済のAPI Managementを選択する。
流量制限の設定_1

2) 作成済のAzure API Managementの概要画面が表示されるため、「API」メニューを押下する。
流量制限の設定_2

3) 「All APIs」で「azureFuncDemoApp」を選択し、「Inbound processing」の「Add policy」ボタンを押下する。
流量制限の設定_3

4) 「Add inbound policy」メニューから「Limit call rate」を選択する。
流量制限の設定_4

5) 流量制限を設定するための、以下の画面が表示が表示される。
流量制限の設定_5

6) 以下のように、300秒(5分)以内に2回呼び出しまで許可する設定を追加し、「Save」ボタンを押下する。
流量制限の設定_6_1

なお、「Counter key」「Increment condition」は、それぞれ以下の項目を指定できる。
流量制限の設定_6_2

7) 設定の保存が完了すると、以下のように、右上に完了メッセージが表示されることが確認できる。ここで「rate-limit-by-key」を選択すると、設定内容を再確認できる。
流量制限の設定_7

8) 流量制限の設定内容は、以下のようにXML形式で設定されていることが確認できる。
流量制限の設定_8

なお、上記設定内容についての詳細は、以下のサイトを参照のこと。
https://docs.microsoft.com/ja-jp/azure/api-management/api-management-access-restriction-policies#LimitCallRateByKey



流量制限設定後の動作確認

流量制限設定後の動作確認結果は以下の通りで、流量制限の設定内容が反映されていることが確認できる。

1) Azure App ServiceのURL「https://azureappdemoservice.azurewebsites.net/」とアクセスすると以下の画面が表示されるため、「ファンクション呼び出し」ボタンを押下する。
流量制限設定後の動作確認結果_1_1

なお、上記URLは、下記Azure App ServiceのURLから確認できる。
流量制限設定後の動作確認結果_1_2

2) callFunctionApi関数が呼び出され、以下の画面に遷移する。その後「戻る」ボタンを押下する。
流量制限設定後の動作確認結果_2

3) 以下のように、初期表示画面に戻ることが確認できる。ここで再度「ファンクション呼び出し」ボタンを押下する。
流量制限設定後の動作確認結果_3

4) 遷移先画面に再度に遷移するので、「戻る」ボタンを押下する。
流量制限設定後の動作確認結果_4

5) 初期表示画面に再度戻るので、「ファンクション呼び出し」ボタンを押下する。
流量制限設定後の動作確認結果_5

6) 流量制限エラーとなり、以下のエラー画面に遷移することが確認できる。
流量制限設定後の動作確認結果_6

なお、@ExceptionHandlerアノテーションでException例外をキャッチするメソッドがある場合は、実装方法が異なる。その内容については、以下の記事を参照のこと。

Azure API Managementで流量制限するプログラム内で例外をキャッチしてみた以前、Azure API Managementで、一定時間内に一定回数以上のアクセスが来たときにHTTP 429(Too Many Re...



流量制限の削除

流量制限の削除も、Azure Portal上で実行できる。その手順は、以下の通り。

1) 作成済のAzure API ManagementのAPIを開き、「rate-limit-by-key」のメニューから「Delete」を選択する。
流量制限の解除_1

2) 画面下方に削除確認のボタンが表示されるため、「Save」ボタンを押下する。
流量制限の解除_2

3) 削除が完了すると、以下のように、右上に完了メッセージが表示されることが確認できる。
流量制限の解除_3

要点まとめ

  • Azure API Managementでは、Azure Portal上で、一定時間内に一定回数以上のアクセスが来たときにHTTP 429(Too Many Requests)を返却するような、流量制限を設定できる。