如何在数据工厂管道中将路由传递给 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 触发器?的主要内容,如果未能解决你的问题,请参考以下文章

将日期时间参数从管道传递到数据流源存储过程 Azure 数据工厂

如何使用 Azure 数据工厂管道创建容器?

如何将变量传递给 azure devops 管道中的 SqlAzureDacpacDeployment@1 任务

如何使用构建管道部署 Azure 数据工厂资源?

从 azure 数据工厂调用 azure 函数端点时出错

如何在 Azure 数据工厂内拥有不同数量客户的不同环境中使用相同的管道?