かずきのBlog@hatena

日本マイクロソフトに勤めています。XAML + C#の組み合わせをメインに、たまにASP.NETやJavaなどの.NET系以外のことも書いています。掲載内容は個人の見解であり、所属する企業を代表するものではありません。

Azure Functions のプランによる違いメモ

2017/08/19 時点の自分用メモです。
詳細は、ドキュメントを確認してください。

https://docs.microsoft.com/ja-jp/azure/azure-functions/

Azure Functions では作成時にプランを選べます。選べるプランは2つ。

  • 従量課金プラン
  • App Service プラン

従量課金プラン

勝手にスケールしてくれるし、最低限のコストしかかからないみたいですね。 放置してても、負荷に応じてよしなにしてくれる。

従量課金プランの制限事項

関数の実行期間は最大で10分みたいです。

これも、デフォルト値は5分でhost.jsonfunctionTimeoutで指定しないと10分まで伸びないみたいですね。

BlobTriggerをつかってると10分くらい遅延することがあるみたいです。嫌だったらQueueTriggerとか使ってねってことらしい。

App Service プラン

普通のWebAppとかと同じ考えっぽい。 要は自分で指定したスペックの上のマシンで動く。

常時接続を有効にしておく(確かBasic以上から使えるんでしたっけ?)と、継続的に実行することもできるみたい。というか常時接続をONにしておかないと、App Serviceが暇になると寝ちゃうみたいで起こすにはHttpTriggerじゃないとダメということになるみたいですね。

QueueTriggerとか動かなくなるんでしょうね。怖い。

注意点

先にも書いた通り常時接続を有効にしてサーバーが寝ないようにしましょう。

node.js を使う場合は、シングルコアを使いましょう(マルチコアにしても性能上がらないみたいですね)。性能上げたいときはインスタンス数を増やしましょう。

まとめ

10分以上動かすか動かさないかってところが一番大きなインパクトなのかなぁ?