設定 Databricks Git 資料夾的私人 Git 連線能力 (Repos)

瞭解並設定 Databricks Git 資料夾的 Git 伺服器 Proxy,這是一項可設定的服務,可讓您將 Git 命令從 Databricks 工作區 Git 資料夾 Proxy 到 GitHub Enterprise Server、Azure DevOps Server、Bitbucket Server 和 GitLab 自我管理所服務的內部部署存放庫。

注意

在預覽期間設定 Databricks Git 伺服器 Proxy 的使用者應該升級叢集許可權,以獲得最佳效能。 請參閱 移除全域CAN_ATTACH_TO許可權

什麼是 Databricks Git 資料夾的 Git 伺服器 Proxy?

適用於 Git 資料夾的 Databricks Git 伺服器 Proxy 是一項功能,可讓您將 Git 命令從 Azure Databricks 工作區 Proxy 至內部部署 Git 伺服器。

Databricks Git 資料夾 (先前稱為 Repos) 代表已連線的 Git 存放庫作為資料夾。 這些資料夾的內容是透過將資料夾與連線的 Git 存放庫同步處理,以版本控制。 根據預設,Git 資料夾只能與公用 Git 提供者同步處理(例如公用 GitHub、GitLab、Azure DevOps 和其他提供者)。 不過,如果您裝載自己的內部部署 Git 伺服器(例如 GitHub Enterprise Server、Bitbucket Server 或 GitLab 自我管理),您必須使用 Git 伺服器 Proxy 搭配 Git 資料夾,以提供 Git 伺服器的 Databricks 存取權。 您的 Git 伺服器必須可從 Azure Databricks 數據平面存取(驅動程序節點)。

注意

目前,Databricks Git 資料夾只能包含 Databricks 筆記本和子資料夾,以及一組特定的其他資產類型。 如需目前支持的資產類型清單,請參閱 Git 與 Databricks Git 資料夾整合的限制和常見問題。

Databricks Git 資料夾的 Git Server Proxy 如何運作?

適用於 Databricks 的 Git 伺服器 Proxy Git 資料夾 Proxy 會從 Databricks 控制平面到 Databricks 工作區計算平面中執行的「Proxy 叢集」的 Git 命令。 在此內容中,Proxy 叢集是設定為將 Git 命令的 Proxy 服務從 Databricks Git 資料夾執行至自我裝載 Git 存放庫的叢集。 此 Proxy 服務會從 Databricks 控制平面接收 Git 命令,並將其轉送至您的 Git 伺服器實例。

下圖說明整體系統架構:

此圖顯示 Databricks Git 資料夾的 Git Server Proxy 如何設定為從客戶的計算平面執行

重要

Databricks 提供啟用筆記本 ,您可以執行 以將 Git 伺服器實例設定為 Databricks Git 資料夾的 Proxy 命令。 取得 GitHub 上的啟用筆記本。

目前,Git 伺服器 Proxy 不再需要 CAN_ATTACH_TO 所有用戶的許可權。 使用現有 Proxy 叢集的 管理員 現在可以修改叢集 ACL 許可權,以啟用此功能。 若要啟用該功能:

  1. 從提要欄位選取 [計算 ],然後按下 Kebab 功能表 您正在執行的 Git Server Proxy 計算專案旁的 Kebab 功能表:

    從提要欄位選取 [計算],選取 Git Proxy 伺服器計算資源右邊的 Kebab

  2. 從對話框中,移除 [所有使用者都可以附加至] 專案:

    在快顯的強制回應對話框中,按兩下 [所有使用者] 右邊的 [X],[可附加至]

如何? 為 Databricks Git 資料夾設定 Git Server Proxy 嗎?

本節說明如何準備 Git Server Proxy for Databricks Git 資料夾的 Git 伺服器實例、建立 Proxy,以及驗證您的設定。

開始之前

啟用 Proxy 之前,請考慮下列必要條件和規劃工作:

  • 您的工作區已啟用 Databricks Git 資料夾功能。
  • 您的 Git 伺服器實例可從 Azure Databricks 工作區的計算平面進行存取,並同時啟用 HTTPS 和個人存取令牌 (PAT)。

注意

適用於 Databricks 的 Git 伺服器 Proxy 可在您的VP 支援的所有區域中運作。

步驟 1:準備 Git 伺服器實例

