雲のメモ帳

猫とクラウドと旅行が好きなインフラエンジニアです。 日々の調べたことや興味が持ったことをこのブログにアウトプットします。

Azure FunctionsがNuGetエラーで実行失敗した場合の対処方法

これはなに?

VSCodeからEvents HubsトリガーのAzure Functionsを作成した際に、Functionsが実行できなかったのでその対処方法について記載します。

エラー内容

Functionsを実行した際に以下のようなNuGetエラーとなり、実行に失敗する。

ExtensionStartupType EventHubsWebJobsStartup from assembly 'Microsoft.Azure.WebJobs.EventHubs, Version=4.X.X.X, Culture=neutral, PublicKeyToken=XXXXXXX' does not meet the required minimum version of 4.X.X.X. Update your NuGet package reference for Microsoft.Azure.WebJobs.Extensions.EventHubs to 4.X.0 or later.

原因

以下のIssueにも書いてあるのですが、FunctionsがV4になった際に拡張機能の最小バージョンが更新されたらしい。VSCodeでデフォルトで生成されるバージョンが最小バージョンよりも低いためエラーとなる。

Functions V4 - Require a minimum version for supported extensions · Issue #1987 · Azure/Azure-Functions · GitHub

対処方法

Functionsの設定ファイルであるhost.jsonの"Microsoft.Azure.Functions.ExtensionBundle"のVersionを更新する。

  "extensionBundle": {
    "id": "Microsoft.Azure.Functions.ExtensionBundle",
    "version": "[3.3.0, 4.0.0)"

f:id:ykoomaru:20220224231230p:plain

V4の最小バージョンは以下を確認してみてください。 f:id:ykoomaru:20220224231305p:plain Functions V4 - Require a minimum version for supported extensions · Issue #1987 · Azure/Azure-Functions · GitHub

最後に

このエラー解消するのに小一時間かかってしまったので、同じ問題でつまずいている方のご参考になれば幸いです。