AzurePaaS研究サイト

AzurePaaS研究サイト

~理解しずらい情報をシンプルにお伝えします~

【5分でわかる】AppServiceとFunctions(関数アプリ)の違い

最終更新日.2021/ 9/ 6

AppServiceとFunctions(関数アプリ)の違い

 
まずは、AppService(アップサービス)とFunctions(ファンクション)がそれぞれどういうものかを説明します。
 
まずAppServiceとFunctionsの共通点としては、以下の画像のように外部からアクセスされて、Azureサーバ上でアプリケーションが実行されるというのが基本的な動作です。
f:id:nanacy7741:20220112025013p:plain

   
● AppServiceは、画面があるWebアプリケーションに適してます。
 (公式ドキュメント
● Function(関数アプリ)は、画面がないWebAPIやバッチ処理に適してます。
 (公式ドキュメント
 

スケールアップ・スケールアウト・プログラムコードのデプロイ方法などの仕組みに、違いはありません。
後述しますが、違いがあるのはアプリケーションが実行されるきっかけと、Azureの料金プラン(料金プランの違いに伴い、Azureサーバ上の動作も変わるのでここは重要)による違いがあるくらいです。
 
 
 
それでは、それぞれ説明していきましょう。
 

AppServiceとは

 

AppServiceアプリケーション実行までの流れ

1.AppServiceを作る(このとき、言語やリージョンを選択する)
2.実装したプログラムコードをデプロイする
3.AppServiceアプリケーションが実行する
 

Azure上のリソースの作り方

これは、AppServiceに限った話ではないですが、
「1.AppService」のようなAzure上のリソースの作り方は複数あるので、思いつく限りにあげてみますね。
 
・ AzurePortal画面で作る(公式ドキュメント
・ cloudshellで作る(公式ドキュメント
・ CLIコマンドで作る(公式ドキュメント
・ ARMtempleteで作る(公式ドキュメント
・ Terraformで作る (公式ドキュメント

 

Functions(関数アプリ)とは

 
Functionsと関数は同じものを指しているわけではないので、以下を見てそれぞれどういう関係なのかをご理解いただければと思います。

f:id:nanacy7741:20210627225210p:plain

  ー Functions(関数アプリ)の名前が、UserDataApp
  ー 関数-1の名前が、AddUserHttpTrigger
  ー 関数-2の名前が、GetAllUserTimerTrigger
  ということになり、Functionsが親で、関数が子の関係になります。
 
プログラムコードをもっていて実行されるアプリケーションは、関数-1・関数-2で、Functionsは関数の土台というイメージです。
 

関数のトリガーについて(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(関数アプリ)の中に複数の関数を作れます。  
 

AzureFunctions を覚えるならやっぱりこの本

 
 
AppServiceとFunctions(関数アプリ)と関数の違いがわかったでしょうか ♪
 


AppServiceとFunctions(関数アプリ)の料金プランを理解することも、とても重要なのでこちらの記事も見ていただけたらと思います。
www.azureportal-site.com

以上です。
 

ご意見・ご要望はこちらへ