若要設定 Git 伺服器實例:

  1. 提供 Proxy 叢集的驅動程式節點存取您的 Git 伺服器。

    您的企業 Git 伺服器可以有允許 allowlist 存取的 IP 位址。

    1. 為源自 Proxy 叢集的流量建立靜態輸出 IP 位址的關聯。 您可以使用 Azure 防火牆 或輸出設備來執行此動作
    2. 將上一個步驟中的IP位址新增至 Git 伺服器的允許清單。
  2. 將您的 Git 伺服器實例設定為允許 HTTPS 傳輸。

    • 針對 GitHub Enterprise,請參閱 GitHub Enterprise 說明中使用的遠端 URL。
    • 針對 Bitbucket,移至 [Bitbucket 伺服器管理] 頁面,然後選取 [伺服器設定]。 在 [HTTP(S) SCM 裝載] 區段中,啟用 已啟用 HTTP(S) 的 複選框。

步驟 2:執行啟用筆記本

若要啟用 Proxy:

  1. 以具有建立叢集訪問許可權的工作區管理員身分登入 Azure Databricks 工作區。

  2. 匯入此筆記本:

    為 Git 資料夾中的私人 Git 伺服器連線啟用 Databricks Git 資料夾的 Git 伺服器 Proxy。

  3. 選取[全部執行] 以執行下列工作:

    • 建立 名為 「Databricks Git Proxy」 的單一節點叢集 ,而不會自動終止。 這是「Proxy 叢集」,將處理 Git 命令,並將命令從 Azure Databricks 工作區轉送至內部部署 Git 伺服器。
    • 啟用功能旗標,控制 Databricks Git 資料夾中的 Git 要求是否透過叢集進行代理。

重要

您必須是工作區的系統管理員,且具有建立叢集的訪問許可權。

注意

您應該注意下列事項:

  • 執行額外的長時間執行的叢集來裝載 Proxy 軟體會產生額外的 DBU。 為了將成本降到最低,Notebook 會設定 Proxy 以使用具有廉價節點類型的單一節點叢集。 不過,您可能想要修改叢集選項,以符合您的需求。

步驟 3:驗證您的 Git 伺服器設定

若要驗證 Git 伺服器組態,請嘗試透過 Proxy 叢集複製裝載於私人 Git 伺服器上的存放庫。 成功的複製表示您已成功為工作區啟用 Git 伺服器 Proxy。

步驟 4:建立已啟用 Proxy 的存放庫

在使用者設定其 Git 認證之後,不需要採取進一步的步驟來建立或同步處理您的存放庫。 若要在 Databricks Git 資料夾中設定認證並建立存放庫,請參閱 設定 Git 認證和將遠端存放庫連線至 Azure Databricks

拿掉全域CAN_ATTACH_TO許可權

使用現有 Proxy 叢集的 管理員 現在可以修改叢集 ACL 許可權,以利用一般可用的 Git 伺服器 Proxy 行為。

如果您先前以 CAN_ATTACH_TO 許可權設定 Databricks Git 伺服器 Proxy,請使用下列步驟來移除這些許可權:

  1. 從提要欄位選取 [計算 ],然後按下 Kebab 功能表 您正在執行之 Git 伺服器 Proxy 的計算專案旁的 Kebab 功能表:

    從提要欄位選取 [計算],選取 Git Proxy 伺服器計算資源右邊的 Kebab

  2. 從對話框中,移除 [所有使用者都可以附加至] 專案:

    在快顯的強制回應對話框中,按兩下 [所有使用者] 右邊的 [X],[可附加至]

疑難排解

設定 Databricks Git 資料夾的 Git 伺服器 Proxy 時發生錯誤嗎? 以下是一些常見問題,以及更有效率地診斷它們的方法。

常見問題的檢查清單

開始診斷錯誤之前,請確認您已完成下列步驟:

  • 確認 Proxy 叢集正在執行中。
  • 確認您的 Databricks Git 資料夾使用者具有 Proxy 叢集的「附加」許可權。
  • 如果您尚未執行啟用筆記本,請再次執行啟用筆記本並擷取結果。 如果您無法對問題進行偵錯,Databricks 支援可以檢閱結果。 您可以將啟用筆記本匯出並傳送為 DBC 封存。

檢查 Proxy 叢集上的記錄

Proxy 叢集上的 檔案 /databricks/git-proxy/git-proxy.log 包含可用於偵錯用途的記錄。

記錄檔應該以行 Data-plane proxy server binding to ('', 8000)… 開頭 如果不是,這表示 Proxy 伺服器未正確啟動。 請嘗試重新啟動叢集,或刪除您建立的叢集,然後再次執行啟用筆記本。

如果記錄檔從這一行開始,請檢閱在 Databricks Git 資料夾中由 Git 作業起始之每個 Git 要求的記錄語句。

