【问题标题】:Azure Data Factory to call on-prem Alteryx APIAzure 数据工厂调用本地 Alteryx API
【发布时间】:2019-03-26 22:18:32
【问题描述】:

我需要通过 ADFv2 管道在 Alteryx(本地)中开始工作,但找不到这样做的方法。内置的 Web 活动似乎不支持 Alteryx 所需的 OAUTH 1.0 签名过程。尝试配置时,我总是收到错误“调用端点错误”。我尝试过使用 Web Activity + HTTP Linked Service,但找不到正确的方法。我需要对本地 Alteryx API 执行 POST(开始作业)和 GET(获取作业状态),我什至不确定哪个活动是执行此操作的最佳活动。

【问题讨论】:

    标签: azure azure-data-factory-2 alteryx


    【解决方案1】:

    你说得对:网络活动不支持比简单请求更复杂的场景,并且链接服务不支持 oAuth 1.0 身份验证。

    在我看来,您必须提取 oAuth 1.0 所需的签名过程。您可以选择以下两种方法之一:

    • 使用自定义活动,您将在其中编写签名流程并调用您的 Alteryx 作业。

    • 使用 Azure 函数之类的东西来执行签名过程并调用您的工作。然后使用网络活动来调用你的函数(这就像调用一个带有一些自定义标头的普通 API 进行身份验证)。

    希望对你有帮助。

    【讨论】:

    • 感谢您的回复。您描述的选项组合是我提出的解决方案。我正在自定义代码中生成签名并将其输出到下一个任务 Web 活动。不幸的是,即使使用 Private I.R.,我仍然无法让 Web Activity 与我的本地 Alteryx API 一起使用。环境。如果 ADF 给出的不仅仅是一般错误,那将很有帮助,因为我无法判断它是否甚至命中了 API,或者本地网络上的某些东西正在阻止它。我认为可能是这样。感谢您的回复!
    • 我应该补充一点,我已经编写了一个完整的.Net 项目,该项目将调用 Alteryx。当我从本地网络中运行可执行文件时,它可以 100% 工作。但是当我将它安装到 Blob 存储并使用批处理服务执行它时,我收到一条错误消息,指出它无法解析 URL。我认为这是因为批处理服务位于 Azure 中,并且未连接到本地。我试过使用我的私人 I.R.对于批处理服务链接服务,但这似乎并不重要。想法?
    • 抱歉回复晚了,但很遗憾我对您的问题没有更多的想法。根据您的描述,这似乎是一个网络问题。 Alteryx API 是否应该保持私有并且只能从本地网络的 Intranet 内部访问?
    • 这绝对是批处理服务自定义活动的网络问题。我不得不通过 VPN 等将本地域扩展到 Azure。但是,我仍在试图弄清楚为什么我无法让 Web Activity 工作,因为它使用了自托管的 IR。我应该能够在 OAuth 1.0 需要的自定义活动中生成密钥,然后将其作为参数传递给 Web 活动。但我无法让 Web Activity 正确识别我的 API url。
    • 我在 Web Activity 上用 MSFT 打开了一张票。他们确认 Web Activity 无法使用 IR,因此无法连接到本地源。所以我被困在自定义活动/批处理服务中。
    【解决方案2】:

    我向 Microsoft 开了一张票,这是回复:

    目前网络活动只能在 ADF 网络角色中运行,不能在 IR 中运行。这意味着 Web Activity 会直接从 Azure 服务器调用端点,并且无法通过自托管 IR 进行调用。

    【讨论】:

    • 这也是我发现的。我必须使用批处理服务并将我的代码安装在批处理服务中的 VM 上。
    猜你喜欢
    • 2022-01-02
    • 1970-01-01
    • 2022-08-05
    • 1970-01-01
    • 2020-03-16
    • 1970-01-01
    • 2021-08-07
    • 2022-06-20
    • 2020-06-29
    相关资源
    最近更新 更多