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