代码之家  ›  专栏  ›  技术社区  ›  Reza

如何区分删除更新在cosmosdb中创建触发器到azure函数

  •  0
  • Reza  · 技术社区  · 3 年前

    我在azure中的cosmosdb to azure函数上创建了一个触发器,我在文档中找不到如何区分删除、更新和创建的任何内容

    {
      "bindings": [
        {
          "type": "cosmosDBTrigger",
          "name": "input",
          "direction": "in",
          "leaseCollectionName": "leases",
          "connectionStringSetting": "pcmDevValidAppsTrigger_ConnectionString",
          "databaseName": "pcmobile-dev",
          "collectionName": "validApps",
          "createLeaseCollectionIfNotExists": true
        }
      ]
    }
    
    module.exports = async (context, documents) => {
        context.log('Document Id: ', documents[0].id);
    }
    
    
    0 回复  |  直到 3 年前
        1
  •  1
  •   Matias Quaranta    3 年前

    根据文档,您不能: https://docs.microsoft.com/en-us/azure/azure-functions/functions-bindings-cosmosdb-v2-trigger -触发器使用变更提要,而变更提要当前仅包括插入和更新( https://docs.microsoft.com/en-us/azure/cosmos-db/change-feed#features-of-change-feed ):

    变更提要包括对容器中的项目进行的插入和更新操作。您可以通过在项目(例如文档)中设置“软删除”标志来捕获删除,而不是删除。或者,您可以为具有TTL功能的项目设置有限的过期期限。例如,24小时并使用该属性的值捕获删除。使用此解决方案,您必须在比TTL过期期更短的时间间隔内处理更改。