自分がこれまで使った組み合わせについて簡単に記載
注:以下は、App Service Environment (ASE) を使用しない、通常の環境を想定しています
- インターネットへのアクセス
- 特に問題なし
- ファイル
- 特に問題なし。App Service で実行する Web Apps などと同様の使い方になる (Functions が App Service 上に構築されているため)。
- 注意点としては、下記
- ファイル保存場所として、永続ファイル用ディスクと一時ファイル用ディスクの 2 種類存在する。使い分けは、それぞれ名前の通り。一時ファイル用ディスクはインスタンス再起動時等に初期状態に戻ってしまうため、注意が必要
- プログラムからは通常のファイル操作と同じ方法で操作でき、意識する必要はないが、ファイルの保存先は Azure Storage が使用される
- Functions の仕様上、複数インスタンス (別プロセス) が同じ場所を使用する可能性があるので、その場合は排他などについて考慮が必要と思われる (詳細未検証。要動作確認)。実行インスタンスが単一で済んでいる場合は、同一 Function App 内の関数は同一プロセス上で実行されている様子 (動作を見る限りは)
- メール
- O365 Exchange Online や SendGrid (サードパーティ) などが使用可能。【参考】Azure 上にメールサーバー/SMTP サーバーを構築する場合の注意事項
- SQL DB
- 特に問題なし。
- Entity Framework
- 考慮事項はあるが、使用可能。(考慮事項は別途記載予定)
- PowerShell
- ランタイムバージョンが決まっているので、その点だけ注意。現時点ではバージョン 4 で動作する
- Azure PowerShell
- 実行環境に既定でインストールされているバージョンが 1.4 と非常に古いので、恐らくこのモジュールについては古すぎて使えない
- 使用したいバージョンのファイル一式をアップロードし、アップロードしたモジュールを明示的にロードして使用可能 。【参考】Question: Azure Powershell Scripts in a Function #294
- Application Insights
- 問題なし。インストルメンテーション キーを環境変数に設定するだけで連携可能