AppServiceとFunctions(関数アプリ)の違い
まずは、AppServiceとFunctionsがそれぞれどういうものかを説明します。
● AppService は、画面がある Web アプリケーションに適してます。
(公式ドキュメント)
● Functions(関数アプリ)は、画面がない WebAPI や バッチ処理に適してます。
(公式ドキュメント)
スケールアップ・スケールアウト・プログラムコードのデプロイ方法などの仕組みに、違いはありません。
後述しますが、違いがあるのはアプリケーションが実行されるきっかけと、Azure の料金プラン(料金プランの違いに伴い、Azure サーバ上の動作も変わるのでここは重要)による違いがあるくらいです。
それでは、それぞれ説明していきましょう。
AppServiceとは
AppServiceアプリケーション実行までの流れ
1.AppServiceを作る(このとき、言語やリージョンを選択する)
2.実装したプログラムコードをデプロイする
3.AppServiceアプリケーションが実行する
Azure上のリソースの作り方
これは、AppServiceに限った話ではないですが、
「1.AppService」のようなAzure上のリソースの作り方は複数あるので、思いつく限りにあげてみますね。
・ Azure Portal 画面で作る(公式ドキュメント)
・ cloud shell で作る(公式ドキュメント)
・ CLI コマンドで作る(公式ドキュメント)
・ ARM templete で作る(公式ドキュメント)
・ Terraform で作る (公式ドキュメント)
Functions(関数アプリ)とは
Functions の Functions(関数アプリ)と 関数 は別ですので、それぞれどういう関係なのかは以下を読んでいただければと思います。
ー Functions(関数アプリ)の名前が、UserDataApp
ー 関数-1 の名前が、AddUserHttpTrigger
ー 関数-2 の名前が、GetAllUserTimerTrigger
ということになります。
関数のトリガーについて(AppService との違い)
Functionsの中に関数を作成していくのですが、そのときにいずれかのトリガーを選択します。
すると、関数は選択したトリガーがきっかけで、関数アプリケーションが実行されます。
選べるトリガーの種類(一部)
Functions | トリガー種類 |
---|---|
Http トリガー | 該当の URL をHTTP通信で呼ばれたら実行される |
Timer トリガー | 1時間ごと、のようにスケジューラ通りに実行される |
Blob トリガー | Blob データに変更があったら実行される ※ずっと監視してくれます |
など (2021.06.27現在で、18個もありました 笑)
関数アプリケーション実行までの流れ
1.Functions(関数アプリ)を作る (このとき、言語やリージョンを選択する)
2.Functions(関数アプリ)の中に関数を作る(このとき、トリガーを選択する)
3.実装したプログラムコードを関数に対してデプロイする
4.設定したトリガーが動作すると関数アプリケーションが実行する
「1.Functions(関数アプリ)を作る」「2.Functions(関数アプリ)の中に関数を作る」といった感じで、階層構造になることを覚えておいてください。
ひとつの Functions(関数アプリ)の中に複数の関数を作れます。
AppService と Functions(関数アプリ)と 関数 の違いがわかったでしょうか ♪
以上です。