1

Azure Functions中,我可以有一个“队列”类型的触发器,然后是一个“documentdb”类型的输入。我可以通过声明来控制从 Azure DocumentDB 加载哪个文档并将其提供给函数{queueTrigger}

如果我的队列上的消息是纯文本的,并且我配置的文档中存在文档的 ID,则此方法有效。

但是,如果我在触发队列上的消息是 JSON 并且包含文档的 ID 作为属性,我该如何声明:

{queueTrigger.id}

尝试这样做会给出一个无效的模板:

2016-04-22T06:39:03.044 执行函数时出现异常:Functions.sagaReady_queueMessage_updatedSaga。Microsoft.Azure.WebJobs.Host:无效的模板“{queueTrigger.id}”。参数名称“queueTrigger.id”无效。

我尝试了一些变体 , {{queueTrigger.id}}{queueTrigger}.id但我无法得到我期望的结果。

这是一个开源包的一部分,其中有一个正则表达式。我可以看到它支持 {blah} 和 {{blah}} 但不知道参数列表我无法连接它。

可以指出我的任何其他 OSS 代码或对此有所了解吗?

安迪

4

1 回答 1

1

您可以使用属性名称作为输入参数,因此如果您的 JSON 队列消息中有 id,只需使用{id}.

在 C# 中,您需要创建一个公开该属性的 POCO(一个类)并将该类用作触发器参数类型(例如Run(MyType queueParam, ...)

于 2016-04-22T07:31:53.713 回答