我很高兴知道Azure Functions中的Java支持目前处于预览状态,但是我想知道该功能是否丢失或找不到。
我要解决的问题如下。创建一个将接收日期参数的HTTPTriger,然后读取一个Blob存储并将所有以该参数开头(以.qmsg结尾)的Blob的URI放入队列中以进行进一步处理。
使用ICollector,C#示例代码显示以下模式。
public static class ICollectorExample
{
[FunctionName("CopyQueueMessageICollector")]
public static void Run(
[QueueTrigger("myqueue-items-source-3")] string myQueueItem,
[Queue("myqueue-items-destination")] ICollector<string> myDestinationQueue,
TraceWriter log)
{
log.Info($"C# function processed: {myQueueItem}");
myDestinationQueue.Add($"Copy 1: {myQueueItem}");
myDestinationQueue.Add($"Copy 2: {myQueueItem}");
}
}
Java文件说要使用OutputBinding
那我该用什么来确保我俩都得到?
尼克(c)
答案 0 :(得分:0)
您只需要使用List<String>
作为T值而不是String
。请参见以下代码示例。
public class QueueTriggerJava {
/**
* This function will be invoked when a new message is received at the specified path. The message contents are provided as input to this function.
*/
@FunctionName("QueueTriggerJava")
public void queueHandler(
@QueueTrigger(name = "message", queueName = "input-queue-items", connection = "AzureWebJobsStorage") String message,
@QueueOutput(name = "outMessages", queueName = "outout-queue-items", connection = "AzureWebJobsStorage") OutputBinding<List<String>> outMessages,
final ExecutionContext context
) {
List<String> allMessages = new LinkedList<String>();
allMessages.add(message);
allMessages.add(message);
outMessages.setValue(allMessages);
context.getLogger().info("Message count: " + outMessages.getValue().size());
}
}