我尝试使用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}}
- 现在怎么办?
答案 0 :(得分:1)
您只能使用上面的方法调用获取文件路径和链接服务帐户名等信息。
您将遇到的问题是ADF自定义活动在Azure Batch Compute服务中作为单独的应用程序运行。它不理解已在ADF中设置的链接服务身份验证(会话令牌),您将无法在C#中访问它。
解决方案是在Azure Active Directory域的上下文中将自定义活动注册为Azure应用程序!....是的,认真对待!
完成后,您可以授予应用程序访问数据湖商店的读/写权限。
查看我的博客。我写了一篇关于这个的文章:
警告:PowerShell cmdlet已被取代,因为您现在可以在门户刀片中实际注册该应用程序。