本文件說明如何將遠端存放區連結至 Dataform 存放區。連結存放區後,您在 Dataform 開發工作區中所做的變更,就能推送至遠端 Git 存放區,並從該存放區擷取。
您可以透過 HTTPS 或 SSH 連線至遠端存放區。
下表列出支援的 Git 供應工具和可用於其存放區的連線方法:
Git 供應商 | 連線方法 |
---|---|
Azure DevOps 服務 | SSH |
Bitbucket | SSH |
GitHub | SSH 或 HTTPS |
GitLab | SSH 或 HTTPS |
事前準備
- 如果您的機構或專案使用
dataform.restrictGitRemotes
機構政策限制遠端 Git 存放區,請務必先將遠端 Git 存放區新增至政策的許可清單,再建立要連結至遠端存放區的 Dataform 存放區。詳情請參閱「限制遠端存放區」。 - 選取或建立 Dataform 存放區。您稍後需要使用這項資訊,將密鑰與預設 Dataform 服務帳戶共用。
必要的角色
如要取得將 Dataform 存放區連結至遠端 Git 存放區所需的權限,請要求管理員為您授予存放區的 Dataform 管理員 (roles/dataform.admin
) IAM 角色。如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和機構的存取權」。
透過 SSH 連結遠端存放區
如要透過 SSH 連線至遠端存放區,您必須產生 SSH 金鑰和 Secret Manager 密鑰。安全殼層金鑰包含公開安全殼層金鑰和私密安全殼層金鑰。您必須將公開安全殼層金鑰提供給 Git 供應者,並使用私人安全殼層金鑰建立 Secret Manager 機密。然後將密鑰分享給預設的 Dataform 服務帳戶。
Dataform 會使用含有私密安全殼層金鑰的 Secret 登入 Git 供應商,代表開發人員提交變更。Dataform 會使用開發人員的 Google Cloud 電子郵件地址進行這些提交,方便您瞭解每個提交的作者。
如要透過 SSH 將遠端存放區連結至 Dataform 存放區,請按照下列步驟操作:
在 Git 供應工具中執行下列操作:
Azure DevOps 服務
- 在 Azure DevOps 服務中建立私密安全殼層金鑰。
- 將公開安全殼層金鑰上傳至 Azure DevOps Services 存放區。
Bitbucket
- 在 Bitbucket 中建立私密安全殼層金鑰。
- 將公開安全殼層金鑰上傳至 Bitbucket 存放區。
GitHub
- 在 GitHub 中建立私密安全殼層 (SSH) 金鑰。
- 將 GitHub 公開安全殼層 (SSH) 金鑰上傳至 GitHub 存放區。
GitLab
- 在 GitLab 中建立私密安全殼層金鑰。
- 將 GitLab 公開安全殼層金鑰上傳至 GitLab 存放區。
在 Secret Manager 中建立密鑰,並將私密安全殼層金鑰設為密鑰值。
-
預設的 Dataform 服務帳戶格式如下:
service-PROJECT_NUMBER@gcp-sa-dataform.iam.gserviceaccount.com
-
在 Google Cloud 控制台中,前往「Dataform」頁面。
選取要連結至遠端存放區的 Dataform 存放區。
在存放區頁面中,依序按一下「設定」>「連結 Git」。
在「Link to remote repository」窗格中的「Remote Git repository URL」欄位中,輸入遠端 Git 存放區的網址,結尾為
.git
。遠端 Git 存放區的網址必須採用下列其中一種格式:
- 絕對網址:
ssh://git@{host_name}[:{port}]/{repository_path}
,port
為選用項目。 - 類似 SCP 的網址:
git@{host_name}:{repository_path}
。
- 絕對網址:
在「Default remote branch name」欄位中,輸入遠端 Git 存放區的主要開發分支版本名稱。
在「Secret」下拉式選單中,選取遠端 Git 存放區的密鑰。
在「SSH 公開主機金鑰值」欄位中,輸入 Git 供應器的公開主機金鑰。
Azure DevOps 服務
SSH 公開主機金鑰值必須採用
known_hosts
檔案格式。這個值必須包含以base64
格式編碼的演算法和公開金鑰,但不含主機名稱或 IP,格式如下:ALGORITHM BASE64_KEY_VALUE
如要擷取 Azure DevOps 服務的公開主機金鑰,請在終端機中執行
ssh-keyscan -t rsa ssh.dev.azure.com
指令。Bitbucket
SSH 公開主機金鑰值必須採用
known_hosts
檔案格式。這個值必須包含以base64
格式編碼的演算法和公開金鑰,但不含主機名稱或 IP,格式如下:ALGORITHM BASE64_KEY_VALUE
如要擷取 Bitbucket 公開主機金鑰,請參閱「設定 SSH」。
GitHub
SSH 公開主機金鑰值必須採用
known_hosts
檔案格式。這個值必須包含以base64
格式編碼的演算法和公開金鑰,但不含主機名稱或 IP,格式如下:ALGORITHM BASE64_KEY_VALUE
如要擷取 GitHub 公開主機金鑰,請參閱 GitHub 的安全殼層 (SSH) 金鑰指紋。
GitLab
SSH 公開主機金鑰值必須採用
known_hosts
檔案格式。這個值必須包含以base64
格式編碼的演算法和公開金鑰,但不含主機名稱或 IP,格式如下:ALGORITHM BASE64_KEY_VALUE
如要擷取 GitLab 公開主機金鑰,請參閱 SSH
known_hosts
項目。按一下「Link」(連結)。
透過 HTTPS 連結遠端存放區
如要透過 HTTPS 連線至遠端存放區,您必須使用個人存取權杖建立 Secret Manager 密鑰,並將密鑰與預設的 Dataform 服務帳戶共用。
接著,Dataform 會使用存取權杖登入 Git 供應商,代表開發人員提交變更。Dataform 會使用開發人員的電子郵件地址進行這些提交,方便您瞭解每項提交的作者。 Google Cloud
如要透過 HTTPS 將遠端存放區連結至 Dataform 存放區,請按照下列步驟操作:
在 Git 供應工具中執行下列操作:
GitHub
GitLab
在 GitLab 中建立 GitLab 個人存取權杖。
將符記命名為
dataform
。GitLab 個人存取權杖的名稱必須為
dataform
。將
api
、read_repository
和write_repository
權限授予 Dataform。根據需求設定權杖到期時間。
在 Secret Manager 中建立密鑰,其中包含遠端存放區的個人存取權杖。
-
預設的 Dataform 服務帳戶格式如下:
service-PROJECT_NUMBER@gcp-sa-dataform.iam.gserviceaccount.com
在 Google Cloud 控制台中,前往「Dataform」頁面。
選取要連結至遠端存放區的 Dataform 存放區。
在存放區頁面中,依序按一下「設定」>「連結 Git」。
在「Link to remote repository」窗格中的「Remote Git repository URL」欄位中,輸入遠端 Git 存放區的網址,結尾為
.git
。遠端 Git 存放區的網址不得包含使用者名稱或密碼。
在「Default remote branch name」欄位中,輸入遠端 Git 存放區的主要開發分支版本名稱。
在「Secret」下拉式選單中,選取遠端 Git 存放區的密鑰。
按一下「Link」(連結)。
編輯遠端存放區連線
如要編輯 Dataform 存放區與遠端 Git 存放區之間的連線,請按照下列步驟操作:
在 Google Cloud 控制台中,前往「Dataform」頁面。
按一下要編輯的存放區。
在「Repository」頁面中,依序按一下「Settings」>「Edit Git connection」。
在「Link to remote repository」窗格中,編輯連線設定。
按一下「更新」。
後續步驟
如要進一步瞭解 Dataform 存放區,請參閱「建立存放區」。
如要建立開發工作區,請參閱「建立工作區」。
如要瞭解如何排解遠端存放區連線問題,請參閱「排解 Dataform 問題」。