Microsoft.Azure.WebJobs.Extensions.Http でエラーになってFunctionsが起動しない

Azure Functions v4の .NET なプロジェクトでNuGetパッケージ更新したりしたら以下のエラーがでて実行できない場合があります。

A host error has occurred during startup operation 'xxxxxxx-xxxx-xxxxx-xxxx-xxxxxxxxx'.
Microsoft.Azure.WebJobs.Extensions.Http: Could not load file or assembly 'System.Net.Http.Formatting, Version=5.2.8.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35'. 指定されたファイルが見つかりません。.
Value cannot be null. (Parameter 'provider')

特定バージョンだけな気がしますが、該当しそうなのは以下のIssueです。

なんだか釈然としませんが、対処方法としては以下のようにします。

  1. Microsoft .NET SDK を再インストールする。
  2. Azure Functions Core Tools の最新をインストール(再インストール)する。

一時的な問題だと思いますが、、(たまにこの手の問題に遭遇する)

Microsoft.Azure.WebJobs.Extensions.EventHubs を 5.x にする

.NET 6.0 もリリースされて Azure Functions Runtime v4 もでたということで手元のアレコレをアップデートしてたのですが、IoT HubトリガーやEvent Hubsトリガーで使う Microsoft.Azure.WebJobs.Extensions.EventHubs 5.0.0 が出ていたのでついでに更新することにしたのですが、少し手直しが必要になったのでメモしておきます。
(現状、Visual StudioでIoT HubトリガーなFunctionsを追加すると 4.3.0 が使われるので更新すると同じことをしないといけないはず)

続きを読む

Azure Functions でログレベルを設定する

Azure Functionsで標準的に出力されるログのレベルはhost.jsonファイルで構成できます。

まぁいいんですがローカルでの開発時やCI/CD考えるとhost.jsonそのまま編集したりソース管理したりすると環境によって変えたい時とか不便ですよね。
特にRun From Packageとかでデプロイしてるとhost.jsonは読み取り専用になるし。

続きを読む

Azure Active Directory B2C を使って WebとAPIを保護するTips

ちょっと必要に駆られたのでメモ書きです。Azure App Service(Web Apps/Functions)には通称EasyAuth(Authentication/Authorization)という便利な機能がありますが、今のところ簡単に設定できるのはAzure ADやTwitterなどのソーシャル系のみです。
このPostではEasyAuthでAzure ADではなくAzure AD B2Cを指定して、かつフロントエンドのWeb Appsと裏側のAPIとなるFunctionsをそれぞれ保護するためのTipsを纏めておきます。

続きを読む

Azure Functions などのログが文字化けする

なんかAzure Functionsに .NET CoreなFunction Appをデプロイするとログが文字化けしてまして。

結論から言うと、Visual Studioの新規プロジェクトなどからFunction Appで追加される .csファイルがUTF-8じゃないのが原因でした。

続きを読む

Visual Studio 2019 (16.2.2)なAzure Functionsでローカルデバッグできない (解決)

Visual Studio 2019 (16.2.2)でAzure Functionsのローカルデバッグ時にブレイクポイントに止まらない(デバッグできない)現象があったらしい。

続きを読む

Azure FunctionsでAzure上のRBACを触ったりMS Graph APIを呼んだりする

RBACで割り当てられたロールと対象者のメアドを取得したいみたいな話があったので。

詳細は分かりませんけど、コード書きのリハビリにざっと作ってみました。特に深く考えずダラダラ書いたので綺麗ではないです。

続きを読む