从 Azure Functions 异步写入文件

Writing to a file asynchronously from Azure Functions

我有一个从 Blob 上传触发的 Azure 函数,Blob 包含一个包含多行的文本文件,每行包含一个人的信息。该函数读取文件并每行将一个 KeyValuePair 插入到 Azure 队列中。

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

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

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

这是您可以使用的示例绑定(注意 inout 方向):

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

我假设您已经有一个很好的方法来知道上一个文件应该何时结束以及新文件应该何时开始,可能是队列消息的一部分。

附带说明一下,无法保证队列处理的顺序,因此与输入文件相比,输出文件中的行可能具有不同的顺序。