Триггер Azure CosmosDB для обновления коллекции на основе значения в другой коллекции - PullRequest
1 голос
/ 03 июня 2019

Мне нужно обновить коллекцию cosmosDB (пусть будет collection-1), основываясь на значении столбца в другой коллекции cosmosDB (пусть будет collection-2).Коллекция-1 должна быть обновлена ​​значениями из других коллекций, таких как collection-3 и collection-4.Я пытался написать триггер записи в Collection-2, но застрял во время записи функции внутри триггера.

Пожалуйста, предложите, возможно ли это с помощью CosmosDB Trigger, или предложите, если есть какой-нибудь альтернативный способ добиться этого.

Я создал новую триггерную функцию для космического БД.

Ответы [ 2 ]

1 голос
/ 03 июня 2019

Насколько мне известно, вы можете отслеживать только обновления одной коллекции cosmos db в каждой отдельной функции Azure CosmosDB Trigger .

Другими словами, если обновления столбца в Collection-1В соответствии с обновлениями Коллекции 2,3,4 для этой цели необходимо создать 3 триггера.

В каждом триггере, пожалуйста, следуйте этому документу , чтобы настроить информацию о коллекции и использовать Cosmos DB SDK для замены конкретного документа.


Обновление ответа:

Полностью согласен с пояснениями в комментарии @Matias Quaranta, вы перепутали два видаТриггеры здесь. Как вы упомянули, безусловно, необходимо использовать функцию запуска Azure.Триггер Cosmos DB не может отслеживать обновления вашей коллекции, он пассивно активирован.

Например:

Если вы хотите добавить один столбец перед вставкой документов в cosmos db, вы можете задать имя триггера, чтобы активировать его, когда вы используете вставку документа cosmos db sdk.Это триггер в базе данных космоса.

Если вы хотите следить за обновлениями вашей коллекции базы данных космоса, а затем в некоторых компаниях, необходимо использовать функцию запуска Azure.

0 голосов
/ 07 июня 2019

Меня перепутали триггер коллекции >>> и функция Azure Cosmos DB Trigger.Решение моего вышеупомянутого вопроса состоит в том, чтобы создать функцию Azure для запуска космической БД.

Создать ресурс >>> Вычислить >>> Приложение функции.

для добавления входных и выходных данных перейдите в Интегрироватьопция из Function App >>> Триггер, который вы создали.

См. ссылку для привязки функции:

Эта функция будет запускаться при обновлении данных за один раз.коллекция cosmosDB.Мы можем добавить n наборов в качестве входных данных и набор в качестве выходных данных.

Ниже приведен файл function.json, который будет автоматически создан во время определения привязок:

{
  "bindings": [
    {
      "type": "cosmosDBTrigger",
      "name": "documents",
      "direction": "in",
      "leaseCollectionName": "leases",
      "connectionStringSetting": "cosmosdb_DOCUMENTDB",
      "databaseName": "connectivityDB",
      "collectionName": "tblEvent",
      "createLeaseCollectionIfNotExists": true
    },
    {
      "type": "cosmosDB",
      "name": "outputDocument",
      "databaseName": "connectivityDB",
      "collectionName": "tblNewEvent",
      "createIfNotExists": true,
      "connectionStringSetting": "cosmosdb_DOCUMENTDB",
      "partitionKey": "/id",
      "direction": "out"
    }
  ]
}

Ниже приведеносоздан файл index.js:

module.exports = function(context, input) {

     var documents = context.bindings.documents;
     var output = [];

     if(!!input && input.length > 0){

       //write your code here

     }

    context.bindings.outputDocument = output;
    context.done();
}
...