1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Microsoft Fabric Git統合 × Azure DevOps -別テナント間でFabricアイテムをリリースする方法-

1
Last updated at Posted at 2026-03-10

はじめに

Microsoft Fabric のデプロイ パイプラインは、基本的に同一テナント内のワークスペース間での利用が前提です。
そのため、開発環境と本番環境を別テナントで分離している構成では、どのようにリリースを行うかが悩みどころになります。

今回は、Azure DevOps の Repos と Fabric の Git 統合を使って、別テナント間でリリースできるかを検証しました。
具体的には、テナントB(開発)で作業した内容を、テナントA(本番)へ反映する構成です。

今回はできるだけシンプルに確認するため、1つのリポジトリの中でブランチを分ける構成としました。イメージとしては以下の通りです。

└─ main -----> テナントAのワークスペースA(本番)
    └─ dev -----> テナントBのワークスペースB(開発)

つまり、開発ワークスペースを dev ブランチ、本番ワークスペースを main ブランチに接続し、dev から main へのプルリクエストとマージによってリリースする流れです。

image.png

公式ドキュメントにも、テナントをまたいだ Azure DevOps との連携が可能であることを読み取れる記載があります。
そこで今回は、実際に試してみたうえで、具体的な手順と躓きやすいポイントをまとめました。

image.png

手順

ゲストユーザー招待

テナントBのEntraポータルの[ユーザー]>[新しいユーザー]>[外部ユーザーの招待]
からユーザーAのメールアドレスを入力し、テナントBのゲストユーザーとして招待します。

招待後、ユーザーAに招待メールが届くので承認をします。

image.png

テナントBワークスペースのDevOpsの設定

DevOpsライセンスの開始

今回私はテナントBのユーザーBを用いてのDevOpsの開始から始めました。
1テナント5ユーザーまではBasicライセンスを無料で使えます。

DevOpsのリージョンについて
現在DevOpsのリージョンに[Japan]はサポートされていません。
今回は[Southeast Asia]を選択しています。

レポジトリ作成

ユーザーBを用いて
DevOpsに組織>プロジェクト>レポジトリの順で新規作成していきます。
その後、mainブランチに加えてdevブランチも作成します。

image.png

ゲストユーザーをテナントBのDevOpsユーザーにする

Devopsのホームに戻り、[Organization settings]に進みます

image.png

[Security]>[Policies]から
[External guest access]を有効化します。

image.png

次に同じく[Organization settings]の
[Users]から[Add Users]をクリックし、
対象のプロジェクトと権限を設定します。
今回は[Project Contributors]を選択しています。

image.png

FabricのGit統合を行う

ワークスペース権限「管理者」が必要になります。

FabricとDevOpsのリージョンついて
両者のリージョンが一致していない場合エラーとなります。
詳細と解決方法については以下をご参照ください

https://qiita.com/manabian/items/362a65b0956b3c9c1c92

https://learn.microsoft.com/ja-jp/fabric/admin/git-integration-admin-settings

テナントB FabricとテナントB DevOpsを統合する

ユーザーBを用いてテナントBのFabricのワークスペースBにアクセスします。

[ワークスペース設定]>[git 統合]>[Azure DevOps]と進みます。

[Entraアカウント]>[接続]をクリックします。

image.png

対象の組織・プロジェクト・リポジトリを選択し、
ブランチは[dev]を選びます。(開発ワークスペースなので)

image.png

[接続と同期]をクリックします。

ワークスペース右上に[ソース管理]という項目が出てきたら接続完了です。

image.png

テナントA FabricとテナントB DevOpsを統合する

こちらが躓きポイントになりやすいです。

今回は、ユーザーAを用いてテナントAのFabricのワークスペースAにアクセスします。

[ワークスペース設定]>中略>[Entraアカウント]までは同じ手順ですが、

[アカウント]から [アカウントの追加] をクリックします。

任意の接続名で問題ありませんが、
テナントBのAzure DevOpsのリポジトリまでのURL が必要になります。
認証は今回、OAuthを選択しました。

image.png

すると[アカウント欄]に今追加したアカウントが表示されるので
そちらを選択し、[接続]をクリックします。

image.png

対象の組織・プロジェクト・リポジトリを選択し、
今回、ブランチは [main] を選びます。(本番ワークスペースなので)

同様に
ワークスペース右上に[ソース管理]という項目が出てきたら接続完了です。

DevOpsを使ってリリースしてみる

リリースの流れを簡単に紹介します。

ワークスペースBで変更・コミット

ワークスペースBで新しくノートブックを作成します。

image.png

作成後、ワークスペース画面に戻り[ソース管理]を開きます。
変更されたものが認識されるので、[コミット]をクリックします。

image.png

DevOpsでプルリクエスト

DevOpsの[dev]ブランチを開き、
先ほど作成したノートブックがフォルダとして追加されたことを確認します。

image.png

[Repos]の[Pull requests]に進み、
[New Pull requests]をクリックします。

image.png

プルリクエストの方向が
[dev]→[main]であることを確認し、
[Create]をクリックします。

image.png

続いて次の画面に遷移したら、今回はそのまま[Complete]もクリックし、マージを完了させます。

image.png

[main]ブランチに移動し、プルリクエストによってノートブックがファイルとして追加されたことを確認します。

image.png

mainブランチとワークスペースAを同期

ユーザーAを用いてワークスペースAにアクセスします。
すると、[ソース管理]の項目に更新情報が届いているので[すべて更新]をクリックします。

image.png

ノートブックが追加され、リリースが完了しました!

image.png

今後の検討事項

今回の検証では、1つのリポジトリ内で dev / main ブランチを分ける構成で、別テナント間でもリリースできることを確認できました。
一方で、実運用を考えると、まだ整理しておきたい論点があるのでまとめておきます。

  • 開発用と本番用でリポジトリ自体を分ける場合のリリース方法

    • 今回は1つのリポジトリ内でブランチを分けましたが、運用ルールや権限分離の観点から、リポジトリ自体を分けたいケースもあります。その場合にどのようなリリースフローが現実的かは、別途検討が必要そうです。
  • 条件付きアクセスポリシーとの兼ね合い

    • 別テナント接続では、Entra ID 側の条件付きアクセスやゲストユーザー制御の影響を受けやすいです。環境によっては今回の手順通りに進まない可能性もあるため、確認は重要だと感じました。
  • Fabric アイテムごとの制限事項

    • 今回はノートブックで動作確認しましたが、Fabric ではアイテムごとに Git 統合やデプロイ時の挙動が異なる場合があります。実際に運用へ乗せる場合は、対象となるアイテムごとの制約も確認しておきたいところです。

Youtubeもやってます!

FabricやDatabricksについて学べる勉強会を毎月開催!

次回イベント欄から直近のMicrosoft Data Analytics Day(Online) 勉強会ページへ移動後、申し込み可能です!

関連記事

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?