Synapse Studio でのソース管理

既定では、Synapse Studio は Synapse サービスに対して直接作成を行います。 Synapse Studio では、ソース管理に Git を使用したコラボレーションが必要である場合、ワークスペースを Git リポジトリ、Azure DevOps、または GitHub に関連付けることができます。

この記事では、Git リポジトリが有効になっている Synapse ワークスペースを構成し、それで作業する方法について説明します。 また、いくつかのベスト プラクティスとトラブルシューティング ガイドも提供します。

注意

Azure Gov と 21Vianet によって運営される Microsoft Azure で GitHub を使用するには、git 統合のために Synapse Studio に独自の GitHub OAuth アプリケーションを導入できます。 構成は ADF の場合と同じです。 お知らせブログを参照できます。

前提条件

ユーザーは、Synapse ワークスペースに対する Azure 共同作成者 (Azure RBAC) 以上のロールを持っている必要があります。これにより、Synapse で Git リポジトリの構成、設定編集、および切断を行うことができます。

Synapse Studio で Git リポジトリを構成する

Synapse Studio を起動した後、ワークスペースで Git リポジトリを構成できます。 Synapse Studio ワークスペースは、一度に 1 つの Git リポジトリにのみ関連付けることができます。

構成方法 1: グローバル バー

Synapse Studio グローバル バーで、 [Synapse Live](Synapse ライブ) ドロップダウン メニューを選択し、 [Set up code repository](コード リポジトリの設定) を選択します。

Configure the code repository settings from authoring

構成方法 2:管理ハブ

Synapse Studio の管理ハブに移動します。 [ソース管理] セクションで [Git 構成] を選択します。 接続されているリポジトリがない場合は、 [構成] をクリックします。

Configure the code repository settings from management hub

ワークスペースで Azure DevOps または GitHub Git リポジトリに接続できます。

Azure DevOps Git に接続する

ソース管理、コラボレーション、バージョン管理などのために、Synapse ワークスペースを Azure DevOps リポジトリに関連付けることができます。 Azure DevOps リポジトリがない場合は、こちらの指示に従ってリポジトリ リソースを作成します。

Azure DevOps Git リポジトリの設定

Git リポジトリに接続するときに、最初に Azure DevOps Git としてリポジトリの種類を選択し、ドロップダウン リストから Microsoft Entra テナントを 1 つ選び、[続行] をクリックします。

Configure the code repository settings

構成ペインには、次の Azure DevOps Git の設定が表示されます。

設定 説明
リポジトリの種類 Azure Repos コード リポジトリの種類。
Azure DevOps Git または GitHub
クロス テナント サインイン テナント間アカウントを使用してサインインする場合は、チェックボックスをオンにします。 オフ (既定値)
Microsoft Entra ID Microsoft Entra テナント名。 <your tenant name>
Azure DevOps アカウント Azure Repos 組織の名前。 Azure Repos 組織名はhttps://{organization name}.visualstudio.comで確認することができます。 Azure Repos 組織にサインインし、お使いの Visual Studio プロファイルにアクセスして、リポジトリとプロジェクトを確認してください。 <your organization name>
ProjectName Azure Repos プロジェクトの名前。 Azure Repos プロジェクトの名前は https://{organization name}.visualstudio.com/{project name} で確認することができます。 <your Azure Repos project name>
RepositoryName Azure Repos コード リポジトリの名前。 Azure Repos プロジェクトには、プロジェクトの拡大に合わせてソース コードを管理するための Git リポジトリが含まれます。 新しいリポジトリを作成するか、プロジェクト内に既にある既存のリポジトリを使用できます。 <your Azure Repos code repository name>
コラボレーション ブランチ 発行に使用する Azure Repos コラボレーション ブランチ。 既定では master です。 別のブランチからのリソースを発行する場合は、この設定を変更します。 既存のブランチを選択することも、新しいものを作成することもできます <your collaboration branch name>
ルート フォルダー Azure Repos コラボレーション ブランチのルート フォルダー。 <your root folder name>
[Import existing resources to repository](既存のリソースをリポジトリにインポートする) 既存のリソースを Synapse Studio から Azure Repos Git リポジトリにインポートするかどうかを指定します。 このチェックボックスをオンにすると、ワークスペース リソース (プールを除く) が JSON 形式で関連する Git リポジトリにインポートされます。 この操作により、各リソースが個別にエクスポートされます。 このチェックボックスがオンになっていない場合、既存のリソースはインポートされません。 オン (既定値)
[Import resource into this branch](リソースをこのブランチにインポートする) リソース (SQL スクリプト、ノートブック、Spark ジョブ定義、データセット、データフローなど) をどのブランチにインポートするかを選択します。

