Failed to verify “AzureWebJobsStorage” connection specified in “local.settings.json”. Is the local emulator installed and running? の対処法

この記事は約3分で読めます。

はじめに:Azure Functions のタイマートリガーでローカルデバッグするとエラーでデバッグできない

Azure Functionsのタイマートリガーをローカルでデバッグしようとすると、画像のようなワーニングメッセージが表示されます。

ワーニングメッセージ

Failed to verify “AzureWebJobsStorage” connection specified in “local.settings.json”. Is the local emulator installed and running?

「local.settings.jsonで設定したAzureWebJobsStorageがインストールされ実行されていますか?」とのこと。

ワーニングなので、Debug anyway(とにかくデバッグという意らしい)を押して続行しても良いのですが、結局実行時にエラーとなりデバッグすることができません。

The listener for function 'Functions.TimerTrigger' was unable to start. Azure.Core: Retry failed after 6 tries. Retry settings can be adjusted in ClientOptions.Retry. (対象のコンピューターによって拒否
されたため、接続できませんでした。) (対象のコンピューターによって拒否されたため、接続できませんでした。) (対象のコンピューターによって拒否されたため、接続できませんでした。) (対象のコンピューターによって拒否されたため、接続でき
ませんでした。) (対象のコンピューターによって拒否されたため、接続できませんでした。) (対象のコンピューターによって拒否されたため、接続できませんでした。). Azure.Core: 対象のコンピューターによって拒否されたため、接続できませんで
した。. System.Net.Http: 対象のコンピューターによって拒否されたため、接続できませんでした。. System.Private.CoreLib: 対象のコンピューターによって拒否されたため、接続できませんでした。.

解決策:Azuriteを実行する

デバッグ実行する前に「Azurite」を実行します。

タイマートリガーのAzure Functionsを実行するには、Azure Storageにアクセスする必要があります。

完全にローカルでAzure Functionsのデバッグする場合、ローカルでAzure Storageのエミュレーターを起動する必要があるのですが、デバッグ実行するときにエミュレーターが起動していないので、警告を出していたようです。

本質的には「対象のコンピューターによって拒否されたため、接続できませんでした。」のエラーメッセージが、「ローカルの Azure Storage にアクセスできませんでした。」の意味のようです。

Azuriteの起動方法は開発ツールによって異なり、マイクロソフト公式ドキュメントに記載があるので割愛します。

ローカルでの Azure Storage の開発に Azurite エミュレーターを使用する

補足:開発環境情報

ちなみに私は以下の環境で動作しました。

  • Windows 10
  • Visual Studio Code 1.62.1
  • [拡張機能]Azure Functions v1.6.0
  • [拡張機能]Azurite v3.14.3

コメント

タイトルとURLをコピーしました