gpt4 book ai didi

c# - Azure Functions - 绑定(bind)队列触发器中的 blob 列表

转载 作者:行者123 更新时间:2023-12-03 03:04:43 26 4
gpt4 key购买 nike

我正在编写一个函数,将大量输入图像拼接成一个高图像,并将其保存到输出 blob。有没有办法从队列触发器绑定(bind)到可变数量的输入?

这是一个队列项目示例:

{
"inputIds": [1001, 1002, 1003, 1004], // Input blobs "inputs/1001.jpg", etc.
"outputId": 15 // Output blob "output/15.jpg"
}

我查看了选项 in the docs我目前的想法是使用 [Blob] CloudBlobContainer 上的属性我认为这是允许的:

[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()是我可以实现的功能。

但是我可以直接绑定(bind)IEnumerable<CloudBlockBlob> (或 IEnumerable<Stream> ),如果是这样,我将如何写 [Blob]输入属性?

编辑:我可以在不同时将所有输入 blob 内容加载到内存中的情况下这样做吗?我需要一次播放一个。

最佳答案

我建议你的架构是错误的。

您似乎正确使用了队列触发器和定义成像拼接任务范围的有效负载 QueueItem,但为什么要绑定(bind)到输入 blob 存储?当您循环输入 Id 时,需要在代码中动态获取输入 blob。这样做还解决了您对同时将所有输入 blob 存储在内存中的其他担忧。

关于c# - Azure Functions - 绑定(bind)队列触发器中的 blob 列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45698387/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com