具有现有ADLS链接服务的Azure ADF自定义活动

时间:2017-03-01 12:12:23

标签: azure azure-data-factory

我尝试使用azure SDK在visual studio中创建的自定义ADF活动向ADLS写入数据。我创建的管道将部署到已经定义了ADLS和批量链接服务的现有ADF中。 我的问题是:在自定义活动方法中,如何使用现有的ADLS链接服务来写入数据?

此问题与此类似:ADF - C # Custom Activity但我不认为我可以简单地解除连接字符串,因为链接服务正在使用我的SPN并且作为开发人员我不允许知道SPN密钥。

这是链接服务。

var output = activity.Outputs[0];
var inputLinkedService = linkedServices.First(linkedService => linkedService.Name == _ADLSLinkedServiceName).Properties.TypeProperties as AzureDataLakeStoreLinkedService;

在自定义活动中,我获取了链接服务:

{{1}}

- 现在怎么办?

1 个答案:

答案 0 :(得分:1)

您只能使用上面的方法调用获取文件路径和链接服务帐户名等信息。

您将遇到的问题是ADF自定义活动在Azure Batch Compute服务中作为单独的应用程序运行。它不理解已在ADF中设置的链接服务身份验证(会话令牌),您将无法在C#中访问它。

解决方案是在Azure Active Directory域的上下文中将自定义活动注册为Azure应用程序!....是的,认真对待!

完成后,您可以授予应用程序访问数据湖商店的读/写权限。

查看我的博客。我写了一篇关于这个的文章:

https://www.purplefrogsystems.com/paul/2016/12/azure-data-lake-authentication-from-azure-data-factory/

警告:PowerShell cmdlet已被取代,因为您现在可以在门户刀片中实际注册该应用程序。