【发布时间】:2022-11-09 00:46:41
【问题描述】:
请考虑如下所示的 Azure 函数,该函数在 Blob 上传时触发。我想缩放该图像并将其写回另一个 blob 容器。最后,向服务总线主题发送一条消息,其中包含状态和缩放图像的链接。
目前,我只是生成一个随机的 blob 名称。
我怎样才能得到姓名@BlobInput 读取的 blob 的大小?源名称在EventSchema 中编码,但是,我不知道如何重用{data.url} 的解析/子字符串版本作为@BlobOutput(..., path = "xxx") ... 的参数。
public class ImageScaleFunction {
@FunctionName("ImageScaleFunction")
@StorageAccount("AzureWebJobsStorage")
public void run(
@EventGridTrigger(name = "eventGridEvent") EventSchema event,
@BlobInput(name = "input", dataType = "binary", path = "{data.url}") byte[] blobInput,
@BlobOutput(name = "output", dataType = "binary", path = "image-output/{rand-guid}.jpg") OutputBinding<byte[]> blobOutput,
@ServiceBusQueueOutput(name = "message", dataType = "string", queueName = "my-cool-queue", connection = "AzureServiceBusConnection") OutputBinding<String> message,
final ExecutionContext context) throws Exception {
// ..
}
}
public class EventSchema {
public String id;
public String eventType;
public String subject;
public Date eventTime;
public String dataVersion;
public String topic;
public String metadataVersion;
public Map<String, Object> data;
}
【问题讨论】:
标签: java azure azure-functions azure-blob-storage azure-eventgrid