高可用性、一貫性のあるパフォーマンス、動的スケールを目的として設計された Azure イベント ルーティング サービス。
こんにちは、nao_ikedaさん、
以下をお試しください
方法 1: Azure CLI を使用して作成する (推奨)
ポータルの UI をバイパスして、CLI から直接リソースを紐付けるのが最も確実です。以下のコマンドを実行してください。
Azure
az eventgrid event-subscription create \
--name <任意のサブスクリプション名> \
--source-resource-id "/subscriptions/<サブスクリプションID>/resourceGroups/<リソースグループ名>/providers/Microsoft.Storage/storageAccounts/<ストレージアカウント名>" \
--endpoint-type azurefunction \
--endpoint "/subscriptions/<サブスクリプションID>/resourceGroups/<リソースグループ名>/providers/Microsoft.Web/sites/<Function App名>/functions/<関数名>"
方法 2: ポータルで「WebHook」として登録する
どうしてもポータル画面から操作したい場合は、エンドポイントのタイプを「Azure Function」ではなく「WebHook」に変更し、関数の直接の URL を指定することで登録可能です。
- Function App の「アプリ キー」画面から、System keys にある (または )のキー(Value)をコピーします。
blobs_extensioneventgrid_extension - 以下の形式で WebHook URL を組み立てます。
https://<Function App名>.azurewebsites.net/runtime/webhooks/blobs?functionName=<関数名>&code=<コピーしたシステムキー> - Event Grid のサブスクリプション作成画面で、エンドポイントタイプを「WebHook」にし、組み立てた URL を入力して作成します。
コードは間違っていませんので、上記のアプローチで紐付けを行えば想定通りに動くはずです。ぜひ試してみてください!