如何在数据工厂管道中将路由传递给 Azure 函数(C#)http 触发器?

Posted

技术标签:

【中文标题】如何在数据工厂管道中将路由传递给 Azure 函数(C#)http 触发器?【英文标题】:How to pass a route to Azure function (C#) http trigger in Data Factory pipeline? 【发布时间】:2019-06-02 17:47:38 【问题描述】:

我需要在数据工厂的 Azure 函数活动中传递标头信息。 如图所示,表头标为红色。

我需要更改以下代码以接收标头。我还需要捕获标头的值。

public static async Task Run([HttpTrigger(AuthorizationLevel.Function, "get", Route = "name" )] HttpRequestMessage req, 字符串名称, TraceWriter 日志, [Blob("pk-api-test/name", FileAccess.Read)] Stream myBlob)

【问题讨论】:

您的意思是您不想再使用Route,而是要将标头信息传递给http触发器并捕获信息以检索blob? 是的@JerryLiu,这就是我想做的。 @JerryLiu 这给了我一个错误。因此,我通过在代码中使用“Route = TestFunction/name”以及在数据工厂的 Azure 函数设置中解决了这个问题,我使用了 Function Name = TestFunction/albany 【参考方案1】:

我通过在代码中使用 'Route = TestFunction/name' 解决了这个问题,在数据工厂的 Azure 函数设置中,我使用了 Function Name = TestFunction/albany

【讨论】:

【参考方案2】:

试试下面的代码。使用headers访问http请求中的headers信息。

   public static async Task Run(
         [HttpTrigger(AuthorizationLevel.Function, "get", Route = null)]HttpRequestMessage req,
         [Blob("pk-api-test/headers.name", FileAccess.Read)]Stream myBlob, 
         IDictionary<string, string> headers,
         TraceWriter log)
   
       string name = headers["name"];
       //...
   

【讨论】:

在这里留下我的答案,因此它适用于我的数据工厂测试。

以上是关于如何在数据工厂管道中将路由传递给 Azure 函数(C#)http 触发器?的主要内容,如果未能解决你的问题,请参考以下文章