ノートブックのソース管理とデプロイ
この記事では、Microsoft Fabric のノートブックに対する Git 統合とデプロイ パイプラインのしくみを説明します。 リポジトリへの接続の設定、ノートブックの管理、さまざまな環境へのデプロイを行う方法について説明します。
ノートブック Git 統合
Fabric ノートブックは、 Azure DevOps とのソース管理のための Git 統合を提供します。 Git 統合では、ノートブックのバックアップとバージョン管理、必要に応じた前段階への復帰、Git ブランチを使用した共同作業または単独作業、およびノートブックのコンテンツのライフサイクルを完全に Fabric 内で管理できます。
Note
2024 年 10 月から、ノートブック Git 統合では、新しいワークスペースに同期する際に、アタッチ済み環境のマッピング関係の永続化がサポートされます。つまり、ノートブックとアタッチ済み環境を一緒に Git リポジトリにコミットし、別のワークスペースに同期すると、新しく生成されたノートブックと環境がバインドされます。 このアップグレードは、Git でバージョン管理されている既存のノートブックと依存環境に影響を与えます。ノートブック メタデータ コンテンツ内のアタッチ済み環境の物理 ID は論理 ID に置き換えられ、変更は差分ビューに反映されます。
接続を設定する
ワークスペース設定から、変更をコミットして同期するためのリポジトリへの接続を簡単に設定できます。 接続を設定するには、「Git 統合での作業開始」を参照してください。 接続すると、ノートブックを含む項目が [ソース管理] パネルに表示されます。
ノートブック インスタンスを Git リポジトリに正常にコミットすると、リポジトリ内にノートブック フォルダー構造が表示されます。
これで、pull request の作成など、今後の操作を実行できるようになります。
Git でのノートブックの表現
次の画像は、リポジトリ内の各ノートブック項目のファイル構造の例です。
ノートブック項目を Git リポジトリにコミットすると、ノートブック コードは標準の .ipynb ファイルではなく、ソース コード形式に変換されます。 たとえば、PySpark ノートブックでは notebook-content.py ファイルに変換します。 この方法によって、組み込みの差分機能を使用して簡単にコード レビューできるようになります。
項目コンテンツ ソース ファイルでは、メタデータ (既定のレイクハウスおよびアタッチされた環境を含む)、マークダウン セル、およびコード セルが保持され、区別されます。 この方法は、Fabric ワークスペースに同期して戻すときの正確なリカバリをサポートします。
Git に同期する場合、ノートブックのセル出力は含まれません。
Note
- 現時点では、 Notebook リソース内のファイルはリポジトリにコミットされていません。 これらのファイルのコミットは、今後のリリースでサポートされます。
- ノートブックとその依存環境を同じワークスペースで管理し、Git を使用してノートブックと環境の項目の両方のバージョン管理を行うことをお勧めします。Fabric Git システムは、ノートブックとアタッチ済み環境を新しいワークスペースに同期するときにマッピング関係を処理します。
- リポジトリから Fabric ワークスペースに同期すると、既定のレイクハウス ID がノートブックに保持されます。 既定のレイクハウスを使用してノートブックをコミットする場合は、新しく作成されたレイクハウス項目を手動で参照する必要があります。 詳細については、「レイクハウス Git 統合」を参照してください。
デプロイ パイプライン内のノートブック
デプロイ パイプラインを使用して、開発、テスト、運用などのさまざまな環境にノートブック コードをデプロイすることもできます。 この機能を使用すると、軽量のローコード操作で開発プロセスを合理化し、品質と一貫性を確保し、手動エラーを削減できます。 また、デプロイ ルールを使用して、ノートブックの既定のレイクハウスの変更など、デプロイ時のノートブックの動作のカスタマイズもできます。
Note
- 現在、新しいデザインのデプロイ パイプラインを使用していますが、[新しいデプロイメント パイプライン] をオフにすると、古い UI にアクセスできます。
- 10 月以降、Fabric ノートブックでは、次のステージにデプロイするときに、既定のレイクハウスとアタッチ済み環境を同じワークスペース内にバインドする自動バインド機能がサポートされます。 この変更は、デプロイ パイプライン内の既存のノートブックに影響を与えます。
- 既定のレイクハウスとアタッチ済み環境 (すべての依存項目が同じワークスペースにある場合) は、ターゲット ワークスペース内で新しく生成された項目に置き換えられ、ノートブックのメタデータの変更は、次のデプロイ ラウンドの差分ビューで強調表示されます。
- 既定のレイクハウスのデプロイ ルールを設定して、自動バインドされたレイクハウスをオーバーライドできます。
- 既知の問題: デプロイ中にノートブックの固定セルの状態が失われます。 現在、関連するタスクに取り組んでいます。
デプロイ パイプラインを使用してノートブックのデプロイを完了するには、次の手順に従います。
新しいデプロイ パイプラインを作成するか、既存のデプロイ パイプラインをオープンします。 詳細については、「デプロイ パイプラインの概要」を参照してください。
デプロイの目標に応じて、ワークスペースをさまざまなステージに割り当てます。
次の例に示すように、さまざまなステージ間でノートブックを含む項目を選択、表示、比較します。 強調表示されたバッジは、前のステージと現在のステージ間で変更された項目数を示します。
[デプロイ] を選択して、開発、テスト、運用の各ステージにノートブックをデプロイします。
(省略可能)[デプロイ規則] を選択して、デプロイ プロセスのデプロイ規則を作成できます。 デプロイ規則のエントリは、デプロイ プロセスのターゲット ステージにあります。
Fabric は、デプロイ規則を使用してデプロイするときに、各ノートブック インスタンスにおいて既定のレイクハウスのパラメーター化をサポートします。 ターゲットの既定のレイクハウスを指定するには、[ソース レイクハウスと同じ]、[N/A] (既定のレイクハウスではない)、および [その他のレイクハウス] の 3 つのオプションが使用できます。
この規則を設定すると、セキュリティで保護されたデータの分離を実現できます。 ノートブックの既定のレイクハウスは、デプロイ時にターゲットとして指定したレイクハウスに置き換えられます。
Note
デプロイ ルールで既定のレイクハウスを設定する場合は、レイクハウス ID が必要です。 レイクハウス ID は、項目の URL リンクから取得できます。 デプロイ ルールは自動バインドよりも優先度が高く、デプロイ ルールが構成されている場合は自動バインドされたレイクハウスが上書きされます。
デプロイ履歴からデプロイの状態をモニターします。