Open4

Managed Network を使っている Data Factory から Azure Functions を実行する

Tsubasa NomuraTsubasa Nomura

Data Factory のマネージド仮想ネットワークとは

  • Data Factory がマネージする仮想ネットワークの中に統合ランタイムをデプロイできる
  • 仮想ネットワークはリソースとして見えるものではない
  • プライベート エンドポイント を Data Factory から展開できる
    • そのプライベートエンドポイントはマネージド プライベート エンドポイントと呼ばれる

https://learn.microsoft.com/ja-jp/azure/data-factory/managed-virtual-network-private-endpoint

サポートされているデータ ソースとサービス

https://learn.microsoft.com/ja-jp/azure/data-factory/managed-virtual-network-private-endpoint#supported-data-sources-and-services

Managed VNet を有効にする方法

展開時に有効にする場合、[Enable Managed Virtual Network on the default AutoResolveIntegrationRuntime]のチェックを付ける。

展開後、Data Factory Studio から Integration runtimes を見ると自動的に作成された VNet に ランタイムが展開されていることが分かる。

Tsubasa NomuraTsubasa Nomura

プライベート エンドポイントかつ VNet 統合された Azure Functions を ADF から使う

こういうことができる。

こちらの記事で紹介されている。
https://techcommunity.microsoft.com/t5/azure-data-factory-blog/azure-functions-available-in-adf-managed-virtual-network/ba-p/3298383

Private Endpoint を使うために Premium か App Service プランを使う必要がある。

何が嬉しいか

  • Data Factory から Azure Functions へのトラフィックをユーザーが展開した仮想ネットワークに閉じ込めることができる
  • Azure Functions からプライベート エンドポイント経由で他のリソースにアクセスできる
  • Azure Functions からのトラフィックを Azure Firewall 等で制御できる
Tsubasa NomuraTsubasa Nomura

展開の仕方

1. マネージド プライベートエンドポイントを作る

Data Factory Studio の画面から作る。


プライベート エンドポイント側で承認すると Approved になる。

以下は Private Endpoint 側の画面。承認が必要なプライベートエンドポイントがある場合は Pending 状態の接続がある。

2. リンク サービスを作る

Azure Functions へのリンクを作る。

3. パイプラインで Azure Functions を使う

作成したリンク サービスを指定し、関数名を設定する。

3. デバッグ実行する

[デバッグ]で状態が成功になっていたら完成。

出力から HTTP のレスポンスが確認できる。

Tsubasa NomuraTsubasa Nomura

Tips

Functions で 404 が返ってくる

再起動 & スケールアップ/ダウンを試してみる。

Functions で 429 が返ってくる

しばらく待つ。もしくは host.jsondynamicThrottlesEnabledを設定すると 429 を返さなくなる。