你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
适用于:
Azure 数据工厂
Azure Synapse Analytics
提示
Microsoft Fabric 中的 Data Factory 是下一代 Azure 数据工厂,具有更加简化的架构、内置人工智能和新功能。 如果不熟悉数据集成,请从Fabric数据工厂开始。 现有 ADF 工作负载可以升级到 Fabric,以跨数据科学、实时分析和报告访问新功能。
默认情况下,Azure 数据工厂用户界面体验 (UX) 直接面向数据工厂服务。 此体验具有以下限制:
- 数据工厂服务不包括存储所做的更改的 JSON 实体的存储库。 保存更改的唯一方法是通过“全部发布”按钮将所有更改都直接发布到数据工厂服务。
- 数据工厂服务未优化协作和版本控制。
- 不包括部署数据工厂本身所需的Azure 资源管理器模板。
为了提供更好的创作体验,Azure 数据工厂允许使用Azure Repos或GitHub配置 Git 存储库。 Git 是一个支持简化变更跟踪和协作的版本控制系统。 本文将概述如何配置和运行 Git 存储库,并重点介绍最佳做法和故障排除指南。
还可以参考 Azure 数据工厂 中的连续集成和交付 (CI/CD),以详细了解更大的 CI/CD 模式,其中源代码管理是关键方面。
注意
我们已经在世纪互联运营的Microsoft Azure和Azure Gov上添加了GitHub公共支持。 请参阅公告博客。
若要详细了解如何Azure 数据工厂与 Git 集成,请观看以下 15 分钟的教程视频:
Git 集成的优点
以下列出的是 Git 集成在创作体验中提供的一些优势:
-
源代码管理:随着数据工厂工作负载变得至关重要,你可能需要将工厂与 Git 集成,以应用多项源代码管理的好处,例如:
- 跟踪/审核更改的功能。
- 还原导致 bug 的更改的功能。
- 部分保存:在通过数据工厂服务进行创作时,你无法将更改保存为草稿,并且所有发布必须通过数据工厂验证。 无论您的数据流管道是否完成,还是您只是不希望在计算机崩溃时丢失更改,Git 集成都允许您对数据工厂资源进行增量更改,无论这些资源处于何种状态。 通过配置 git 存储库,可以保存更改,从而允许你仅在测试更改达到满意程度后再进行发布。
- 协作和控制:如果有多个团队成员参与同一工厂,你可能需要通过代码评审流程让团队成员相互协作。 你还可以对工厂进行设置,使参与者拥有不同的权限。 可以仅允许某些团队成员通过 Git 进行更改,并且只允许团队中的某些人将更改“发布”到工厂。
-
更好的 CI/CD:如果要通过持续交付过程部署到多个环境中,git 集成可以简化特定的操作。 部分此类操作包括:
- 配置您的发布管道,使其在对“开发”工厂进行任何更改后立即自动触发。
- 自定义工厂中可用作资源管理器模板的参数的属性。 仅将所需属性集保留为参数并将其他所有内容进行硬编码可能会非常有用。
- 性能更好: 具备 git 集成的普通工厂的加载速度要比通过数据工厂服务进行创作的快 10 倍。 性能提升的原因在于资源是通过 Git 下载的。
注意
在配置 Git 存储库时,Azure 数据工厂 UX 禁用了直接使用数据工厂服务进行创作的功能。 通过 PowerShell 或 SDK 所做的更改会直接发布到数据工厂服务,而不会进入 Git。
连接到 Git 存储库
可通过四种不同的方法将 Git 存储库连接至您的数据工厂,无论是对于 Azure Repos 还是 GitHub。 连接到 Git 存储库后,可以在“源代码控制”部分下“Git配置”中的管理中心内查看和管理配置。
配置方法 1:主页
在Azure 数据工厂主页中,选择顶部设置代码存储库。
配置方法 2:编辑画布
在 Azure 数据工厂 UX 创作画布中,选择 Data Factory 下拉菜单,然后选择 设置代码存储库。
配置方法 3:管理中心
转到 Azure 数据工厂 Studio 中的管理中心。 在“源代码管理”部分中选择“Git 配置”。 如果没有连接任何存储库,请选择“配置”。
配置方法 4:在创建工厂期间
在 Azure 门户中创建新的数据工厂时,可以在 Git 配置选项卡中配置 Git 存储库信息。
注意
在 Azure 门户中配置 git 时,必须手动输入项目名称和存储库名称等设置,而不是成为下拉列表的一部分。
使用 Azure Repos Git 集成进行创作
使用 Azure Repos Git 集成进行创作允许在创作数据工厂管道时进行源代码管理和协作。 可以将数据工厂与Azure Repos Git 组织存储库相关联,以便进行源代码管理、协作、版本控制等。 单个Azure Repos Git 组织可以有多个存储库,但Azure Repos Git 存储库只能与一个数据工厂相关联。 如果没有Azure Repos组织或存储库,请按照说明创建资源。
注意
可以在 Azure Repos Git 存储库中存储脚本和数据文件。 但是,必须手动将文件上传到Azure 存储。 数据工厂管道不会自动将存储在 Azure Repos Git 存储库中的脚本或数据文件上传到Azure 存储。 其他文件(例如 ARM 模板、脚本或配置文件)可以存储在映射的文件夹外部的存储库中。 如果您执行此操作,请记住,需要额外的任务来生成/部署并与存储在映射到Azure DevOps文件夹之外的文件进行交互。
Azure Repos 设置
配置窗格分步介绍如何配置以下每项代码存储库设置:
| 设置 | 说明 | 值 |
|---|---|---|
| 存储库类型 | Azure Repos代码存储库的类型。 |
Azure DevOps Git 或GitHub |
| Microsoft Entra ID | 您的Microsoft Entra租户名称。 | <your tenant name> |
| Azure Repos Organization | 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 协作分支。 该名称默认为 main。 如果希望从其他分支发布资源,可更改此设置。 |
<your collaboration branch name> |
| 发布分支 | 发布分支是您的存储库中用于存储和更新发布相关 ARM 模板的分支。 该名称默认为 adf_publish。 |
<your publish branch name> |
| 根文件夹 | Azure Repos 协作分支中的根文件夹。 | <your root folder name> |
| 将现有的数据工厂资源导入存储库。 | 指定是否将现有数据工厂资源从 UX Authoring 画布导入到 Azure Repos Git 存储库中。 选择相应的框以将你的数据工厂资源导入 JSON 格式关联的 Git 存储库。 此操作单独导出每个资源(即,链接的服务和数据集导出到单独的 JSON)。 如果未选中此框,不能导入现有的资源。 | 已选择(默认) |
| 要将资源导入到的分支 | 指定要将数据工厂资源(管道、数据集、链接服务等)导入哪个分支。 可将资源导入以下分支之一:a. 协作 b. 新建;c. 使用现有 |
注意
如果使用的是 Microsoft Edge,并且看不到 Azure DevOps 帐户下拉列表中的任何值,请将 https://*.visualstudio.com 添加到受信任的站点列表中。
编辑存储库设置
如果需要对配置的 Azure Repos Git 存储库的设置进行任何调整,可以选择Edit。
可以更新发布分支,并决定是否从 ADF 工作室禁用发布按钮。 如果选择在工作室中禁用发布按钮,则工作室中的发布按钮将灰显。 这有助于避免覆盖上次自动发布部署。
使用不同的 Microsoft Entra 租户
Azure Repos Git 存储库可以位于不同的Microsoft Entra租户中。 若要指定其他Microsoft Entra租户,必须具有你正在使用的Azure订阅的管理员权限。 有关详细信息,请参阅更改订阅管理员。
重要
若要连接到另一个Microsoft Entra ID,登录的用户必须是该 Active Directory 的一部分。
使用您的个人微软账户
要通过 Microsoft 账户进行 Git 集成,您可以将个人的 Azure 存储库链接到组织的 Active Directory。
将您的个人 Microsoft 账户作为来宾添加到组织的“Active Directory”。 有关详细信息,请参阅 Azure 门户中的 Add Microsoft Entra B2B 协作用户。
使用您的个人 Microsoft 帐户登录到 Azure 门户。 然后切换到组织的Active Directory。
转到“Azure DevOps”部分,可在其中查看个人存储库。 选择存储库并连接到Active Directory。
执行这些配置步骤之后,在数据工厂 UI 中设置 Git 集成时个人存储库可用。
有关将Azure Repos连接到组织的Active Directory的详细信息,请参阅 将Azure DevOps组织连接到 Microsoft Entra ID。
使用 GitHub 集成进行创作
使用 GitHub 集成进行创作允许在创作数据工厂管道时进行源代码管理和协作。 可以将数据工厂与GitHub帐户存储库相关联,以便进行源代码管理、协作、版本控制。 单个GitHub帐户可以托管多个存储库,每个存储库都可以与多个数据工厂相关联。 通过将每个数据工厂配置为使用同一存储库中的不同分支,可以维护单独的环境(例如开发、暂存和生产),同时独立管理其配置。 如果没有GitHub帐户或存储库,请按照说明创建资源。
与数据工厂的GitHub集成支持公共GitHub(即https://github.com)、GitHub Enterprise Cloud 和 GitHub Enterprise Server。 只要对GitHub中的存储库具有读取和写入权限,就可以在数据工厂中使用公共和专用GitHub存储库。 要连接公共存储库,请选择“使用链接存储库”选项,因为它们在“存储库名称”下拉菜单中不可见。 ADF 的 GitHub 企业服务器集成仅适用于 正式支持的 GitHub enterprise server。
对于GitHub组织帐户拥有的存储库,管理员必须授权 ADF 应用。 对于GitHub用户帐户拥有的存储库,至少具有协作者权限的用户可以授权 ADF 应用。 此权限不会授予 ADF 应用直接访问该帐户/组织拥有的所有存储库的权限,而仅允许 ADF 应用根据用户访问权限代表用户访问存储库。
注意
如果您使用 Microsoft Edge,GitHub Enterprise 版本低于 2.1.4 的企业版与其不兼容。 GitHub 官方支持 >=3.0,所有这些应该都适用于 ADF。 随着GitHub更改其最低版本,ADF 支持的版本也会更改。
GitHub设置
注意
如果遇到错误 无法列出GitHub存储库。请确保帐户名称正确,并且你有权限执行操作。,请确认使用的是正确的所有者名称,而不是GitHub存储库的URL。
配置窗格显示以下GitHub存储库设置:
| 设置 | 说明 | 值 |
|---|---|---|
| 存储库类型 | Azure Repos代码存储库的类型。 | GitHub |
| 使用 GitHub Enterprise Server | 选中GitHub Enterprise Server 的复选框。 | 未选择(默认值) |
| GitHub Enterprise Server URL | GitHub 企业版根网址(本地 GitHub 企业版服务器必须为 HTTPS)。 例如:https://github.mydomain.com。 仅当选择了 Use GitHub Enterprise Server 时才是必需的 |
<your GitHub Enterprise Server URL> |
| GitHub存储库所有者 | 拥有该存储库的GitHub组织或账户。 可从 https://github.com/{owner}/{repository name} 找到此名称。 导航到此页面会提示你为你的 GitHub 组织或帐户输入 GitHub OAuth 凭据。 如果选择 使用 GitHub Enterprise Server,将显示一个对话框,用于输入访问令牌。 | <your GitHub repository owner name> |
| 存储库名称 | GitHub代码存储库名称。 GitHub帐户包含用于管理源代码的 Git 存储库。 可以创建新存储库,或使用帐户中现有的存储库。 选择 Select 存储库时指定GitHub代码存储库名称。 | <your repository name> |
| Git 存储库链接 | 您的GitHub代码存储库链接。 当选择 使用存储库链接 时,指定您的 GitHub 代码存储库链接。 | <your repository link> |
| 协作分支 | 用于发布的您的GitHub协作分支。 默认设置为 main。 如果希望从其他分支发布资源,可更改此设置。 还可在此处创建新的协作分支。 | <your collaboration branch> |
| 发布分支 | 存储和更新发布相关 ARM 模板的存储库中的分支。 | <your publish branch name> |
| 根文件夹 | GitHub协作分支中的根文件夹。 | <your root folder name> |
| 将现有资源导入到存储库中 | 指定是否将现有数据工厂资源从 UX 创作画布导入GitHub存储库。 选择相应的框以将你的数据工厂资源导入 JSON 格式关联的 Git 存储库。 此操作单独导出每个资源(即,链接的服务和数据集导出到单独的 JSON)。 如果未选中此框,不能导入现有的资源。 | 已选择(默认) |
| 将资源导入此分支 | 指定要将数据工厂资源(管道、数据集、链接服务等)导入哪个分支。 |
编辑存储库设置
如果需要对配置的GitHub存储库的设置进行任何调整,可以选择Edit。
可以更新发布分支,并决定是否从 ADF 工作室禁用发布按钮。 如果选择在工作室中禁用发布按钮,则工作室中的发布按钮将灰显。 这有助于避免覆盖上次自动发布部署。
GitHub组织
连接到GitHub组织需要组织授予对Azure 数据工厂的权限。 在组织中拥有 ADMIN 权限的用户必须执行以下步骤,才能允许数据工厂进行连接。
首次在 Azure 数据工厂 中连接到 Public GitHub 或 GitHub Enterprise Cloud
如果首次从 Azure 数据工厂 连接到公共GitHub或 GitHub Enterprise Cloud,请执行以下步骤以连接到GitHub组织。
- 在 Git 配置窗格中,在 GitHub 帐户字段中输入组织名称。 将显示登录GitHub的提示。
- 使用用户凭据登录。
- 系统会要求将Azure 数据工厂授权为名为 AzureDataFactory 的应用程序。 在此屏幕上,你会看到一个选项,用于授予 ADF 对组织的访问权限。 如果未看到授予权限的选项,请让管理员通过GitHub手动授予权限。
按照这些步骤操作后,工厂可以连接到组织中的公用和专用存储库。 如果无法进行连接,请尝试清除浏览器缓存,然后重试。
已使用个人帐户连接到公共GitHub或GitHub企业云
如果已连接到公共GitHub或GitHub企业云,并且仅授予访问个人帐户的权限,请按照以下步骤向组织授予权限。
转到GitHub并打开 Settings。
选择“应用程序”。 在“授权的 OAuth 应用”选项卡中,应会看到“AzureDataFactory”。
选择此应用程序,并授予其对组织的访问权限。
按照这些步骤操作后,工厂可以连接到组织中的公用和专用存储库。
连接到 GitHub Enterprise Server
如果连接到 GitHub Enterprise Server,则需要使用个人访问令牌进行身份验证。 在创建个人访问令牌中了解如何创建个人访问令牌。
注意
GitHub企业服务器位于自承载的私有环境中,因此在使用此身份验证时,您需要完全控制防火墙、网络策略和VPN。 有关详细信息,请参阅 About GitHub Enterprise Server。
已知GitHub限制
可以在GitHub存储库中存储脚本和数据文件。 但是,必须手动将文件上传到Azure 存储。 数据工厂管道不会自动将存储在GitHub存储库中的脚本或数据文件上传到Azure 存储。
2.14.0 或更旧版本的 GitHub Enterprise 在 Microsoft Edge 浏览器中不兼容。
GitHub与数据工厂视觉对象创作工具的集成仅适用于数据工厂的正式发布版本。
连接到 Azure DevOps Server 2022
如果连接到 Azure DevOps Server 2022,则需要使用个人访问令牌进行身份验证。 在此处了解如何创建个人访问令牌。
通过提供 Azure DevOps Server URL 和 Azure DevOps Project Collection,连接到本地 Azure DevOps
为代码提供访问权限范围为“读/写”的令牌。
版本控制
版本控制(也称为源代码管理)系统允许开发人员协作处理代码并跟踪对基本代码所做的更改。 源代码管理是用于多开发人员项目的重要工具。
创建功能分支
与数据工厂关联的每个Azure Repos Git 存储库都有一个协作分支。 (默认协作分支为 main)。 用户还可以通过单击分支下拉列表中的“+ 新建分支”来创建功能分支。
出现“新建分支”窗格后,输入功能分支的名称,然后选择一个分支作为工作的基础。
准备好将功能分支的更改合并到协作分支时,单击分支下拉列表并选择“创建拉取请求”。 此操作将转到 Azure Repos Git,在此可创建拉取请求、进行代码评审,并将更改合并到协作分支。 (main 是默认值)。 只能从协作分支发布至数据工厂服务。
配置发布设置
默认情况下,数据工厂将生成已发布工厂的资源管理器模板,并将其保存到名为 adf_publish 的分支中。 若要配置自定义发布分支,请将 publish_config.json 文件添加到协作分支的根文件夹中。 发布时,ADF 读取此文件,查找字段 publishBranch,并将所有资源管理器模板保存到指定位置。 如果该分支不存在,数据工厂会自动创建它。 此文件的外观类似如下示例:
{
"publishBranch": "factory/adf_publish"
}
Azure 数据工厂一次只能有一个发布分支。 当指定新的发布分支,数据工厂不会删除以前的发布分支。 如果想要删除以前的发布分支,请手动将其删除。
注意
加载工厂时,数据工厂仅读取 publish_config.json 文件。 如果已在门户中加载工厂,请刷新浏览器,以便所做的更改生效。
发布代码更改
在将更改合并到协作分支(默认为 main)后,单击“发布”,以将主分支中的代码更改手动发布到数据工厂服务中。
此时会打开一个侧窗格,你可以在其中确认发布分支和挂起的更改是否正确。 验证更改后,单击“确定”以确认发布。
重要
主分支并不代表数据工厂服务中部署的内容。 必须将主分支手动发布到 Data Factory 服务。
Git 集成的最佳做法
权限
通常,你不希望每个团队成员都有更新数据工厂的权限。 建议使用以下权限设置:
- 所有团队成员都应对数据工厂具有读取权限。
- 只允许选定的一组人员发布到数据工厂。 为此,他们必须在包含数据工厂的资源组上具有“数据工厂参与者”角色。 有关权限的详细信息,请参阅 Azure 数据工厂 的角色和权限。
建议不要允许直接签入到协作分支。 此限制有助于防止出现漏洞,因为每个签入都将经历创建功能分支中描述的拉取请求审核流程。
使用来自Azure 密钥保管库的密码
建议使用 Azure 密钥保管库 存储数据工厂链接服务的任何连接字符串或密码或托管标识身份验证。 出于安全原因,数据工厂不在 Git 中存储机密。 对包含密码等机密的链接服务所做的任何更改都会立即发布到Azure 数据工厂服务。
使用密钥保管库或 MSI 身份验证还可以简化持续集成和部署,因为无需在资源管理器模板部署期间提供这些机密。
Git 集成故障排查
过时的发布分支
下面是一些可能导致发布分支过时的示例情形:
- 用户有多个分支。 在一个功能分支中,用户删除了一个与 AKV 不关联的链接服务(无论是否在 Git 中,非 AKV 链接服务都会立即发布),并且从未将功能分支合并到协作分支中。
- 用户使用 SDK 或 PowerShell 修改了数据工厂
- 用户已将所有资源移动到新的分支,并尝试首次发布。 导入资源时应手动创建链接服务。
- 用户手动上传一个非 AKV 的链接服务或一个 Integration Runtime JSON。 他们从另一个资源(如数据集、链接服务或管道)引用该资源。 由于需要对凭据进行加密,因此通过用户界面创建的非 AKV 链接服务将立即发布。 如果上传引用该链接服务的数据集并尝试发布,用户界面会允许该数据集,因为数据集存在于 git 环境中。 在发布时该数据集会被拒绝,因为它不存在于数据工厂服务中。
如果发布分支与主分支不同步,并且包含虽是最近发布但却已过时的资源,则可以使用以下任一解决方案:
选项 1:使用“覆盖实时模式”功能
它将来自协作分支的代码发布到实时模式中或将其覆盖。 它会将存储库中的代码视为真实来源。
代码流:协作分支 -> 实时模式
选项 2:断开连接并重新连接 Git 存储库
它将代码从实时模式导入协作分支。 它将实时模式下的代码视为事实来源。
代码流:实时模式 -> 协作分支
- 删除当前的 Git 存储库
- 使用相同的设置重新配置 Git,但确保选择了“将现有数据工厂资源导入到存储库”,然后选择“协作分支(同一分支)”
- 创建拉取请求以将更改合并到协作分支。
注意
仅当你在不允许直接提交的存储库中操作时,才需要创建和合并拉取请求。 在大多数组织中,向存储库提交的内容需要在合并之前进行审查,因此最佳做法通常是使用此方法。 但在某些情况下不需要审查,在这种情况下,不需要创建和合并拉取请求,但可以直接将更改提交到协作分支。
根据需要适当地选择任一方法。
所有资源在发布时都显示为全新状态
发布时,所有资源可能会显示为新资源,即使它们之前已发布。 如果通过重新部署工厂 ARM 模板或通过 PowerShell 或 REST API 更新工厂 repoConfiguration 属性,将 lastCommitId 属性重置在工厂的 repoConfiguration 属性上,则可能发生这种情况。 继续发布资源可以解决该问题,但为了防止再次发生此类事件,请避免更新工厂 repoConfiguration 属性。
切换到不同 Git 存储库
若要切换到另一个 Git 存储库,请转到“源代码管理”下的管理中心的“Git 配置”页。 选择“断开”。
输入数据工厂名称并单击“确认”以删除与数据工厂关联的 Git 存储库。
删除与当前存储库的关联后,可以将 Git 设置配置为使用不同的存储库,然后将现有数据工厂资源导入新存储库。
重要
从数据工厂删除 Git 配置不会从存储库中删除任何内容。 工厂包含了所有已发布的资源。 你可以直接通过该服务编辑工厂。
相关内容
- 若要了解有关监视和管理管道的信息,请参阅以编程方式监视和管理管道。
- 若要实现持续集成和部署,请参阅 Azure 数据工厂 中的
连续集成和交付(CI/CD)。