Azure Functions従量課金プランはデプロイスロットではスケールアウトしない

スロットに立てていたAzureFunctionのステージング環境でやたら処理が遅い・・・なんでや・・・
って思って調べたら、ポコポコ増えるはずのサーバインスタンスが全く増えていない!
色々と調べたところ、表題の結論に達しました。

環境

  • Azure Functions v1.X

公式ドキュメント

従量課金プランのスケールアウトの仕組み

公式ドキュメントに記載の通り、スケールコントローラなる黒魔術によってスケールアウトさせるかどうかの決定がなされるようです。
これの詳細な条件は調べた限り出て来ず、全くもって不明でした。

スケールアウトしているか確認する方法

このへんのUIは頻繁に変わるので2019年9月現在の状況ですが、関数メニューにある「監視」を押下した画面にある
「ライブ アプリ メトリック」から確認することができます。

(スロットではない)Production環境にあるFunctionを監視していると、大抵はCPU使用率が高騰したタイミングで新しいインスタンスが生成されている様子を確認することができます。
なのでバシバシCPUを使うコードを書くとどんどんスケールアウトして並列で処理してくれる。
しかしこれがスロットにデプロイしたFunctionだとどうもCPUが高騰したところでスケールアウトしてくれない様子。
どこかで設定をいじれるのかもしれませんが見つけれられませんでした。
スロットで動いてるか運用環境で動いてるかどうかがスケールコントローラの判定条件の一つになっているのではないかと思われます。

上側の赤丸が現在のサーバインスタンスの数、下側の赤丸が各サーバインスタンスのCPU使用率