イベントドリブンのサーバーレス コンピューティング プラットフォームを提供する Azure サービス。
Hi @12G-4164
ガーが、関数を直接呼び出すのではなく、HTTP 経由で Function App の Blob 拡張(/runtime/webhooks/blobs)エンドポイントにイベントを配信する仕組みで動作しているためです。Event Grid 側では HTTP 200 系の応答が返れば「配信成功」と判定されますが、その後の Functions ランタイム内部でのトリガー解決や関数ディスパッチが失敗した場合でも、Event Grid からは検知できません。 特に Flex Consumption プランでは、Blob トリガーは Event Grid ベースのみがサポートされており、従来のポーリング方式のフォールバックが存在しません。そのため、Function App が VNet 統合されている環境で、ストレージ接続やランタイム初期化に関する問題があると、イベントは配信されているにもかかわらず、関数の実行ログが一切出力されないという事象が発生します。したがって、この問題は Event Grid の配信先 URL が誤っていることが原因ではなく、Function ランタイム側で Blob トリガーが正しく初期化・解決されていないことに起因します。
以下のポイントをご確認いただくことで、本問題の解消または回避策となります。
Blob トリガー拡張機能および拡張バンドルのバージョンを確認する Event Grid ベースの Blob トリガーでは、Storage Blobs 拡張機能(v5.x 以降)および Extension Bundle v4.x の使用が前提となります。バージョンが要件を満たしていない場合、イベントは受信されても関数が実行されません。
ストレージ アカウントへのアクセス権限と接続方法を確認する マネージド ID を使用している場合は、Function App の ID に Storage Blob Data Reader 以上の権限がストレージ アカウントに付与されていることを確認してください。接続文字列を使用している場合は、該当するアプリ設定が正しく構成され、ランタイムから参照可能である必要があります。
プライベート エンドポイント利用時の DNS 解決を確認する Event Grid がイベントソースであっても、Blob トリガーはランタイム初期化時にストレージ アカウントへアクセスします。Function App が配置されている VNet から、privatelink.blob.core.windows.net に対する Private DNS 解決が正しく行われていない場合、トリガーは有効化されず、結果として関数が実行されません。