0

我有一个从Blob上载触发的Azure函数,表示Blob包含一个带有多行行的文本文件,每行包含有关某个人的信息。该函数读取文件并将KeyValuePair插入到每行的Azure队列中。从Azure函数异步写入文件

然后我有另一个Azure函数,它是由我前面提到的队列触发的,它是异步执行的,因为第一个函数将数千个KeyValuePair存储到队列中。

我想要做的是,当第二个函数处理每个KeyValuePair时,我想写入一个响应文件,它的格式与第一个函数中输入文件的格式相同;每行包含关于一个人的信息。因此,第二个函数的每次执行都会在响应文件中写入一个新行(这也是一个blob)。你会如何实现这一目标?

回答

3

听起来像你可以使用Append Blobs为每个队列项添加一行文本。

下面是一个简单绑定,您可以使用(注意inout方向):

{ 
    "type": "blob", 
    "name": "appendBlob", 
    "path": "container/{name}.txt", 
    "connection": "AzureWebJobsStorage", 
    "direction": "inout" 
} 

我假设你已经知道什么时候上一个文件应该结束和一个新的文件应该开始一个很好的方式,可能部分队列消息。

请注意,队列处理的顺序无法保证,所以输出文件中的行可能与输入文件相比具有不同的顺序。

+0

追加Blobs正是我所需要的,谢谢 – LunielleDev

+1

CloudAppendBlob支持。请参阅:https://github.com/Azure/Azure-Functions/issues/165。我们将更新文档以反映这一点。 –

+0

@LingToh谢谢,用'inout'绑定示例更新了答案 – Mikhail