Azure功能-Out Out绑定后如何触发功能

时间:2019-04-12 04:19:57

标签: azure azure-functions

我有一个Azure函数。我已经创建了out绑定,并且数据正在写入该输出CosmosDB。

但是我想问的是,一旦完成,是否有可能触发另一个触发器?

还是我必须手动编写代码以添加到数据库中,即不使用out绑定?

谢谢。

此处提供代码:

function.json

{
  "bindings": [
    {
      "type": "cosmosDBTrigger",
      "name": "documents",
      "direction": "in",
      "leaseCollectionName": "leases",
      "connectionStringSetting": "COSMOSDB_INPUT_CONNECTION_STRING",
      "databaseName": "default",
      "collectionName": "metadata",
      "createLeaseCollectionIfNotExists": false,
      "leaseCollectionPrefix": "IngestMetadata",
      "startFromBeginning": true
    },
    {
      "type": "cosmosDB",
      "name": "outputdocuments",
      "direction": "out",
      "connectionStringSetting": "COSMOSDB_CONNECTION_STRING",
      "databaseName": "default",
      "collectionName": "metadata",
      "createIfNotExists": true
  }
  ],
  "scriptFile": "../dist/IngestMetadata/index.js"
}

还有代码本身:

const cosmosDBTrigger: AzureFunction = async function (context: Context, documents: any[]): Promise<void> {
    if (!!documents && documents.length > 0) {
        context.bindings.outputdocuments = documents;
    }

    context.done();
}

所以在context.done之后,我想点击另一个触发器

1 个答案:

答案 0 :(得分:1)

是的,您可以为此使用天蓝色的function triggers

function.json

{
    "type": "cosmosDBTrigger",
    "name": "documents",
    "direction": "in",
    "leaseCollectionName": "leases",
    "connectionStringSetting": "<connection-app-setting>",
    "databaseName": "Tasks",
    "collectionName": "Items",
    "createLeaseCollectionIfNotExists": true
}

然后是js代码。

  module.exports = function (context, documents) {
      context.log('First document Id modified : ', documents[0].id);

      context.done();
    }

例如,您可能有逻辑,例如从http触发器写入到cosmos db,而一旦将任何内容写入cosmos db,则有另一个触发器,依此类推

PS。综上所述,由于我回答了您的上一个问题,因此您将拥有2个函数,第一个是您在另一个问题中将输出写入cosmos db,第二个是该问题的功能,将在其中一个函数将立即触发输出完成执行并在cosmos db中提供数据