Azure 数据工厂通过访问密钥连接到 Blob 存储

2023-12-29

我正在尝试在 Azure 数据工厂中构建一个非常基本的数据流,从 blob 存储中提取 JSON 文件,对某些列执行转换,然后存储在 SQL 数据库中。我最初使用托管身份对存储帐户进行身份验证,但在尝试测试与源的连接时收到以下错误:

com.microsoft.dataflow.broker.MissingRequiredPropertyException: account 是 [myStorageAccountName] 的必需属性。 com.microsoft.dataflow.broker.PropertyNotFoundException:无法 从 [myStorageAccountName] 中提取值 - RunId: xxx

我还在工厂验证输出中看到以下消息:

[MyDataSetName] AzureBlobStorage 不支持 SAS, MSI,即数据流中的服务主体身份验证。

有了这个,我假设我需要做的就是将我的 Blob 存储链接服务切换到帐户密钥身份验证方法。当我切换到帐户密钥身份验证并选择我的订阅和存储帐户后,在测试连接时出现以下错误:

连接失败 无法连接https://[myBlob].blob.core.windows.net/ https://%5BmyBlob%5D.blob.core.windows.net/:错误消息: 远程服务器返回错误:(403) 禁止。 (错误代码:403, 详细信息:此请求无权执行此操作。, RequestId: xxxx),请确保 提供的凭证有效。远程服务器返回错误: (403) Forbidden.StorageExtendedMessage=, 远程服务器返回一个 错误:(403) 禁止。活动编号: xxx。

我尝试直接从 Azure 中进行选择,并手动输入密钥,但无论哪种方式都会出现相同的错误。需要注意的一件事是存储帐户仅允许访问指定的网络。我尝试连接到另一个公共存储帐户,并且能够正常访问。 ADF 帐户具有存储帐户贡献者角色,我添加了我当前工作地点的 IP 地址以及我在此处找到的 Azure 数据工厂的 IP 范围:https://learn.microsoft.com/en-us/azure/data-factory/azure-integration-runtime-ip-addresses https://learn.microsoft.com/en-us/azure/data-factory/azure-integration-runtime-ip-addresses

另请注意,我目前有大约 5 个复制数据任务与托管身份完美配合,但我需要开始执行更复杂的操作。

这似乎是一个类似的问题无法在 Azure 数据工厂中创建链接服务 https://stackoverflow.com/questions/59959655/unable-to-create-a-linked-service-in-azure-data-factory但我分配的存储帐户贡献者和所有者角色应取代回复中建议的读者角色。我也不确定发帖者使用的是公共存储帐户还是私人存储帐户。

先感谢您。


在最底部上面列出的文章 https://learn.microsoft.com/en-us/azure/data-factory/azure-integration-runtime-ip-addresses关于集成运行时的白名单 IP 范围,Microsoft 表示如下:

连接到Azure存储帐户时,IP网络规则没有 对源自 Azure 集成运行时的请求的影响 与存储帐户相同的区域。欲了解更多详情,请参阅本文 https://learn.microsoft.com/en-us/azure/storage/common/storage-network-security#grant-access-from-an-internet-ip-range.

我与 Microsoft 支持人员讨论了这个问题,问题是白名单公共 IP 地址不适用于同一区域内的资源,因为由于资源位于同一网络上,它们使用私有 IP 而不是公共 IP 相互连接。

有四个选项可以解决原始问题:

  • 允许从存储帐户中的防火墙和虚拟网络下的所有网络进行访问(如果您要存储敏感数据,显然这是一个问题)。我测试了这个并且它有效。
  • 创建在不同区域运行的新 Azure 托管集成运行时。我也测试了这个。我的 ADF 数据流在 East 区域运行,我创建了一个在 East 2 中运行的运行时,它立即运行。对我来说,这里的问题是,在推送到产品之前,我必须让安全部门对此进行审查,因为我们将通过公共网络发送数据,即使它是加密的等,它仍然不如让两个资源相互通信那么安全同一网络中的其他人。
  • 使用单独的活动,例如 Spark 或 SSIS 包等 HDInsight 活动。我确信这会起作用,但 SSIS 的问题是成本,因为我们必须启动 SSIS 数据库,然后支付计算费用。您还需要在管道中执行多个活动,以在执行之前和之后启动和停止 SSIS 管道。而且我不想仅仅为了这个而学习 Spark。
  • 最后,我使用的有效解决方案是创建一个新连接,将 Blob 存储替换为数据集的 Data Lakes Gen 2 连接。它就像一个魅力。与 Blob 存储连接不同,Azure Data Lakes Storage Gen 2 支持托管标识:根据这篇文章。 https://learn.microsoft.com/en-us/azure/data-factory/connector-azure-data-lake-storage#managed-identity一般来说,连接类型越具体,功能就越有可能满足特定需求。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Azure 数据工厂通过访问密钥连接到 Blob 存储 的相关文章

