我有一个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
之后,我想点击另一个触发器
答案 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中提供数据