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は読み取り専用になるし。

続きを読む

TerraformでAzure Web AppsにKey Vault内の証明書を設定する

小ネタです。Terraformを使ってKey Vaultの証明書で管理されている証明書を使ってApp ServiceのWeb Appsに証明書を設定する方法です。

結論から先に書くと、Terraformのazurerm_app_service_certificateを使って証明書を設定しようとしても権限が無くて失敗します。(Terraformの実行ユーザーやService PrincipalにKey Vaultの証明書等の読み取りポリシーを設定したとしても)
で、回避先は一応提示されてて実行ユーザーではなくApp ServiceのService Principalに対して権限を付けてあげないとダメ、ということでした。(APIを呼ばれたApp ServiceがKey Vaultから証明書を取得するため)

続きを読む

Azure Virtual Machinesの内部名を取得する

タイトルを厳密にいうと xxxx.internal.cloudapp.net みたいなDNS Suffixの部分を取得する話かな。

azコマンド(Azure CLI)なら

az network nic list --query "[?dnsSettings.internalDomainNameSuffix=`{dnsSuffix}`]" 

REST APIならこのあたりを参考に。VNETに接続してるNICに付与されるのでVNETというよりNICの設定になる感じでしょうか?