【发布时间】:2020-08-25 14:56:04
【问题描述】:
我正在尝试在 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/:错误信息: 远程服务器返回错误:(403)禁止。 (错误代码:403, 详细信息:此请求无权执行此操作。, RequestId: xxxx),请确保 提供的凭证有效。远程服务器返回错误: (403) Forbidden.StorageExtendedMessage=, 远程服务器返回一个 错误:(403)禁止。活动编号: xxx.
我尝试过直接从 Azure 中选择并手动输入密钥,但无论哪种方式都会出现相同的错误。需要注意的一件事是存储帐户只允许访问指定的网络。我尝试连接到不同的公共存储帐户并且能够正常访问。 ADF 帐户具有存储帐户参与者角色,我添加了我当前工作的 IP 地址以及我在此处找到的 Azure 数据工厂的 IP 范围:https://docs.microsoft.com/en-us/azure/data-factory/azure-integration-runtime-ip-addresses
另外请注意,我目前有大约 5 个复制数据任务与托管身份完美配合,但我需要开始执行更复杂的操作。
这似乎与Unable to create a linked service in Azure Data Factory 类似的问题,但我分配的存储帐户参与者和所有者角色应取代回复中建议的读者角色。我也不确定发帖者是使用公共存储帐户还是私人帐户。
提前谢谢你。
【问题讨论】:
标签: azure azure-storage azure-blob-storage azure-data-factory