次の方法で共有

Azureのblobとfunctionを内部通信させる方法について

Yamauchi,Daisuke/山内 大介 0 評価のポイント
2026-03-09T11:05:40.25+00:00

いつもお世話になっております。

現在、Azureのストレージアカウントのコンテナにデータが配置されたら、

functionを呼び出し、AppServiceのAPIを呼び出す仕組みを作成しております。

functionについては、「フレックス従量課金」を利用しております。

現状コンテナに、イベント(Event Grid)を作成し、コンテナにデータが配置されたことを

検知したら、functionを呼びだして、AppServiceを呼び出すような仕組みにしております。

EventGrid→FunctionAppを内部通信にすることは可能でしょうか?

情報不足しておりましたら、追記いたします。

お手数おかけしますが、ご確認の程よろしくお願いいたします。

Azure Functions
Azure Functions

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


1 件の回答

並べ替え方法: 最も役に立つ
  1. Rakesh Mishra 9,700 評価のポイント Microsoft 外部スタッフ モデレーター
    2026-03-09T15:17:47.0533333+00:00

    やあ、大輔、

    あなたは「Function → App Service API→ブロブ→イベント」の流れを完全にMicrosoftバックボーン上で(公開インターネットホップなし)にまとめようとしているようですね。標準として、Event Gridは公開ルーティング可能なWebhookエンドポイントにのみ配信されるため、現在プライベートエンドポイントでロックダウンされているFunction AppにEvent Gridのサブスクリプションを向けることはできません。完全にプライベートなフローを実現するためのいくつかのパターンをご紹介します:

    1. イベントグリッドを組み込みのBlobトリガーに切り替える
      • Azure Functionsのblobトリガーはストレージアカウントを直接ポーリングします。
      • ストレージアカウントにプライベートエンドポイントを設定し、そのエンドポイントにAzureWebJobsStorageを割り当てることができます。
      • あなたの機能は(プレミアムプラン/VNet連携を通じて)VNetに残ることができ、すべての読み取りがネット上に行われます。
      • 一度トリガーされると、関数はApp Service APIを呼び出します(プライベートエンドポイントでフロントにしたり、同じVNetに統合したりも可能です)。
    2. Event Gridを使い続けつつ、VNetにキューやトピックを配置してください
      • Azure Service Busの名前空間(現在サポートされているもの)に公開されるEvent Gridサブスクリプションを作成しましょう。
      • サービスバスの名前空間にプライベートエンドポイントを置き、バスがVNet内に存在するようにしてください。
      • イベントグリッドの代わりにサービスバストリガーを使う関数に変更してください。
      • イベントグリッド→サービスバス→関数フロー→ブローはプライベートネットワークから離れません。
    3. App Service Environment(ASE)またはPremium v3 with Private Endpoints(プレビュー版)への移行
      • ASEや一部のプレミアムSKUは、VNetのフロント・トゥ・バックでファンクションアプリをホストできます。
      • Event GridのサブスクリプションをプライベートのApp-in-ASEエンドポイントに直接バインドすることも可能です。(注:執筆時点では、Event Gridのプライベートエンドポイントサポートはまだプレビュー段階です。)

    おすすめ:

    最もシンプルなプライベートパスだけを望むなら、ブロブトリガーパターン(イベントグリッドを完全にスキップ)を使ってください:

    • 関数をブロブトリガーに変換する
    • Storage Account Private Endpoint を有効化し、AZUREWebJobsStorage を指向する
    • VNet連携付きプレミアムプランでの関数展開
    • App Service APIを独自のプライベートエンドポイント(または同じASE)でロックする方法

    そうすることで、Blob検出とFunction RuntimeはどちらもStorageとプライベートに通信し、FunctionはAPIをプライベートに呼び出します。

    参考になれば幸いです!

    参考文献

    注:このコンテンツはAIシステムの助けを借りて作成されました。

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

    0 件のコメント コメントはありません

お客様の回答

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