関数アプリケーションの実行のされ方
Functionsはユーザがデプロイしたプログラムファイルがストレージアカウントに配置されます。関数アプリケーションが実行する際は、そのストレージアカウントから取得してきてインスタンス上で関数アプリケーションが実行されます。通常のデプロイは、プログラムファイルや設定ファイルが開発した通り(構成フォルダ通り)にAzureサーバ上に配置されるのですが、kuduサイトなどから簡単にいじれてしまって意図しない変更をされてしまうとアプリケーションの動作に支障が出ます。
あと、Zipファイルをデプロイにした方がアプリケーション起動も早くなると公式ドキュメントに書かれています。
Zipデプロイ
Zipデプロイのメリット
・Zipファイルだけになるので、プログラムファイルのリソース管理が簡単になる
・kuduサイトなどからファイルの部分変更などができなくなる(ルール通りのデプロイを強制できる)
・AppService/Functionsのアプリケーションをインスタンス上に起動する時間が早くなる
Functions のログ
Azure Functions でご利用いただけるログ機能について記載します。
関数アプリケーションのログをAzure側に出力~確認
下記3箇所にログファイルが出力されますが、出力される条件としては Functions に関数を作成およびその関数アプリケーションを実行すると、Azure 側でログを出力されます。関数アプリケーションでのログへの書き込み方法は、プログラム言語ごとに説明が書いてあるので、以下ページを確認ください。
公式ドキュメント
ログへの書き込み
そして、出力されたログ確認は下記3箇所できます。
(3箇所とも同じ内容が出力されます。)
Azureポータル(関数のモニター)画面で確認
● 該当 Functions > [関数]関数 > <<関数名>> [Developer]モニター > ログタブ
Kuduサイト(LogFilesフォルダ)で確認
● 該当 Functions > [開発ツール]高度なツール > 移動 > Debug console タブ > CMD > LogFiles > Application > Functions > Function > <<関数名>> フォルダ
ストレージアカウント(ファイル共有)で確認
● 該当 ストレージアカウントの ファイル共有 > LogFiles > Application > Functions > function > <<関数名>> フォルダ
ストレージアカウントのリソース名がわからなければ、ここで確認できます。
診断設定の活用
上記で説明した3箇所で、関数アプリケーションのログやメトリック画面にメトリック情報は出力されます。これらの情報をAnalyticsワークスペース等に転送し、クエリ検索をしたり複数のAppService/Functions等のリソースのログを統合的に調査・監視したい場合は、以下をご利用ください。
公式ドキュメント
AzureMonitorログを使用したAzureFunctionsの監視
===== 抜粋 ここから =====
Azure Monitor Logs を使うと、同じワークスペース内の異なるリソースのログを統合できます。また、それをクエリを使って分析し、収集したデータをすばやく取得、統合、分析できます。
===== 抜粋 ここまで =====
AzureMonitorのApplicationInsightsの活用
こちらを有効設定すると、上記で紹介してきたログ情報とはまた別に、アプリケーションに関するAzureサーバ側の稼働状況に関する情報が取得できます。例えば、ASP.NET の場合はCPU・メモリ・I/Oの使用状況などが Azure 側で自動で収集されます。
公式ドキュメント
AzureAppServiceのアプリケーションの監視の概要
以上です。