次の方法で共有

EventGridを経由した関数アプリのプライベートな呼び出し

原田 駿 20 評価のポイント
2026-04-24T08:33:33.0033333+00:00

関数アプリのEventGridトリガーに関して、関数アプリにプライベートエンドポイントを作成し、プライベートエンドポイント経路で呼び出ししようとしたところ、イベントサブスクリプション作成時にその選択肢がなく、関数アプリのパブリックをオフにしてしまうと正常に呼び出せませんでした。
調べたところ、このトリガーはパブリックもしくはサービスタグのEventGrid経由でしか呼び出せないと出てきたため、暫定的に関数アプリのパブリック制限を解除し、サービスタグのEventGridのみ許可する設定としたらうまくいきました。
しかし、より強固にするにはやはりPEP経由かと思うのですが、そういった設定はできないのでしょうか

Azure Functions
Azure Functions

イベントドリブンのサーバーレス コンピューティング プラットフォームを提供する Azure サービス。


質問作成者が受け入れた回答

Pravallika KV 17,110 評価のポイント Microsoft 外部スタッフ モデレーター
2026-04-24T08:44:29.2866667+00:00

こんにちは、 @原田 駿 ,

お話をまとめると「Event Grid トリガーのある関数アプリをプライベートエンドポイント(PEP)経由で呼びたいけど、イベントサブスクリプション作成時にプライベート経路の選択肢が出ず、パブリック制限をオフにすると呼び出せない」ということですね。

現状のポイントは以下のとおりです。

  1. Azure Event Grid トリガーは、Event Grid サービス側が関数アプリのエンドポイント(HTTP)をコールしてイベントを配信します。
  2. 関数アプリのプライベートエンドポイントを作成していても、Event Grid サービスはプライベートDNS や VNet 内の PEP を経由して呼び出せず、パブリック経路での配信を前提にしています。
  3. そのため、関数アプリの「パブリックアクセスをオフ」にすると、Event Grid がそもそも到達できなくなり失敗します。

回避策/推奨パターン

  • 関数アプリのファイアウォール設定で Azure.EventGrid のサービスタグのみ許可する → “最小限の公開” のままEvent Gridトリガーを使えます。
  • さらにアクセス制御を強化したい場合 • API Management や Application Gateway をプライベート送信側に置き、バックエンドとして関数アプリを設定 • HTTP トリガー+Webhook 型で Microsoft Entra ID 認証を組み合わせ などのアーキテクチャパターンがあります。

注意点/将来性

  • 製品ロードマップ上、標準的な Function App + PEP で Event Grid トリガーを完結させるサポートは現状ありません。
  • ILB App Service Environment (ASEv2/v3) 上の関数アプリであれば、VNet 内完結の Event Grid トリガーが検討できるケースがあります。

参考ドキュメント

  1. Event Grid トリガーの概要
  2. 関数アプリのネットワーク オプション (PE/Service Endpoint)
  3. Event Grid → Azure Functions ハンドラとしての利用

こんな形で Azure.EventGrid サービスタグ許可&必要に応じて API 管理レイヤーを挟む設計をご検討ください。

何か追加でご不明点があればお気軽にどうぞ!

この回答は役に立ちましたか?

1 人がこの回答が役に立ったと思いました。
0 件のコメント コメントはありません

0 件の追加の回答

並べ替え方法: 最も役に立つ

お客様の回答

質問作成者は回答に "承認済み"、モデレーターは "おすすめ" とマークできます。これにより、ユーザーは作成者の問題が回答によって解決したことを把握できます。