タイトル通り。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だと一覧が見れたりするっぽいんですけどね。(というかもともとテナント一覧表示されて切り替えられてたんですけど、動かなくなってるので)
Azure AD テナントを削除するときにエンタープライズアプリケーションが削除できない
Azure ADテナント(Azure AD B2Cを含む)を削除するときにはいろいろ手順を踏まないといけませんが、その中でも面倒なのが Microsoftのファーストパーティーアプリケーション(Microsoft First Party Application) とかいうやつです。
テナント削除時は登録したユーザーやアプリケーションなど関連リソースは全部消してからでないとテナント削除できませんが、このファーストパーティーアプリケーションは削除が無効化されてたりします。
ちゃんと(?)削除する場合は松村さんが書いてるPowerShellとかで削除するといいですが、もう削除しようとしているテナントの為にAzure PowerShell環境用意したり、Cloud Shellがんばったりするの面倒ですよね。
Microsoft ファーストパーティー以外のアプリは削除しておかないといけませんが、Microsoftファーストパーティーのアプリはサインインさえできなくなっていれば実は問題ない感じです。
というわけで「ユーザーのサインインが有効になっていますか?」を「いいえ」にして保存すれば無理に削除しなくてもテナント削除できる可能性があります。

という感じで削除したい場合に試してみてください。
続きを読むTerraformでWeb Appsにカスタムドメイン名を設定したい
TerraformでAzure App ServiceのWeb Appsにカスタムドメイン名(特にネイキッドドメイン)を設定したい場合、AレコードにIPアドレスを設定する必要がありますが、App Serviceの受信IPアドレスを簡単にとれません。
Azure Resource Manager(ARM)上は一応 inbound_ip_address があるんですけどTerraform上で扱えないんですよね。以前は無理やりoutbound_ip_address (送信IPアドレス)の最初の要素を使ったりしてましたが(受信IPアドレスが最初に入ってた)不確かで実際最近はそんなことはないのでうまく設定できない状況でした。
で、どうしたものか悩んでたら ‘web apps名’.azurewebsites.net を正引きしてIPアドレスを取得すれば確実、ということらしく hashicorp/dns で取得したIPアドレスを使えばいいようです。
resource "azurerm_linux_web_app" "example" { name = "example" resource_group_name = azurerm_resource_group.example.name location = azurerm_service_plan.example.location service_plan_id = azurerm_service_plan.example.id site_config {} } data "dns_a_record_set" "app_ip_address" { host = azurerm_linux_web_app.example.default_hostname } resource "azurerm_dns_a_record" "dns_a" { # ... target_resource_id = data.dns_a_record_set.app_ip_address.addrs[0] }
他にはTraffic ManagerのAzureリソースのエンドポイントでApp Serviceが使えたらそもそもこんな苦労しなくていいのに、とか思いますけど。。
たまにTerraform触るたびにいろいろ嵌りますね。
追記
しばやん氏からのタレコミによるとそもそもAzure REST API Specからしてinbound IP addressは欠落してるぽい。(resource Explorerとかで見るとちゃんとあるのでSpec側のミス)
- Missing readonly `inboundIpAddress` property from Microsoft.Web/sites type definitions · Issue #12974 · Azure/azure-rest-api-specs (github.com)
- azure-rest-api-specs/WebApps.json at main · Azure/azure-rest-api-specs (github.com)
APIの実装って大変ですね
Windows 11 で背景画像をモニター/デスクトップ毎に変えたい
コントロールパネル時代はできたモニター毎にデスクトップの壁紙を変えるやつをWindows 11でする話です。
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 Key Vault で自己署名なCA証明書を作りたい
表題の通り。AzureポータルやCLIなどから作ると自己署名な証明書は簡単に作れますが、CA証明書として必要なプロパティは設定できないようでした。具体的には X509v3 Basic Constraints の CAフラグがTRUEになった状態のものを簡単に作れないという感じです。
Azure Functions の Event Hubs Trigger とオフセット
Azure FunctionsでEvent Hubsトリガー使ってデータ処理したりするケースはよくあると思いますが、すでに稼働しててバンバンデータが流れるEvent Hubsに新しくFunctionsで処理を追加したい、とかのケースでそのままだと初回起動時にえらいことになります(よね?)。※ パーティション内に保持されてるデータを最初から読み出そうとするので
だいたいそういうケースだとこれまでのデータを処理する必要はないのでパーティション内の最後のデータから処理を開始したりしたいわけですが、トリガー単位ではこの辺りを制御できません。代わりにFunctions全体で挙動を指定できるようにはなってるのでそちらで行います。(トリガーとしては無理だけどイベントプロセッサホストとしては指定可能ということです)
続きを読むCloud Services (extended support) – Preview
Azureにおける最古参の部類のサービスであるCloud ServicesがついにClassic扱いになり、代わりにAzure Resource Manager(ARM)対応版の Cloud Services (extended support) のPreviewが始まりました。というわけでちょっと8年ぶりぐらいにCloud Servicesを触ってみたいと思います。