分享方式:


Synapse Studio 中的原始程式碼控制

根據預設,Synapse Studio 作者會直接針對 Synapse 服務。 如果您需要使用 Git 進行原始檔控制的共同作業,Synapse Studio 可讓您將工作區與 Git 存放庫、Azure DevOps 或 GitHub 產生關聯。

本文概述如何在已啟用 Git 存放庫的 Synapse 工作區中設定及運作。 此外,我們也強調一些最佳做法和疑難排解指南。

注意

若要在由 21Vianet 運作的 Azure Gov 和 Microsoft Azure 中使用 GitHub,您可以在 Synapse Studio 中攜帶自己的 GitHub OAuth 應用程式以進行 Git 整合。 設定體驗與 ADF 相同。 您可以參考 公告部落格

必要條件

使用者必須在 Synapse 工作區上擁有 Azure 參與者 (Azure RBAC) 或更高角色,才能設定、編輯設定,並使用 Synapse 中斷 Git 存放庫的連線。

在 Synapse Studio 中設定 Git 存放庫

啟動 Synapse Studio 之後,您可以在工作區中設定 Git 存放庫。 Synapse Studio 工作區一次只能與一個 Git 存放庫相關聯。

設定方法 1:全域列

在 Synapse Studio 全域列中,選取 [Synapse Live ] 下拉式功能表,然後選取 [ 設定程式碼存放庫 ]。

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 租使用者,然後按一下 [ 繼續 ]。

Configure the code repository settings

組態窗格會顯示下列 Azure DevOps git 設定:

設定 描述
存放庫類型 Azure Repos 程式碼存放庫的類型。
Azure DevOps Git 或 GitHub
跨租使用者登入 使用跨租使用者帳戶登入的核取方塊。 unselected (預設值)
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>
將現有的資源匯入存放庫 指定是否要將現有資源從 Synapse Studio 匯入 Azure Repos Git 存放庫。 核取方塊,以 JSON 格式將工作區資源(集區除外)匯入相關聯的 Git 存放庫。 此動作會個別匯出每個資源。 未核取此方塊時,不會匯入現有的資源。 已核取 (預設值)
將資源匯入此分支 選取要匯入資源的分支(sql 腳本、筆記本、spark 作業定義、資料集、資料流程等)。

您也可以使用存放庫連結,快速指向您想要連線的 Git 存放庫。

注意

Azure Synapse 不支援連線到 Prem Azure DevOps 存放庫。

使用不同的 Microsoft Entra 租使用者

Azure Repos Git 存放庫可以位於不同的 Microsoft Entra 租使用者中。 若要指定不同的 Microsoft Entra 租使用者,您必須擁有所使用 Azure 訂用帳戶的系統管理員許可權。 如需詳細資訊,請參閱 變更訂用帳戶管理員

重要

若要連線到另一個 Microsoft Entra 識別碼,登入的使用者必須是該 Active Directory 的一部分。

使用您的個人 Microsoft 帳戶

若要使用個人 Microsoft 帳戶進行 Git 整合,您可以將個人 Azure 存放庫連結至組織的 Active Directory。

  1. 將您的個人 Microsoft 帳戶新增至組織的 Active Directory 作為來賓。 如需詳細資訊,請參閱 在Azure 入口網站中新增 Microsoft Entra B2B 共同作業 使用者。

  2. 使用您的個人 Microsoft 帳戶登入Azure 入口網站。 然後切換至組織的 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. 在對話方塊中選取 [ 確定 ]。

    Confirm the cross tenant sign in

  3. 按一下 [ 使用其他帳戶 ],並使用您的 Azure DevOps 帳戶登入。

    Use another account

  4. 登入之後,請選擇目錄和存放庫,並據以加以設定。

    Choose the directory

    注意

    若要登入工作區,您必須使用第一個登入來登入 Synapse 工作區使用者帳戶。 您的跨租使用者 Azure DevOps 帳戶僅用於登入並存取與此 Synapse 工作區相關聯的 Azure DevOps 存放庫。

使用 GitHub 連線

您可以將工作區與 GitHub 存放庫產生關聯,以進行原始檔控制、共同作業、版本控制。 如果您沒有 GitHub 帳戶或存放庫,請遵循 這些指示 來建立資源。