また、リポジトリ リンクを使用して、接続する Git リポジトリをすばやく指定することもできます。

Note

Azure Synapse は、オンプレミスの Azure DevOps リポジトリへの接続をサポートしていません。

別の Microsoft Entra テナントを使用する

Azure Repos Git リポジトリは、別の Microsoft Entra テナントに配置できます。 別の Microsoft Entra テナントを指定するには、使用している Azure サブスクリプションの管理者のアクセス許可が必要です。 詳細については、サブスクリプション管理者の変更に関する記事を参照してください。

重要

別の Microsoft Entra ID に接続するには、ログインしたユーザーがその Active Directory の一部である必要があります。

個人用の Microsoft アカウントを使用する

Git の統合に個人用の Microsoft アカウントを使用するには、Azure の個人用のリポジトリを組織の Active Directory にリンクできます。

  1. 個人用の Microsoft アカウントを組織の Active Directory にゲストとして追加します。 詳細については、Azure portal での Microsoft Entra B2B コラボレーション ユーザーの追加に関するページを参照してください。

  2. 個人用の Microsoft アカウントを使用して、Azure portal にログインします。 その後組織の Active Directory に切り替えます。

  3. Azure DevOps セクションに移動すると、個人用のリポジトリがあることを確認できます。 リポジトリを選択し、Active Directory に接続します。

これらの構成手順の後、Synapse Studio で Git 統合を設定すると、個人用のリポジトリを使用できます。

Azure Repos を組織の Active Directory に接続する方法について詳しくは、「Microsoft Entra ID に組織を接続する」を参照してください。

クロス テナント Azure DevOps アカウントを使用する

Azure DevOps が Synapse ワークスペースと同じテナントに入っていない場合、クロス テナント Azure DevOps アカウントでワークスペースを構成できます。

  1. [クロス テナント サインイン] オプションを選択し、[続行] をクリックします。

    Select the cross tenant sign in

  2. ダイアログ ボックスで OK を選択します。

    Confirm the cross tenant sign in

  3. [別のアカウントを使用する] をクリックし、Azure DevOps アカウントでログインします。

    Use another account

  4. サインイン後、ディレクトリとリポジトリを選択し、適宜構成します。

    Choose the directory

    Note

    ワークスペースにログインするには、最初のサインインを使用し、自分の Synapse ワークスペース ユーザー アカウントにログインします。 クロス テナント Azure DevOps アカウントはこの Synapse ワークスペースに関連付けられている Azure DevOps リポジトリにサインインするときとアクセスするときにのみ使用されます。

GitHub に接続する

ソース管理、コラボレーション、バージョン管理のために、ワークスペースを GitHub リポジトリに関連付けることができます。 GitHub アカウントまたはリポジトリがない場合は、こちらの手順に従ってリソースを作成します。

