技術本部Sansan Engieering Unit Data Hubグループの藤原です。前回はAzure Functions好きにしか刺さらないとがった内容を書いてしまいました。反省しているので、今回は間口を広げて.NETの標準クラスライブラリ好きにも刺さる内容になっています。
前回、グレースフルシャットダウン対応のバグを修正したパッチを適用したが、実はうまくいっていなかった……というところまで書きました。今回はさらに深く入り込み、その問題も直した話になっています。一言でいうと、Event Hubトリガーを使っている場合、SDKのバージョンによってはメッセージが処理されないことがあります(Microsoft.Azure.WebJobs.Extensions.EventHubs
の v6.1.0 以上を使用する必要があります)。また、 LinkedCancellationTokenSource
を使う場合、リンク先のトークンとの競合状態があるので注意が必要です。
なお、このブログでは事象を理解するための前提知識としてAzure Functionsの内部構造に触れています。詳しくない方は 前回 をご参照ください。また、今回は .NET の内部実装にも踏み込んでいます。
続きを読む