随机推荐

  • Qt状态栏颜色

    我将 Qt 与 Python 结合使用 并且有一个底部带有状态栏的主窗口 我可以使用 QLabel 在栏中显示一条消息 并使用类似的方法设置该消息的颜色 font color In progress font 对于 QLabel 文本 我还
  • GO - 本地导入不起作用

    我是 golang 新手 我想构建我的第一个简单的 Web 应用程序 每次我想构建源代码时 都会收到错误locale import controllers in non local package 这是我的文件夹结构 goTest Dock
  • 在arm64上安装构建工具不起作用

    我一直在尝试安装sdkmanager build tools 30 0 2 在arm64处理器 安培CPU 上 但每次我得到这个 Warning Dependant package with key emulator not found W
  • 如何通过 apache 渲染 .phtml 文件

    我想通过 Apache 渲染 phtml 文件 但是当我尝试时 它会将页面渲染为文本而不是 html 在我的虚拟主机配置中 如果我尝试渲染index php 它会正确执行 但是 当我将 DirectoryIndex 更改为 index ph
  • 如何通过asp.net mvc中的api调用将文件上传到服务器上

    public ActionResult Index PublishPost post HttpPostedFileBase file var apiURL http test sa com rest social update 1161 u
  • 内核清零内存?

    我正在使用 Debian squeeze 并注意到内存总是归零 这是 Linux 发行版中的新功能吗 前段时间 我相信我可以使用 put 并且会输出垃圾 我多次运行这个测试程序 但注释的结果总是相同的 我在 sysctl conf 中有 r
  • 如何根据谷歌地图中标记的相对位置制作多边形?

    我有一个标记列表 我想在其周围创建一个多边形 显示标记周围的区域 而不是标记本身 因此 我希望多边形 包裹 在标记周围以显示它们周围的相对区域 而不是让多边形点成为标记的直接纬度 经度 关于我如何完成这样的事情有什么想法吗 这被称为凸包 有
  • 需要对开发者控制台上的 beta/alpha 测试进行一些说明

    背景 Android 开发者控制台有 3 个选项卡用于发布应用程序的 apk 文件 alpha beta 和 production 如下所示 我记得在一次 Google IO 讲座中 在进行 100 规模发布之前检查应用程序的好坏的一个很酷
  • 单击网格中的 LinkBut​​ton 时避免页面刷新

    我有一个GridView控件 并且在该控件内部我使用定义了一个链接按钮GridView ItemTemplate 我用它来点击打开一个新窗口 但是 当我单击链接按钮时 页面会在打开新窗口之前刷新 单击链接按钮后如何阻止页面刷新 当我将更新面
  • D3 网格中的力模拟

    我想知道如何修改Mike Bostock 的多力布局示例 https bl ocks org mbostock 1021841为了尝试获得强制布局以对网格中的节点进行分组 让我们假设我们有以下 csv Name Category1 Cate
  • 从字符串创建可变长度数组

    字符串 string a b c d 应该创建一个像这样的数组 array a gt array b gt array 我想出了这个 function create array arr string data parts explode s
  • Webpack 警告:您可能需要适当的加载器来处理此文件类型 (date-nfs)

    我的应用程序有问题 我有一个网站 我使用 date fns 根据用户语言显示格式化日期 它工作得很好 但我更新了 date fns 从那以后我收到了一个警告 在我的 JavaScript 代码中我使用 const locale requir
  • 尝试/捕获或验证速度?

    我正在使用 Python 每当我必须验证函数输入时 我都会假设输入有效 然后捕获错误 就我而言 我有一个通用的Vector 我用它来做一些不同的事情 其中 之一就是加法 它的功能既是Color 类并作为Vector 所以当我向Color 它
  • 如何在 Android 中从全名中拆分名字和姓氏字符串

    我有一张带有全名的表格EditText字段 我想将字符串分解为名字和姓氏字符串 谁可以帮我这个事 我可以知道实现我的目标的正确方法是什么吗 如果用户输入他 她的名字 例如A B C 名字将是A 姓氏遗嘱BC 我正在尝试这个 EditText
  • 在 google chrome 版本 54 中,禁用字段是不可选择的

    似乎在上次 google chrome 版本 54 更新后 我无法通过鼠标文本从我的网站中的禁用字段中进行选择 Text inside this input not selectable by mouse but before it was
  • cuda & rdc & 推入多个共享对象会在 registerEntryFunction 中产生 SIGSEV

    我正在尝试在两个共享库中运行可重定位设备代码 两者都使用 cuda thrust 如果我停止在 kernel cu 中使用推力 一切都会正常运行 这不是一个选项 编辑 如果 rdc 被禁用 该程序也可以工作 对我来说也不是一个选择 它编译得
  • 如何在 HTML 工具提示中使用回车符?

    我目前正在向我们的网站添加详细的工具提示 并且我希望 无需求助于出色的 jQuery 插件 我知道有很多 使用回车符来格式化工具提示 要添加提示 我正在使用title属性 我浏览了常用网站并使用了以下基本模板 a title link wi
  • c# 在html中查找图像并下载它们

    我想下载存储在 html 网页 中的所有图像 我不知道将下载多少图像 并且我不想使用 HTML AGILITY PACK 我在谷歌中搜索 但所有网站都让我更加困惑 我尝试了正则表达式 但只有一个结果 人们给了你正确的答案 你也不能挑剔和懒惰
  • dplyr 查找表/模式匹配[重复]

    这个问题在这里已经有答案了 我一直在寻找一种聪明的或 更整洁 的方式来利用 tidyverse 中的查找表 但找不到令人满意的解决方案 我有一个数据集和查找表 Sample data data lt data frame patients
  • Azure 数据工厂通过访问密钥连接到 Blob 存储

    我正在尝试在 Azure 数据工厂中构建一个非常基本的数据流 从 blob 存储中提取 JSON 文件 对某些列执行转换 然后存储在 SQL 数据库中 我最初使用托管身份对存储帐户进行身份验证 但在尝试测试与源的连接时收到以下错误 com