Synapse Studio と GitHub の統合では、パブリック GitHub (つまり https://github.com) と GitHub Enterprise の両方がサポートされます。 GitHub のリポジトリの読み取りおよび書き込みアクセス許可があれば、パブリックおよびプライベートの両方の GitHub リポジトリを使用できます。

GitHub の設定

Git リポジトリに接続する場合、最初に GitHub としてリポジトリの種類を選択します。次に GitHub アカウントを指定して、GitHub Enterprise Server の URL (GitHub Enterprise Server を使用する場合) または GitHub Enterprise の組織名 (GitHub Enterprise Cloud を使用する場合) を指定します。 [続行] を選択します。

注意

GitHub Enterprise Cloud を使用している場合は、 [GitHub Enterprise サーバーを使用する] チェックボックスをオフのままにしておきます。

GitHub repository settings

[構成] ウィンドウには、次の GitHub リポジトリの設定が表示されます。

設定 説明 Value
リポジトリの種類 Azure Repos コード リポジトリの種類。 GitHub
GitHub Enterprise の使用 GitHub Enterprise を選択するチェックボックス オフ (既定値)
GitHub Enterprise の URL GitHub Enterprise ルート URL (ローカル GitHub Enterprise サーバーの場合は HTTPS である必要があります)。 (例: https://github.mydomain.com)。 [Use GitHub Enterprise](GitHub Enterprise を使用する) がオンの場合にのみ必要です <your GitHub enterprise url>
GitHub アカウント GitHub アカウント名。 この名前は、https://github.com/{account名}/{リポジトリ名} で確認できます。 このページに移動すると、お使いの GitHub アカウントへの GitHub OAuth の資格情報を入力するよう求められます。 <your GitHub account name>
リポジトリ名 GitHub コード リポジトリ名。 GitHub アカウントには、ソース コードを管理するための Git リポジトリが含まれます。 新しいリポジトリを作成するか、プロジェクト内の既存のリポジトリを使用できます。 <your repository name>
コラボレーション ブランチ 発行に使用される GitHub コラボレーション ブランチ。 既定では、そのマスターです。 別のブランチからのリソースを発行する場合は、この設定を変更します。 <your collaboration branch>
ルート フォルダー GitHub コラボレーション ブランチのルート フォルダー。 <your root folder name>
[Import existing resources to repository](既存のリソースをリポジトリにインポートする) 既存のリソースを Synapse Studio から Git リポジトリにインポートするかどうかを指定します。 このチェックボックスをオンにすると、ワークスペース リソース (プールを除く) が JSON 形式で関連する Git リポジトリにインポートされます。 この操作により、各リソースが個別にエクスポートされます。 このチェックボックスがオンになっていない場合、既存のリソースはインポートされません。 選択済み (既定値)
[Import resource into this branch](リソースをこのブランチにインポートする) リソース (SQL スクリプト、ノートブック、Spark ジョブ定義、データセット、データフローなど) をどのブランチにインポートするかを選択します。

GitHub 組織

GitHub 組織に接続するには、組織が Synapse Studio にアクセス許可を付与する必要があります。 組織の管理者アクセス許可を持つユーザーは、下の手順を実行する必要があります。

初めて GitHub に接続する

初めて Synapse Studio から GitHub に接続する場合は、これらの手順に従って GitHub 組織に接続します。

  1. [Git 構成] ウィンドウの [GitHub アカウント] フィールドに組織名を入力します。 GitHub にログインするためのプロンプトが表示されます。

  2. 資格情報を使用してログインします。

  3. Synapse を Azure Synapse という名前のアプリケーションとして承認するように求められます。 この画面には、Synapse が組織にアクセスするためのアクセス許可を付与するオプションが表示されます。 アクセス許可を付与するオプションが表示されない場合は、GitHub でアクセス許可を手動で付与するように管理者に依頼してください。

これらの手順に従うと、ワークスペースは組織内のパブリックとプライベートの両方のリポジトリに接続できるようになります。 接続できない場合は、ブラウザーのキャッシュをクリアして再試行してください。

個人アカウントを使用して既に GitHub に接続している

既に GitHub に接続していて、個人アカウントへのアクセス許可のみが付与されている場合は、以下の手順に従って、組織にアクセス許可を付与します。

  1. GitHub に移動して [設定] を開きます。

    Open GitHub settings

  2. [アプリケーション] を選択します。 [Authorized OAuth Apps](認可済み OAuth アプリ) タブに Azure Synapse が表示されます。

    Authorize OAuth Apps

  3. Azure Synapse を選択し、自分の組織へのアクセス権を付与します。

    Grant organization permission

これらの手順を完了すると、ワークスペースは組織内のパブリックとプライベートの両方のリポジトリに接続できるようになります。

バージョン コントロール

開発者は、バージョン コントロール システム ("ソース管理" とも呼ばれます) を使うことで、コードの共同作業を行い、変更を追跡することができます。 ソース管理は、複数の開発者で行うプロジェクトに不可欠なツールです。

機能ブランチの作成

Synapse Studio に関連付けられた各 Git リポジトリには、コラボレーション ブランチがあります (mainmaster は、既定のコラボレーション ブランチです)。 ユーザーは、ブランチのドロップダウンで [+ New Branch](新しいブランチ) をクリックして機能分岐を作成することもできます。

Create new branch

新しいブランチ ペインが表示されたら、機能ブランチの名前を入力し、作業の基にするブランチを選択します。

Create branch based on private branch

機能ブランチの変更をコラボレーション ブランチにマージする準備ができたら、ブランチのドロップダウンをクリックし、[Pull request の作成] を選択します。 この操作を行うと、Git プロバイダーに移動します。ここで、pull request の発行、コードのレビュー、コラボレーション ブランチへの変更のマージを行うことができます。 コラボレーション ブランチからは、Synapse サービスへの公開のみ許可されます。

Create a new pull request

発行の設定を構成する

既定では、Synapse Studio はワークスペース テンプレートを生成し、それらを workspace_publish という名前のブランチに保存します。 カスタムの公開ブランチを構成するには、コラボレーション ブランチのルート フォルダーに publish_config.json ファイルを追加します。 公開する際、Synapse Studio はこのファイルを読み込み、フィールド publishBranch を探し、ワークスペース テンプレート ファイルを指定の場所に保存します。 ブランチが存在しない場合は、Synapse Studio によって自動的に作成されます。 このファイルの例を次に示します。

{
    "publishBranch": "workspace_publish"
}

Synapse Studio では、一度に 1 つの発行ブランチのみ使用できます。 新しい公開ブランチを指定しても、元の公開ブランチは削除されません。 以前の発行ブランチを削除する場合は、それを手動で削除します。

コード変更の発行

変更をコラボレーション ブランチにマージした後、[公開] をクリックして、コラボレーション ブランチでのコードの変更を Synapse サービスに手動で公開します。

Publish changes

サイド ウィンドウが開き、公開ブランチと保留中の変更が正しいことを確認できます。 変更を確認したら、 [OK] をクリックして発行を確定します。

Confirm the correct publish branch

重要

コラボレーション ブランチは、サービスにデプロイされているものを表すものではありません。 コラボレーション ブランチでの変更は、手動で発行する "必要" があります。

別の Git リポジトリに切り替える

別の Git リポジトリに切り替えるには、 [ソース管理] の管理ハブにある [Git 構成] ページに移動します。 [切断] を選択します。

Git icon

ワークスペース名を入力し、 [切断] をクリックして、ワークスペースに関連付けられている Git リポジトリを削除します。

現在のリポジトリとの関連付けを削除すると、別のリポジトリを使用するように Git 設定を構成してから、既存のリソースを新しいリポジトリにインポートできるようになります。

重要

ワークスペースから Git 構成を削除しても、リポジトリからは何も削除されません。 Synapse ワークスペースには、公開されたすべてのリソースが含まれます。 引き続き、サービスに対してワークスペースを直接編集できます。

Git 統合のベスト プラクティス

  • 権限: Git リポジトリをワークスペースに接続すると、ワークスペースのいずれかのロールで Git リポジトリにアクセスできるすべてのユーザーが SQL スクリプト、ノートブック、Spark ジョブ定義、データセット、データフロー、パイプラインなどの成果物を Git モードで更新できるようになります。 通常、ワークスペースを更新するためのアクセス許可は、すべてのチーム メンバーには付与しません。 Git リポジトリのアクセス許可は、Synapse ワークスペース成果物の作成者のみに付与します。
  • コラボレーション: コラボレーション ブランチへの直接チェックインは許可しないことをお勧めします。 この制限は、すべてのチェックインが「機能ブランチの作成」に記載されている pull request のレビュー プロセスを通過するため、バグを防ぐのに役立ちます。
  • Synapse ライブ モード: Git モードでの公開後、すべての変更が Synapse ライブ モードで反映されます。 Synapse ライブ モードでは、発行は無効になります。 また、適切なアクセス許可が付与されている場合は、ライブ モードで成果物を表示したり、実行したりすることができます。
  • Studio での成果物の編集: Synapse Studio は、ワークスペースのソース管理を有効にし、変更を Git に自動的に同期できる唯一の場所です。 SDK、PowerShell による変更は、Git には同期されません。 Git が有効になっている場合は、常に Studio で成果物を編集することをお勧めします。

Git 統合のトラブルシューティング

Git モードへのアクセス

ワークスペースにリンクされている GitHub Git リポジトリへのアクセス許可が付与されていても、Git モードにアクセスできない場合は、次のようにします。

  1. キャッシュをクリアし、ページを更新します。

  2. GitHub アカウントにログインします。

古い発行ブランチ

発行ブランチがコラボレーション ブランチと同期しておらず、最新の発行があっても古いリソースが含まれる場合は、これらの手順を試してください。

  1. 現在の Git リポジトリを削除します

  2. 同じ設定で Git を再構成します。ただし、 [Import existing resources to repository](既存のリソースをリポジトリにインポートする) がオンになっていることを確認し、同じブランチを選択してください。

  3. 変更をコラボレーション ブランチにマージする pull request を作成します

サポートされていない機能

  • Synapse Studio では、コミットのチェリーピックやリソースの選択的発行は許可されません。
  • Synapse Studio では、コミット メッセージの自己カスタマイズはサポートされません。
  • 設計上、Studio での削除操作は Git に直接コミットされます。

次のステップ