Synapse Studio 中的原始程式碼控制
根據預設,Synapse Studio 作者會直接針對 Synapse 服務。 如果您需要使用 Git 進行原始檔控制的共同作業,Synapse Studio 可讓您將工作區與 Git 存放庫、Azure DevOps 或 GitHub 產生關聯。
本文概述如何在已啟用 Git 存放庫的 Synapse 工作區中設定及運作。 此外,我們也強調一些最佳做法和疑難解答指南。
注意
若要在 Azure Gov 中使用 GitHub,並Microsoft由 21Vianet 運作的 Azure,您可以在 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] 下拉功能表,然後選取 [設定程式代碼存放庫]。
設定方法 2:管理中樞
移至 Synapse Studio 的管理中樞。 在 [原始檔控制] 區段中,選取 [Git 設定]。 如果您沒有任何已連線的存放庫,請選取 [設定]。
您可以在工作區中連線 Azure DevOps 或 GitHub Git 存放庫。
使用 Azure DevOps Git 連線
您可以將 Synapse 工作區與 Azure DevOps 存放庫產生關聯,以進行原始檔控制、共同作業、版本控制等等。 如果您沒有 Azure DevOps 存放庫,請遵循 這些指示 來建立存放庫資源。
Azure DevOps Git 存放庫設定
線上至 Git 存放庫時,請先選取您的存放庫類型作為 Azure DevOps git,然後從下拉式清單中選取一個Microsoft Entra 租使用者,然後選取 [ 繼續]。
組態窗格會顯示下列 Azure DevOps git 設定:
設定 | 描述 | 值 |
---|---|---|
存放庫類型 | Azure Repos 程式碼存放庫的類型。 |
Azure DevOps Git 或 GitHub |
跨租使用者登入 | 使用跨租用戶帳戶登入的複選框。 | 未選取 (預設值) |
Microsoft Entra ID | 您的 Microsoft Entra 租用戶名稱。 | <your tenant name> |
Azure DevOps 帳戶 | 您的 Azure Repos 組織名稱。 您可以在 https://{organization name}.visualstudio.com 找到您的 Azure Repos 組織名稱。 您可以登入您的 Azure Repos 組織,以存取 Visual Studio 設定檔和查看您的存放庫與專案。 |
<your organization name> |
ProjectName | 您的 Azure Repos 專案名稱。 您可以在 https://{organization name}.visualstudio.com/{project name} 找到您的 Azure Repos 專案名稱。 |
<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 不支援連線至內部部署 Azure DevOps 存放庫。
使用不同的 Microsoft Entra 租用戶
Azure Repos Git 存放庫可位於不同的 Microsoft Entra 租用戶。 若要指定不同的 Microsoft Entra 租用戶,您必須擁有所用 Azure 訂用帳戶的系統管理員權限。 如需詳細資訊,請參閱變更訂用帳戶管理員。
重要
若要連線到其他 Microsoft Entra ID,登入的使用者必須屬於該 Active Directory。
使用您的個人 Microsoft 帳戶
若要使用個人 Microsoft 帳戶進行 Git 整合,您可以將個人的 Azure Repos 連結至貴組織的 Active Directory。
以來賓身分將您的個人 Microsoft 帳戶新增到貴組織的 Active Directory。 如需詳細資訊,請參閱在 Azure 入口網站中新增 Microsoft Entra B2B 共同作業使用者。
使用您的個人 Microsoft 帳戶登入 Azure 入口網站。 然後切換到貴組織的 Active Directory。
移至 [Azure DevOps] 區段,您現在會在其中看到您的個人存放庫。 選取存放庫並與 Active Directory 連線。
設定這些步驟之後,當您在 Synapse Studio 中設定 Git 整合時,即可使用您的個人存放庫。
如需將 Azure Repos 連線到組織 Active Directory 的詳細資訊,請參閱 將組織連線到 Microsoft Entra ID。
使用跨租使用者 Azure DevOps 組織
當您的 Azure DevOps 與 Synapse 工作區不在相同的租使用者中時,您可以使用跨租使用者 Azure DevOps 組織來設定工作區。
選取 [ 跨租使用者登入 ] 選項,然後選取 [ 繼續]
在對話方塊中選取 [確定]。
選取 [使用其他帳戶 ],並使用您的 Azure DevOps 帳戶登入。
登入之後,請選取目錄和存放庫,並根據其進行設定。
注意
若要登入工作區,您必須使用第一個登入來登入 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 存放庫設定:
設定 | 說明 | 值 |
---|---|---|
存放庫類型 | Azure Repos 程式碼存放庫的類型。 | GitHub |
使用 GitHub Enterprise | 選取 GitHub Enterprise 的複選框 | 未選取 (預設值) |
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 組織。
在 Git 組態窗格的 [GitHub 帳戶] 欄位中,輸入組織名稱。 出現登入 GitHub 的提示。
使用您的使用者認證登入。
系統會要求您將 Synapse 授權為名為 Azure Synapse 的應用程式。 在此畫面上,您會看到授與 Synapse 存取組織許可權的選項。 如果您沒有看到授與權限的選項,請要求系統管理員透過 GitHub 手動授與權限。
遵循這些步驟之後,您的工作區就能夠連線到您組織內的公用和私人存放庫。 如果您無法連線,請嘗試清除瀏覽器快取,然後再試一次。
已使用個人帳戶連線到 GitHub
如果您已連線至 GitHub,且只授與存取個人帳戶的許可權,請遵循下列步驟,將許可權授與組織。
移至 GitHub 並開啟 [設定]。
選取應用程式。 在 [ 授權的 OAuth 應用程式 ] 索引標籤中,您應該會看到 Azure Synapse。
選取 Azure Synapse 並授與貴組織的存取權。
完成這些步驟之後,您的工作區就能夠連線到組織內的公用和私人存放庫。
版本控制
版本控制系統(也稱為 原始檔控制)可讓開發人員在程式碼上共同作業並追蹤變更。 原始程式碼控制是多重開發人員專案不可或缺的工具。
建立功能分支
與 Synapse Studio 相關聯的每個 Git 存放庫都有共同作業分支。 (main
或 master
為預設共同作業分支)。 使用者也可以按一下分支下拉式功能表中的+ 新分支來建立功能分支。
出現新的分支窗格之後,請輸入功能分支的名稱,然後選取要作為工作基礎的分支。
當您準備好將功能分支的變更合併至共同作業分支時,請選取分支下拉式清單,然後選取 [ 建立提取要求]。 此動作會帶您前往 Git 提供者,您可以在其中引發提取要求、執行程式代碼檢閱,以及合併共同作業分支的變更。 您只能從共同作業分支發佈至 Synapse 服務。
設定發佈設定
根據預設,Synapse Studio 會產生工作區範本,並將其儲存至稱為 workspace_publish
的分支。 若要設定自訂發佈分支,請將publish_config.json
檔案新增至共同作業分支中的根資料夾。 當您發佈時,Synapse Studio 會讀取此檔案、尋找欄位 publishBranch
,並將工作區範本檔案儲存至指定的位置。 如果分支不存在,Synapse Studio 會自動建立它。 此檔案的外觀範例如下:
{
"publishBranch": "workspace_publish"
}
Synapse Studio 一次只能有一個發佈分支。 當您指定新的發行分支時,將不會刪除原始發行分支。 如果您想要移除先前的發佈分支,請手動刪除該分支。
發佈程式碼變更
合併共同作業分支的變更之後,選取 [發佈 ] 以手動將共同作業分支中的程式代碼變更發佈至 Synapse 服務。
側邊窗格隨即開啟,您可以在其中確認發行分支和擱置中的變更正確。 確認變更之後,請選取 [ 確定 ] 以確認發佈。
重要
共同作業分支不代表服務中部署的內容。 共同作業分支 中的變更必須 手動發佈。
切換到不同的 Git 存放庫
若要切換至不同的 Git 存放庫,請移至 [原始檔控制] 下管理中樞中的 [Git 設定] 分頁。 選取 [中斷連線]。
輸入您的工作區名稱,然後選取 [ 中斷連線 ] 以移除與您的工作區相關聯的 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 模式:
清除快取並重新整理頁面。
登入您的 GitHub 帳戶。
過時的發佈分支
如果發佈分支與共同作業分支不同步,而且儘管有最近的發佈,但包含過期的資源,請嘗試遵循下列步驟:
移除目前的 Git 存放庫
使用相同的設定重新設定 Git,但請確定 已核取 [將現有的資源匯入存放庫 ],然後選擇相同的分支。
建立提取要求以合併共同作業分支的變更
不支援的功能
- Synapse Studio 不允許挑選認可或選擇性發佈資源。
- Synapse Studio 不支援自我自定義認可訊息。
- 根據設計,Studio 中的刪除動作會直接認可至 git