首页 > 解决方案 > Azure 数据工厂中 webhook 的实现

问题描述

使用 webhook 活动时,我在从 azure 数据工厂获取回调 URI 时遇到困难,而且我目前正在 webhook 中调用 webjob。在网络作业中,我有 .Net 代码,但我无法获取回调 URI。

而且我真的需要使用 webhook 活动,因为我有一个长期运行的工作

标签: .netazureazure-data-factory

解决方案


基于此博客的详细解释和此链接中的有趣示例,在管道中调用 webhook 活动时,数据工厂将在请求的 JSON 正文中添加一个附加字段“callBackUri”,该字段将是自动创建。(如果没有,您可以自行设置在正文中)

从那里您可以选择继续在管道中执行,或使用数据工厂的控制流来优雅地处理故障或超时。

在此处输入图像描述


更新答案:

根据您的最新评论,我假设您想将 callbackuri 作为参数传递给 webjob 并在 webjob 里面使用它。

我搜索了 WebJob REST APi,得到了这个api/api/triggeredwebjobs/{job name}/run?arguments={arguments}

要使用参数运行,请使用在调用时将添加到脚本中的 arguments 参数。它还作为 WEBJOBS_COMMAND_ARGUMENTS 环境变量传递给 WebJob

WebJob 似乎只接受命令参数,所以我用一个简单的控制台应用程序进行了测试。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace JayWebJobConsoleApp
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.Write(args[0]);
        }
    }
}

然后我调用上面的rest api https://***.scm.azurewebsites.net/api/triggeredwebjobs/WebJob1/run?arguments=jayuri,它可以打印在日志中:

在此处输入图像描述

我还做了一个测试,通过身体中的jayuri,但它不能被触摸。

在此处输入图像描述

所以我担心你必须callbackuri像我的测试一样通过 webhook uri 后面的 uri/arguments=callbackuri 。


推荐阅读