我正在创建一个广泛的数据工厂工作流程,该流程将自动创建并填充多个客户的数据仓库,但是我遇到了错误。我将首先发布问题,因为剩余信息有点长。请记住,我是数据工厂和JSON编码的新手。
问题和评论
问题可能在于正确地传递了参数,也可能在于选取了它-我似乎无法确定哪个参数。如果您发现当前设置有错误,请随时告诉我-感谢所有帮助
错误
{
"errorCode": "BadRequest",
"message": "Operation on target FetchEntries failed: Call to provided Azure function
'' failed with status-'BadRequest' and message -
'{\"Message\":\"Please pass 'customerId' on the query string or in the request body\"}'.",
"failureType": "UserError",
"target": "ExecuteFullLoad"
}
设置:
整个设置从一个函数调用开始,以从在线经济平台吸引新客户。它将它们写入SQL表,从中对其进行处理并加载到最终表中,然后执行新的管道。此过程运行完美。从那里执行以下管道:
如您所见,在ForEach循环尝试执行另一个管道之前,所有方法都运行良好,该管道包含azure函数,该函数调用填充该仓库的.NET脚本函数(我知道这很复杂)。这个蔚蓝的功能需要一个customerid来检索令牌并将数据加载到仓库中。我试图将这些标记从InternalCustomerID查找通过ForEach传递到管道和函数中。 ForEach实际上有效,但是“因为内部活动失败” 。
“执行管道”任务包含以下设置,其中我试图传递来自foreach循环的参数。该过程的这一部分也起作用,因为它执行了两次(在此测试阶段应该执行):
我不知道它是否无法成功传递参数,或者无法将其添加到azure函数的主体中。
子管道(FullLoad)包含以下参数。我不确定是否应将默认值设置为覆盖或它实际如何工作。我在互联网上看到的指南还没有默认值。
最后是Azure功能的设置。我不确定为正确捕获参数和/或填写内容而需要写的内容-如果是有关错误消息的标题或正文。我知道如果没有尸体就无法执行帖子。
如果我手动运行此特定功能(使用portal.azure.com的“功能应用程序”部分),则可以通过使用以下设置来正常运行:
答案 0 :(得分:1)
我查看了您所有的详细问题,我认为问题的关键是Azure Function Request Body的格式。
恐怕这是不正确的。请根据您的描述查看我的以下步骤:
工作流程:
在ForEach活动中,只有一个Azure Function活动:
LookUp活动的预览数据:
然后配置ForEach活动:@activity('Lookup1').output.value
Azure功能活动的配置:@json(concat('{"name":"',item().name,'"}'))
从azure函数中,我仅输出输入数据。输出示例如下:
提示: :我看到您的步骤是在另一个管道中执行azure函数并使用Execute Pipeline Activity(我不知道为什么您必须遵循这样的步骤) ,但我认为这没关系,因为您只需要关注Body
格式,如果可接受的格式为JSON
,则可以使用@json(....)
,如果可接受的格式为{ {1}},您可以使用String
。此外,您可以从ADF用户界面门户使用@cancat(....)