2017/08/19 時点の自分用メモです。 詳細は、ドキュメントを確認してください。 https://docs.microsoft.com/ja-jp/azure/azure-functions/
Azure Functions では作成時にプランを選べます。選べるプランは2つ。
- 従量課金プラン
- App Service プラン
従量課金プラン
勝手にスケールしてくれるし、最低限のコストしかかからないみたいですね。 放置してても、負荷に応じてよしなにしてくれる。
従量課金プランの制限事項
関数の実行期間は最大で10分みたいです。
これも、デフォルト値は5分でhost.json
のfunctionTimeout
で指定しないと10分まで伸びないみたいですね。
BlobTriggerをつかってると10分くらい遅延することがあるみたいです。嫌だったらQueueTriggerとか使ってねってことらしい。
App Service プラン
普通のWebAppとかと同じ考えっぽい。 要は自分で指定したスペックの上のマシンで動く。
常時接続を有効にしておく(確かBasic以上から使えるんでしたっけ?)と、継続的に実行することもできるみたい。というか常時接続をONにしておかないと、App Serviceが暇になると寝ちゃうみたいで起こすにはHttpTriggerじゃないとダメということになるみたいですね。
QueueTriggerとか動かなくなるんでしょうね。怖い。
注意点
先にも書いた通り常時接続を有効にしてサーバーが寝ないようにしましょう。
node.js を使う場合は、シングルコアを使いましょう(マルチコアにしても性能上がらないみたいですね)。性能上げたいときはインスタンス数を増やしましょう。
まとめ
10分以上動かすか動かさないかってところが一番大きなインパクトなのかなぁ?