【问题标题】:Azure ADF Custom Activity With Existing ADLS Linked Service具有现有 ADLS 链接服务的 Azure ADF 自定义活动
【发布时间】:2017-07-20 18:16:08
【问题描述】:

我正在尝试使用在 Visual Studio 中使用 azure SDK 编写的自定义 ADF 活动将数据写入 ADLS。我创建的管道将部署到现有的 ADF 中,该 ADF 已经定义了 ADLS 和批处理链接服务。 我的问题是:在自定义activity方法中,如何使用现有的ADLS链接服务写入数据?

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

这是链接服务。

{
    "name": "AzureDataLakeStoreLinkedService",
    "properties": {
        "hubName": "****-d-****-adf_hub",
        "type": "AzureDataLakeStore",
        "typeProperties": {
            "dataLakeStoreUri": "adl://***************.azuredatalakestore.net/",
            "servicePrincipalId": "*****-**-****-****-************",
            "servicePrincipalKey": "**********",
            "tenant": "********.com"
        }
    }
}

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

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

-- 现在呢?

【问题讨论】:

    标签: azure azure-data-factory


    【解决方案1】:

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

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

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

    完成后,您可以授予应用从数据湖存储区读取/写入的权限。

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

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

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

    【讨论】:

    • 谢谢保罗,明白了。我想我应该对这个解决方案感到惊讶,但我使用 ADF 的次数越多,我就越不感到惊讶。
    猜你喜欢
    • 2018-05-12
    • 1970-01-01
    • 2018-08-01
    • 2021-03-26
    • 2016-11-25
    • 1970-01-01
    • 2021-06-04
    • 1970-01-01
    • 2021-02-07
    相关资源
    最近更新 更多