例如:

  do_GET: https://server-address/path/to/repo/info/refs?service=git-upload-pack 10.139.0.25 - - [09/Jun/2021 06:53:02] /
  "GET /server-address/path/to/repo/info/refs?service=git-upload-pack HTTP/1.1" 200`

寫入此檔案的錯誤記錄對於協助您或 Databricks 支援偵錯問題很有用。

常見的錯誤訊息及其解決方式

  • 無法建立安全連線,因為 SSL 問題

    可能會看到下列錯誤:

      https://git.consult-prodigy.com/Prodigy/databricks_test: Secure connection to https://git.consult-prodigy.com/Prodigy/databricks_test could not be established because of SLL problems
    

    這通常表示您使用需要特殊SSL憑證的存放庫。 檢查 Proxy 叢集上的檔案內容 /databricks/git-proxy/git-proxy.log 。 如果它指出憑證驗證失敗,則必須將授權憑證新增至系統憑證鏈結。 首先,擷取跟證書(使用 瀏覽器 或其他選項),並將其上傳至 DBFS。 然後,編輯 Git 資料夾 Git Proxy 叢集,以使用 GIT_PROXY_CA_CERT_PATH 環境變數指向跟證書檔案。 如需編輯叢集環境變數的詳細資訊,請參閱 環境變數

    完成該步驟之後,請重新啟動叢集。

    您設定 Git Proxy 環境變數的 Databricks 強制回應對話方塊

  • 無法複製存放庫,並出現錯誤「遺失/無效的 Git 認證」

    首先,請檢查您已在使用者 設定 中設定 Git 認證。

    您可能會遇到此錯誤:

      Error: Invalid Git credentials. Go to User Settings -> Git Integration and check that your personal access token or app password has the correct repo access.
    

    如果您的組織使用 SAML SSO,請確定令牌已獲得授權(這可以從 Git 伺服器的個人存取令牌 (PAT) 管理頁面完成)。

常見問題集

Git 伺服器 Proxy 的安全性影響為何?

最重要的事項是:

  • Proxy 不會影響 Databricks 控制平面的安全性架構。
  • 每個工作區只能有一個 Git Proxy 伺服器叢集。

是。 在目前的版本中,您的 Azure Databricks 工作區不會區分 Proxy 與非 Proxy 存放庫。

Git Proxy 功能是否與其他 Git 企業伺服器提供者搭配運作?

Databricks Git 資料夾支援 GitHub Enterprise、Bitbucket Server、Azure DevOps Server 和 GitLab 自我管理。 如果其他企業 Git 伺服器提供者符合常見的 Git 規格,也應該正常運作。

Databricks Git 資料夾是否支援 GPG 簽署認可?

否。

Databricks Git 資料夾是否支援 Git 作業的 SSH 傳輸?

否。 僅支援 HTTPS。

是否支援在 Git 伺服器上使用非預設 HTTPS 連接埠?

目前,啟用筆記本會假設您的 Git 伺服器使用預設 HTTPS 連接埠 443。 您可以設定環境變數,以慣用的埠 GIT_PROXY_CUSTOM_HTTP_PORT 值覆寫埠值。

您可以共用多個工作區的一個 Proxy,還是每個工作區需要一個 Proxy 叢集?

每個 Azure Databricks 工作區都需要一個 Proxy 叢集。

Proxy 是否使用舊版單一筆記本版本設定?

否,Proxy 不適用於舊版單一筆記本版本設定。 用戶必須移轉至 Databricks Git 資料夾版本設定。

Databricks 可以隱藏 Proxy 的 Git 伺服器 URL 嗎? 用戶可以輸入原始的 Git 伺服器 URL,而不是 Proxy URL 嗎?

是這兩個問題。 使用者不需要調整其 Proxy 的行為。 使用目前的 Proxy 實作,Databricks Git 資料夾的所有 Git 流量都會透過 Proxy 路由傳送。 使用者輸入一般 Git 存放庫 URL , 例如 https://git.company.com/org/repo-name.git

使用者使用 Git URL 的頻率為何?

一般而言,當使用者建立新的存放庫或簽出尚未取出的現有存放庫時,使用者只會新增 Git URL。

此功能會以透明方式將驗證數據 Proxy 至 Git 伺服器嗎?

是,Proxy 會使用用戶帳戶的 Git 伺服器令牌向 Git 伺服器進行驗證。

是否有 Databricks 存取 Git 伺服器程式代碼?

Azure Databricks Proxy 服務會使用使用者提供的認證存取 Git 伺服器上的 Git 存放庫,並將存放庫中的任何程式碼檔案與存放庫同步處理。 存取受限於使用者提供的個人存取令牌 (PAT) 中指定的許可權。