たくさんの入力画像をひとつの背の高い画像にまとめて出力ブロブに保存する関数を書いています。キュートリガーからの可変数の入力にバインドする方法はありますか?私はオプションin the docsを見て持っていたし、私の現在の考え方は、私が許可されていると思いますCloudBlobContainer
に[Blob]
属性を使用することですAzure関数 - キュートリガーからブロブのリストを束縛する
{
"inputIds": [1001, 1002, 1003, 1004], // Input blobs "inputs/1001.jpg", etc.
"outputId": 15 // Output blob "output/15.jpg"
}
:
[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]
入力属性を記述しますので、もし?
EDIT:入力ブロブのすべての内容を同時にメモリにロードせずに済ませることができますか?私はそれらを一度に一つずつ流す必要があります。