タイトル通り。Azure Functions の Event Hubs の出力バインディングでデータ送信する際に、一貫性を持たせたい(イベントの順序を維持したい)場合、ドキュメントにあるやり方だと無理なのでちょっと調べました。
続きを読むTips
Visual Studio 2022 の IntelliCode の入力候補の適用キーを変えたい
Visual Studio 2022のIntelliCodeですが、バージョン上がるたびに学習度合いも良くなったのか結構いい入力候補の提案をしてくれるようになりました。
さてそんな便利な機能ですが、唯一の難点は候補を反映するのがTabキーなのですよね。
さらさらとコード書いててインデントするのにTab打とうとしたらIntelliCodeの候補が出てて同意からの反映されてしまってぐぬぬ、みたいなのは誰しも経験があることではないでしょうか?
そんなIntelliCodeをオフにしてイライラ避けたいけどメリットもあるしなぁ、という方に朗報。任意のキーにすることはできませんが、Tabキーから右矢印キーに変更することは可能です。
ツール → オプションのIntelliCodeの詳細で「右矢印の行全体の入力候補を適用する」にチェックすればOKです。
これでTabキーじゃなくて右矢印キーになりました。
任意のキーにはできないけど、まぁこれで多少使い勝手がよくなるなら。。
参考
Microsoft Graph Explorer でテナントを切り替える
Microsoft Graph API のちょっとしたテストができる Microsoft Graph Explorer というツール(Webサイト)があります。
REST APIを扱うクライアントコードを書かなくても実行できるので、とても便利なツールですが、実行ユーザーが複数のテナントに所属している場合、意図したテナントで実行できない場合があります。
何もサインインせずにGraph Explorerにアクセスするとサンプルデータなサンドボックス環境なので(それはそれで影響を与えずにテストできるから便利なのですけど)、自テナントのデータを見たいとかになるとサインインするわけですが、サインイン時やサインイン後にGraph Explorer上でテナントを切り替えることができません。既定のテナントが操作したいテナントでない場合、大変困ってしまいます。
が、実はUI上はまだ無いみたいですがURL直指定だとテナント指定できます。
上記のURLのようにテナントID(IDでないとダメ)を指定してからサインインするとそのテナントになります。
面倒くさいという人はソースがPublicリポジトリにあるので、Cloneして自前で展開して設定したりするといいですよ。
おまけ
永遠のPreviewっぽいAzure Resource Explorer も、もしテナント切り替えがうまくいかない場合とかあればURLで以下のようにテナントIDを指定すると切り替えられます。
Readmeだと一覧が見れたりするっぽいんですけどね。(というかもともとテナント一覧表示されて切り替えられてたんですけど、動かなくなってるので)
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です。
- Azure Functions Core Tools 4 – Microsoft.Azure.WebJobs.Extensions.Http: Could not load file or assembly ‘System.Net.Http.Formatting, Version=5.2.8.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35’ #3115
- Value cannot be null. (Parameter ‘provider’) #3139
なんだか釈然としませんが、対処方法としては以下のようにします。
- Microsoft .NET SDK を再インストールする。
- Azure Functions Core Tools の最新をインストール(再インストール)する。
一時的な問題だと思いますが、、(たまにこの手の問題に遭遇する)
Azure AD テナントを削除するときにエンタープライズアプリケーションが削除できない
Azure ADテナント(Azure AD B2Cを含む)を削除するときにはいろいろ手順を踏まないといけませんが、その中でも面倒なのが Microsoftのファーストパーティーアプリケーション(Microsoft First Party Application) とかいうやつです。
テナント削除時は登録したユーザーやアプリケーションなど関連リソースは全部消してからでないとテナント削除できませんが、このファーストパーティーアプリケーションは削除が無効化されてたりします。
ちゃんと(?)削除する場合は松村さんが書いてるPowerShellとかで削除するといいですが、もう削除しようとしているテナントの為にAzure PowerShell環境用意したり、Cloud Shellがんばったりするの面倒ですよね。
Microsoft ファーストパーティー以外のアプリは削除しておかないといけませんが、Microsoftファーストパーティーのアプリはサインインさえできなくなっていれば実は問題ない感じです。
というわけで「ユーザーのサインインが有効になっていますか?」を「いいえ」にして保存すれば無理に削除しなくてもテナント削除できる可能性があります。

という感じで削除したい場合に試してみてください。
続きを読むWindows 11 で背景画像をモニター/デスクトップ毎に変えたい
コントロールパネル時代はできたモニター毎にデスクトップの壁紙を変えるやつをWindows 11でする話です。
Microsoft Edge のページ内検索で関連する結果を含めないようにする
Microsoft Edgeでページ内検索にて関連する結果も含める機能(Office製品みたいな)が増えました。(正式版は来年予定らしい。Devチャンネルなどではもう実装されている)
入力文字に一致していなくても関連しているならマッチするという感じです。
便利そうですが今のところ個人的には超絶使いにくい(Ctrl+Fでキーワード入力、Enterでバシバシ次を探すみたいなのがもっさりorちゃんと動作しない)のでオフにしてしまいました。
edge://flags/#edge-related-matches-for-find-on-page
でDisableにするだけで以前の動作にもどります。
※「結果を含める」設定をページ検索のダイアログ内でオフにしたら状態をずっと維持してくれたらいいんですけどね。毎回オンになるので。。
Azure Active Directory breaking change impacting Azure CLI and Azure PowerShell の件
Azure ToolsのBlogで以下のタイトルの記事があがっています。
- Azure Active Directory breaking change impacting Azure CLI and Azure PowerShell – Microsoft Tech Community
- Values of identifierUris property must use a verified domain of the organization or its subdomain エラーの対処法 | Japan Azure Identity Support Blog (サポートチームの人が解説記事あげてくれています)
10月15日以降、記載されているバージョンより古いAzure CLI/Azure PowerShellでAzure ADにService Principalを作ろうとするとエラーになるようです。
エラーの原因ですが、こちらのAzure ADの更新に対応していないためです。
Azure Functions の Event Hubs Trigger とオフセット
Azure FunctionsでEvent Hubsトリガー使ってデータ処理したりするケースはよくあると思いますが、すでに稼働しててバンバンデータが流れるEvent Hubsに新しくFunctionsで処理を追加したい、とかのケースでそのままだと初回起動時にえらいことになります(よね?)。※ パーティション内に保持されてるデータを最初から読み出そうとするので
だいたいそういうケースだとこれまでのデータを処理する必要はないのでパーティション内の最後のデータから処理を開始したりしたいわけですが、トリガー単位ではこの辺りを制御できません。代わりにFunctions全体で挙動を指定できるようにはなってるのでそちらで行います。(トリガーとしては無理だけどイベントプロセッサホストとしては指定可能ということです)
続きを読むAzure Functions でログレベルを設定する
Azure Functionsで標準的に出力されるログのレベルはhost.jsonファイルで構成できます。
まぁいいんですがローカルでの開発時やCI/CD考えるとhost.jsonそのまま編集したりソース管理したりすると環境によって変えたい時とか不便ですよね。
特にRun From Packageとかでデプロイしてるとhost.jsonは読み取り専用になるし。