gpt4 book ai didi

DocumentDb/CosmoDb 的 Azure 函数绑定(bind)参数

转载 作者:行者123 更新时间:2023-12-02 23:31:54 25 4
gpt4 key购买 nike

我有一个服务总线队列项 BrokeredMessage ,其正文如下:

{"MemberId":711918,"CampaignId":"214ade86-9167-40ba-a63a-9eeb57f893fa"}

该方法如下所示:

public static async Task Run(BrokeredMessage myQueueItem, CampaignResult inputDocument, TraceWriter log)

我想看看该函数是否可以使用如下绑定(bind)从 cosmodb/documentdb 中提取文档:

"bindings": [
{
"name": "myQueueItem",
"type": "serviceBusTrigger",
"direction": "in",
"queueName": "myqueue",
"connection": "myconnectionsb",
"accessRights": "Manage"
},
{
"type": "documentDB",
"name": "inputDocument",
"databaseName": "pmg-docdb-rd-test",
"collectionName": "JobResults",
"id": "{CampaignId}-{MemberId}",
"connection": "myconnection",
"direction": "in"
}
],

我似乎无法将所有内容整合在一起。另外,我不确定如果文档不存在,实际会发生什么,我希望 inputDocument 为空,但我不确定,我的想法是,如果它不存在,我想创建它并进行更新(如果有)。由于文档说对输入文档的任何更改都将保留,我认为更新将会起作用......

错误是:命名参数 CampaignId 没有值

总而言之,我可以让函数根据消息检索 cosmodb 文档吗?如果该文档为空,则创建该文档,否则将保留更改?

编辑:刚刚意识到,如果文档不存在,docdb/cosmodb 将返回 404 未找到,并且我认为服务总线队列消息没有任何输入绑定(bind),但是......

最佳答案

是的,您可以这样做,但您需要绑定(bind)到 POCO 才能绑定(bind)到其属性。

就您而言,这看起来类似于:

public class SomeClass
{
public string MemberId { get; set; }
public string CampaignId { get; set; }
}

然后,您可以更改函数方法以采用 POCO(而不是 BrokeredMessage)作为触发器的参数。 POCO 中的属性将成为您可以绑定(bind)的命名输入。

关于DocumentDb/CosmoDb 的 Azure 函数绑定(bind)参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44311164/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com