GitHub 與 Synapse Studio 整合同時支援公用 GitHub(也就是 https://github.com )和 GitHub Enterprise。 只要您擁有 GitHub 中存放庫的讀取和寫入權限,您就可以同時使用公用和私人 GitHub 存放庫。

GitHub 設定

連線到 Git 存放庫時,請先選取您的存放庫類型作為 GitHub,然後提供您的 GitHub 帳戶、使用 GitHub Enterprise Server 的 GitHub Enterprise 伺服器 URL,或使用 GitHub Enterprise Cloud 時的 GitHub Enterprise 組織名稱。 選取 [繼續]。

注意

如果您使用 GitHub Enterprise Cloud,請保留 [使用 GitHub Enterprise Server ] 核取方塊。

GitHub repository settings

組態窗格會顯示下列 GitHub 存放庫設定:

設定 說明
存放庫類型 Azure Repos 程式碼存放庫的類型。 GitHub
使用 GitHub Enterprise 選取 GitHub Enterprise 的核取方塊 unselected (預設值)
GitHub Enterprise URL GitHub Enterprise 根 URL (必須是本機 GitHub Enterprise 伺服器的 HTTPS)。 例如: https://github.mydomain.com 。 只有在選取 [使用 GitHub Enterprise] 時才 需要 <your GitHub enterprise url>
GitHub 帳戶 您的 GitHub 帳戶名稱。 您可以從 name}/{repository name}找到 https://github.com/{account 此名稱。 流覽至此頁面會提示您輸入 GitHub OAuth 認證到您的 GitHub 帳戶。 <your GitHub account name>
存放庫名稱 您的 GitHub 程式碼存放庫名稱。 GitHub 帳戶包含用來管理原始程式碼的 Git 存放庫。 您可以建立新的存放庫,或使用帳戶中已有的現有存放庫。 <your repository name>
共同作業分支 用於發佈的 GitHub 共同作業分支。 根據預設,其主要複本。 如果您想要從另一個分支發佈資源,請變更此設定。 <your collaboration branch>
根資料夾 GitHub 共同作業分支中的根資料夾。 <your root folder name>
將現有的資源匯入存放庫 指定是否要將現有資源從 Synapse Studio 匯入 Git 存放庫。 核取方塊,以 JSON 格式將工作區資源(集區除外)匯入相關聯的 Git 存放庫。 此動作會個別匯出每個資源。 未核取此方塊時,不會匯入現有的資源。 已選取 (預設值)
將資源匯入此分支 選取要匯入資源(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. 選取 [ 應用程式 ]。 在 [ 授權的 OAuth 應用程式 ] 索引標籤中,您應該會看到 Azure Synapse

    Authorize OAuth Apps

  3. 選取 Azure Synapse 並授與貴組織的存取權。

    Grant organization permission

完成這些步驟之後,您的工作區就能夠連線到組織內的公用和私人存放庫。

版本控制

版本控制系統(也稱為 原始檔控制 )可讓開發人員在程式碼上共同作業並追蹤變更。 原始程式碼控制是多重開發人員專案不可或缺的工具。

建立功能分支

與 Synapse Studio 相關聯的每個 Git 存放庫都有共同作業分支。 ( mainmaster 為預設共同作業分支)。 使用者也可以按一下分支下拉式功能表中的+ 新分支來建立功能分支。

Create new branch

一旦出現新的分支窗格,請輸入功能分支的名稱,然後選取一個分支來根據工作。

Create branch based on private branch

當您準備好將功能分支的變更合併至共同作業分支時,請按一下分支下拉式清單,然後選取 [ 建立提取要求 ]。 此動作會帶您前往 Git 提供者,您可以在其中引發提取要求、執行程式碼檢閱,以及合併共同作業分支的變更。 您只能從共同作業分支發佈至 Synapse 服務。

Create a new pull request

設定發佈設定

根據預設,Synapse Studio 會產生工作區範本,並將其儲存至稱為 workspace_publish 的分支。 若要設定自訂發佈分支,請將publish_config.json檔案新增至共同作業分支中的根資料夾。 當您發佈時,Synapse Studio 會讀取此檔案、尋找欄位 publishBranch ,並將工作區範本檔案儲存至指定的位置。 如果分支不存在,Synapse Studio 會自動建立它。 此檔案的外觀範例如下:

{
    "publishBranch": "workspace_publish"
}

Synapse Studio 一次只能有一個發佈分支。 當您指定新的發行分支時,不會刪除原始發行分支。 如果您想要移除先前的發佈分支,請手動刪除該分支。

發佈程式碼變更

合併共同作業分支的變更之後,按一下 [ 發佈 ] 將共同作業分支中的程式碼變更手動發佈至 Synapse 服務。

Publish changes

側邊窗格隨即開啟,您可以在其中確認發行分支和擱置中的變更正確。 驗證變更後,按一下 OK 確認發佈。

Confirm the correct publish branch

重要

共同作業分支不代表服務中部署的內容。 共同作業分支 中的變更必須 手動發佈。

切換到不同的 Git 存放庫

若要切換至不同的 Git 存放庫,請移至 [原始檔控制] 下管理中樞中的 [Git 設定] 分頁。 選取 [中斷連線]。

Git icon

輸入您的工作區名稱,然後按一下 [ 中斷連線 ] 以移除與您的工作區相關聯的 Git 存放庫。

移除與目前存放庫的關聯之後,您可以將 Git 設定設定為使用不同的存放庫,然後將現有的資源匯入至新的存放庫。

重要

從工作區移除 Git 組態並不會從存放庫刪除任何專案。 Synapse 工作區包含所有已發佈的資源。 您可以繼續直接針對服務編輯工作區。

Git 整合的最佳做法

  • 權限。 連線到工作區的 Git 存放庫之後,任何可以存取您工作區中任何角色的 Git 存放庫的人都可以更新成品,例如 sql 腳本、筆記本、Spark 作業定義、資料集、資料流程和管線。 您通常不希望每個小組成員都有更新工作區的許可權。 僅將 Git 存放庫許可權授與 Synapse 工作區成品作者。
  • 共同作業。 建議您不要允許直接在共同作業分支裡簽入。 這項限制有助於防止錯誤,因為每次簽入都經過建立功能分支 中所述 的提取要求檢閱程式。
  • 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,但請確定 已核取 [將現有的資源匯入存放庫 ],然後選擇相同的分支。

  3. 建立提取要求以合併共同作業分支的變更

不支援的功能

  • Synapse Studio 不允許挑選認可或選擇性發佈資源。
  • Synapse Studio 不支援自我自訂認可訊息。
  • 根據設計,Studio 中的刪除動作會直接認可至 git

下一步