如何将 DocumentDB 绑定用于 json 的队列触发器?

How do I use DocumentDB bindings for queue triggers of json?

Azure Functions 中,我可以有一个 "Queue" 类型的触发器,然后是一个 "documentdb" 类型的输入。我可以通过声明 {queueTrigger}.

来控制从 Azure DocumentDB 加载哪个文档并将其提供给函数

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

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

{queueTrigger.id}

尝试这样做会得到一个无效的模板:

2016-04-22T06:39:03.044 Exception while executing function: Functions.sagaReady_queueMessage_updatedSaga. Microsoft.Azure.WebJobs.Host: Invalid template '{queueTrigger.id}'. The parameter name 'queueTrigger.id' is invalid.

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

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

任何人都可以指出任何其他 OSS 代码或阐明这一点吗?

安迪

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

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