Azure Function Appをローカル環境でデバッグするための環境作成。
まずRunファンクション定義を変更し、デバッグ直後にファンションが起動するようにする。
RunOnStartup = trueを追加することで、デバッグ開始直後にファンクションが起動する。
public static void Run([TimerTrigger("0 */1 * * * *", RunOnStartup = true)] TimerInfo myTimer, ILogger log)
この状態では、AzureWebJobsStorage環境がないため、おそらく「The listener for function was unable to start. Microsoft.Azure.Storage.Common: Connection refuse」のようなエラーメッセージが表示される。
local.settings.json内のAzureWebJobsStorage部分を下記のよう変更する。
{
"IsEncrypted": false,
"Values": {
"AzureWebJobsStorage": "UseDevelopmentStorage=true;DevelopmentStorageProxyUri=http://127.0.0.1",
"FUNCTIONS_WORKER_RUNTIME": "dotnet"
}
}
また、ローカル環境内に開発用のAzure Storageのエミュレータをインストールする。
インストール方法は、こちらのマイクロサイトの情報を参照。
Macの場合は、このコマンドでインストールができる。
sudo npm install -g azurite
npm環境がない場合は、こちらからNodejsをダウンロード&インストールするとnpmが使えるようになる。
macの場合は、pkgをダウンロードし、インストールする。
ここまで設定すると、ローカル環境で、デバッグ開始できる。
Azuriteが起動していないときは、terminalを開いて、Azuriteと入力し、enterで実行される。