首页 文章

服务总线主题到文档Db - 更新而不是替换

提问于
浏览
0

https://docs.microsoft.com/en-us/azure/azure-functions/functions-bindings-documentdb#input-sample-for-single-document

给出以下绑定:

{
  "name": "inputDocument",
  "type": "documentDB",
  "databaseName": "MyDatabase",
  "collectionName": "MyCollection",
  "id" : "{queueTrigger}",
  "connection": "MyAccount_COSMOSDB",     
  "direction": "in"
}

我正在使用azure函数,服务总线主题Trigger,文档db作为Output,我想使用documentDb作为输入,其id与上面提到的类似 . 我正在使用nodejs .

在上面的链接上面没有上述部分的描述,我想上面的意思是,我们从azure documentdb获取一个文件,并且由于id是作为queueTrigger给出的,如果服务总线队列中有一条带有id1的消息,那么我们得到一个具有与documentdb中相同的id1的文档 .

我的要求是我需要知道documentdb中是否有文档,其ID与服务总线主题(不是队列)相同,如何去做 .

整个目标是更新documentdb中的记录,保留文档的某些早期属性,而不是使用来自服务总线主题的消息替换文档db中的现有文档 .

感谢任何有关上述类似情况的讨论以及您如何解决的任何帮助,即使它没有使用绑定 .

更新:更多信息:“id”:“”,不适用于服务总线作为触发器 . 我找不到“”的MS文档,所以尝试了“”但是“id”:“”也没有用 .

我需要类似于“id”:“”,服务总线作为触发器,documentdb作为输入 .

1 回答

  • 0

    这是诀窍的绑定:

    {
      "bindings": [
        {
          "name": "myMsg",
          "type": "serviceBusTrigger",
          "direction": "in",
          "topicName": "mytopic",
          "subscriptionName": "mysubscription",
          "connection": "myconnection",
          "accessRights": "Manage"
        },
        {
          "type": "documentDB",
          "name": "inputDocument",
          "databaseName": "testdb",
          "collectionName": "test",
          "connection": "mydocdb",
          "direction": "in",
          "id": "{myMsg}"
        }
      ],
      "disabled": false
    }
    

    然后该文档将可供您的函数处理:

    module.exports = function(context, myMsg) {
        context.log('Processing message', myMsg);
        context.log(context.bindings.inputDocument);
        context.done();
    };
    

    或者,如果您的消息是例如JSON,例如格式如下:

    { "docid": "31c5c592-94a3-4922-82e4-fcda8366280c" }
    

    您还可以绑定到 docid 属性:

    {
      "bindings": [
        {
          "name": "myMsg",
          "type": "serviceBusTrigger",
          "direction": "in",
          "topicName": "mytopic",
          "subscriptionName": "mysubscription",
          "connection": "myconnection",
          "accessRights": "Manage"
        },
        {
          "type": "documentDB",
          "name": "inputDocument",
          "databaseName": "testdb",
          "collectionName": "test",
          "connection": "mydocdb",
          "direction": "in",
          "id": "{docid}"
        }
      ],
      "disabled": false
    }
    

    了解更多关于Binding Expressions

相关问题