当我在Azure存储中的同一容器/目录下收到多个文件时,我想触发作业。假设我收到了2个文件: -mycontainer / uploads / files / file.rtf -mycontainer / uploads / files / file.txt
当两个文件都出现时,应该触发我想要的作业。所以我开始像这样定义绑定:
{
"scriptFile": "__init__.py",
"bindings": [
{
"name": "myitem",
"type": "queueTrigger",
"direction": "in",
"queueName": "myfiles",
"connection": "StorageConnectionString"
},
{
"name": "inputRtf",
"type": "blob",
"direction": "in",
"path": "uploads/files/{blobname}.rtf",
"connection": "StorageConnectionString"
},
{
"name": "inputTxt",
"type": "blob",
"direction": "in",
"path": "uploads/files/{blobname}.txt",
"connection": "StorageConnectionString"
},
{
"name": "outputRtf",
"type": "blob",
"direction": "out",
"path": "output/{blobname}.rtf",
"connection": "StorageConnectionString"
},
{
"name": "outputTxt",
"type": "blob",
"direction": "out",
"path": "output/{blobname}.txt",
"connection": "StorageConnectionString"
}
]
}
为了简单起见,我们说python代码只是将.txt
文件的内容复制到output
容器中,与.rtf
文件相同。我不太了解queueTrigger
的工作原理,所以我很确定我的配置看起来不正确
答案 0 :(得分:0)
您将必须确认功能所需的所有文件都存在,然后触发功能。输入绑定无法独自完成。
您可以改为使用Event Grid Triggered函数,该函数针对每个上载的blob和针对每个事件的事件而触发,请检查是否存在实际功能所需的其他文件。
如果没有,则仅返回 但是 ,如果确实存在所有文件,则触发您的实际功能。
您可以使用存储队列消息(使用binding)触发实际功能,该消息具有Blob输入绑定所需的文件名详细信息。
有关使用队列触发器绑定和Blob输入绑定的示例,请检查blob input binding docs。