1
我正在寫一個函數將大量輸入圖像拼接成一個高度圖像,並將其保存到輸出blob。有沒有辦法綁定到來自隊列觸發器的可變數量的輸入?Azure函數 - 綁定隊列中的斑點列表觸發器
下面是一個例子隊列項:
{
"inputIds": [1001, 1002, 1003, 1004], // Input blobs "inputs/1001.jpg", etc.
"outputId": 15 // Output blob "output/15.jpg"
}
我在選擇in the docs當時一看,我的現在的想法是使用一個CloudBlobContainer
我認爲一個[Blob]
屬性允許:
[FunctionName("stitch")]
public static async Task Run(
[QueueTrigger("stitch")]QueueItem queueItem,
[Blob("inputs")]CloudBlobContainer inputContainer,
[Blob("results/{outputId}.jpg")]CloudBlockBlob output)
{
IList<CloudBlockBlob> inputs = await GetBlobsAsync(inputContainer, queueItem.InputIds);
Stream result = ConcatImages(inputs);
await output.UploadFromStreamAsync(result);
}
在這種情況下,QueueItem
是一個自定義類,GetBlobsAsync()
和ConcatImages()
是我可以實現的功能。
但可我直接綁定到IEnumerable<CloudBlockBlob>
(或IEnumerable<Stream>
),如果是這樣我會怎麼寫[Blob]
輸入屬性?
編輯:我可以這樣做,而不是在同一時間加載所有輸入blob內容到內存中?我需要一次流一個。