【发布时间】:2017-10-01 03:33:10
【问题描述】:
我希望编写一个 Azure 函数,该函数从 IoTHub 接收消息并根据消息中的数据将其放置在服务总线队列中。问题是,队列名称将根据消息的参数和我查看的文档而更改,例如this 都将队列名称设置为输出设置的一部分。 有没有人做过类似的事情或有任何代码示例根据传入消息中的值写入队列?我正在尝试设置一个功能,但它甚至不允许我将输出类型设置为服务总线,也不允许将队列名称放入,我不能,因为它不是固定的!
所以如果输入是:
{
“queue”: “MyQ12345”,
“data”: “some data here”
}
该函数应该将数据字段(或整个传入消息)写入服务总线队列“MyQ12345”,该队列已存在于同一订阅/资源组等中。 谢谢
EDIT1:这是我到目前为止所得到的:
所以我尝试了@Mikhail 的建议,这就是我正在做的:
run.csx
using System;
public static string Run(MyPoco myEventHubMessage, TraceWriter log, out string queue)
{
var queueName = myEventHubMessage.QueueName;
queue = queueName;
log.Info($"<IoT Hub => ServiceBus> C# Event Hub trigger function processed a message: {queueName}");
return QueueName;
}
public class MyPoco
{
public string QueueName { get; set; }
public double Other { get; set; }
public double Props { get; set; }
public int Here { get; set; }
}
function.json:
{
"type": "serviceBus",
"name": "$return",
"direction": "out",
"queueName": "{queue}",
"connection": "ServiceBusConnectionString",
"accessRights": "manage"
}
但这给了我以下错误:
Microsoft.Azure.WebJobs.Host:无法将参数“队列”绑定到类型 细绳&。确保绑定支持参数类型。
【问题讨论】:
标签: azure azure-functions azure-iot-hub azure-servicebus-queues