Azure Functionsをローカル環境でテストする際にAzureWebJobsStorageがなくてエラーになる時の対処方
なんの記事か
$ func start
を実行した結果
Missing value for AzureWebJobsStorage in local.settings.json. This is required for all triggers other than httptrigger, kafkatrigger. You can run 'func azure functionapp fetch-app-settings <functionAppName>' or specify a connection string in local.settings.json.
となった場合の対処方法
なんのエラーか
httptriggerとkafkatrigger以外のAzureFunctionsは、動作するためににAzureStorageが必要なので、使用できるAzureStorageが無いとエラーになる。
対応方法
対応方法は大きくわけて2種類
- Azure上に本物のStorageを作る
- ローカル環境でStorageを動かす
ここでは、2の方法を説明します。
どうせなら全部ローカルで動かしたいので。
DockerでAzure Storageを動かそう
ローカルでStorageを動かすには、たぶんdockerを使うのが楽です。
$ docker run -p 10000:10000 -p 10001:10001 mcr.microsoft.com/azure-storage/azurite
FunctionsからローカルのStorageを参照するように設定しよう
local.settings.json
のAzureWebJobsStorage
を下記のように設定しよう
{
"IsEncrypted": false,
"Values": {
"AzureWebJobsStorage": "UseDevelopmentStorage=true",
"FUNCTIONS_WORKER_RUNTIME": "node"
}
}
動かそう
$ func start