如何将 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, ...)
)
在 Azure Functions 中,我可以有一个 "Queue" 类型的触发器,然后是一个 "documentdb" 类型的输入。我可以通过声明 {queueTrigger}
.
如果我的队列中的消息是纯文本并且我配置的文档中存在文档的 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, ...)
)