本文档介绍如何将远程代码库连接到 Dataform 代码库。连接代码库后,您可以在 Dataform 开发工作区中进行更改,然后将这些更改推送到远程 Git 代码库或从远程 Git 代码库中拉取这些更改。
您可以通过 HTTPS 或 SSH 连接远程仓库。
下表列出了受支持的 Git 提供商以及可用于其代码库的连接方法:
| Git 提供商 | 连接方法 |
|---|---|
| Azure DevOps Services | SSH |
| Bitbucket | Developer Connect(推荐)、SSH |
| GitHub | Developer Connect(推荐)、SSH 或 HTTPS |
| GitLab | Developer Connect(推荐)、SSH 或 HTTPS |
准备工作
- 如果您的组织或项目通过
dataform.restrictGitRemotes组织政策限制远程 Git 代码库,请确保在创建要连接到远程代码库的 Dataform 代码库之前,将远程 Git 代码库添加到政策中的许可名单。如需了解详情,请参阅限制远程代码库。 选择或创建 Dataform 代码库。您稍后需要使用该代码库与默认 Dataform 服务代理共享 Secret。
确保您在 Git 提供商中拥有必要的权限,并且您的 Dataform 代码库位于受支持的区域中。
如果您要将 Developer Connect 连接到 Bitbucket 代码库,请确保授权者的访问令牌具有对代码库的写入权限,以便 Dataform 可以推送更改。如需了解详情,请参阅创建访问令牌。
网络连接要求和限制
在将远程 Git 代码库连接到 Dataform 之前,请确保您的网络配置符合所选连接方法的要求。
专用网络连接
Dataform 不支持使用 HTTPS 或 SSH 直接连接到本地 Git 主机或专用网络中代码库的专用 IP 地址(例如 10.x.x.x、172.16.x.x-172.31.x.x 或 192.168.x.x)。这包括使用虚拟私有云 (VPC)、VPN 或 Cloud Interconnect 进行的访问。
如需连接到专用网络中的代码库,或者您的 Git 主机位于防火墙后,您必须使用 Developer Connect 进行连接。
公共网络连接
如需使用 HTTPS 或 SSH 连接远程 Git 代码库,您的 Git 主机必须具有公共 IP 地址。
如果您使用 HTTPS 或 SSH 连接到具有公共 IP 地址的受保护远程代码库,则必须将所需的 Dataform 出站 IP 地址范围添加到防火墙规则中。
VPC Service Controls 要求
如果您的项目使用 VPC Service Controls,您必须设置 dataform.restrictGitRemotes 组织政策才能连接到任何第三方 Git 代码库。如需了解详情,请参阅限制远程代码库。
所需的角色
如需获得将 Dataform 代码库连接到远程 Git 代码库所需的权限,请让您的管理员为您授予代码库的以下 IAM 角色:
- Dataform Admin (
roles/dataform.admin) - Developer Connect Admin (
roles/developerconnect.admin)
如需详细了解如何授予角色,请参阅管理对项目、文件夹和组织的访问权限。
如需使用 Developer Connect 连接远程代码库,请向默认 Dataform 服务代理授予 Developer Connect Token Accessor (roles/developerconnect.tokenAccessor) 和 Developer Connect Git Proxy User (roles/developerconnect.gitProxyUser) 角色。默认 Dataform 服务代理 ID 采用以下格式:
service-PROJECT_NUMBER@gcp-sa-dataform.iam.gserviceaccount.com
使用 Developer Connect 连接远程仓库
Developer Connect 提供了一个引导式界面,可简化外部 Git 提供商与 Dataform 代码库的集成,无需手动管理密钥。
通过使用 Developer Connect,您可以连接到私有托管网络(例如本地环境或虚拟私有云 [VPC])中的远程代码库,而无需将其暴露给公共互联网。
为专用网络连接做好准备
如果您要连接到专用网络中的远程仓库,请确保在开始设置之前准备好以下信息和资源:
- 指向内部 Git 主机的 Service Directory 服务的命名空间和服务名称。
- 如果您的主机使用私有或自签名证书授权机构,则需要提供 PEM 格式的证书授权机构证书(大小上限为 10 KB)。
- 验证 Git 主机的 SSL 证书是否包含与主机 URI 匹配的正文备用名称 (SAN)。
如需详细了解如何为私有托管网络配置连接,请参阅以下内容:
- 配置和使用 Developer Connect 代理
- 连接到专用网络中的 GitHub Enterprise
- 连接到专用网络中的 GitLab Enterprise 代码库
- 连接到专用网络中托管的 Bitbucket 数据中心代码库
创建新的 Developer Connect 连接
如需将远程仓库关联到新的 Developer Connect 连接,请选择以下选项之一:
Bitbucket
在 Google Cloud 控制台中,前往 Dataform 页面。
选择您的代码库。
前往设置,然后点击与 Git 建立连接。
在关联到远程代码库窗格的远程 Git 代码库协议部分,选择 Developer Connect。
在代码库选择菜单中,点击关联新代码库。
在通过 Developer Connect 关联 Git 代码库窗格中,选择创建新连接。
选择 Bitbucket 作为提供方。
指定连接区域和连接名称。
提供工作区名称、授权方访问令牌和读取访问令牌。
点击继续,然后选择要关联的远程代码库,并点击关联。
在 Dataform 中,选择您的远程仓库和默认分支。
如需完成设置,请点击关联。
GitHub
在 Google Cloud 控制台中,前往 Dataform 页面。
选择您的代码库。
前往