Function Appにリクエストクォータの上限値を設定する
Function Appにデプロイしている関数にHTTPリクエストをトリガーとしているものがあるため、 念のためリクエストクォータの上限値を設定することにしました。
この設定を行うと、1日あたりのリソースの使用量が設定値に到達すると関数が自動的に停止するようになります。 設定するリソースの使用量は、Function Appの利用料金を計算した際に使った値を使用しました。
Function Appの課金対象となる要素はリソースの使用量と実行回数になります。 ただし、400,000GB秒のリソース使用量と1,000,000回の実行回数をAzureが無料提供してくれているので、 実際の使用量からこの無料提供分の値を引いたものが請求対象となります。 とりあえず今回は実行回数1,000,000回を基準に設定することにしました。
対象となる関数の平均実行時間は1.564秒、リソースの使用量は128MBになるので、計算するとリソースの使用量は195,500GB秒になります。 リソース使用量は無料提供分の400,000GB秒以内で収まるので課金対象とならないはずです。
- リソースの使用量(秒):1,000,000(回) * 1.564(秒) = 1,564,000(秒) - リソースの使用量(GB):128MB / 1024MB = 0.125GB - リソースの使用量(GB秒):1,564,000(秒) * 0.125(GB) = 195,500(GB秒)
リソースの使用量を195,500(GB秒)とすると、1ヶ月31日として1日あたり6,306.45(GB秒)を上限にできます。
この値をFunction Appの設定にある「日ごとの使用量クォータ (GB - 秒) 」の項目に入力し「クォータの設定」ボタンをクリックすることで上限値の設定が完了します。 (対象としている関数は別に停止しても問題なく、実際のリソースの使用量は月1,000GB秒程度あれば運用できるものなので深く考えず設定しています。)
試しに適当な値を日ごとの使用量クォータに入力して関数を呼んでみると403エラーが返ってきました。
コンソール上でも関数が停止していることが確認できます。
停止した関数は手動で起動するか、日本時間の朝9時になると起動するようです。