【发布时间】:2019-10-15 20:33:03
【问题描述】:
我正在使用 @azure/service-bus JavaScript 库从 Azure Functions 发布和订阅有关 Azure 服务总线主题的消息。 为了接收消息,我使用了从模板创建的 Azure 服务总线主题触发器函数,没有进行任何更改。 当我使用 sender.send(message) 发布消息时,我收到了它。
import { AzureFunction, Context, HttpRequest } from "@azure/functions"
import * as sb from "@azure/service-bus"
const PublishToServiceBus: AzureFunction = async function (context: Context, req: HttpRequest): Promise<void> {
const eventDoc = req.body;
const serviceBusConnectionString = process.env["ServiceBusConnection"];
const topicName = process.env["TopicName"]';
const sbClient = sb.ServiceBusClient.createFromConnectionString(serviceBusConnectionString);
const topicClient = sbClient.createTopicClient(topicName);
const sender = topicClient.createSender();
const message: sb.SendableMessageInfo = { body: eventDoc };
// this works
sender.send(message);
// this creates message without body?
const scheduledEnqueueTimeUtc = new Date(Date.now() + 10000);
sender.scheduleMessages(scheduledEnqueueTimeUtc, [message]);
};
export default PublishToServiceBus;
但是当我使用 sender.scheduleMessages() 安排消息时,我的传入绑定变量在 Azure 服务总线主题触发函数中未定义。
import { AzureFunction, Context } from "@azure/functions"
const serviceBusTopicTrigger: AzureFunction = async function (context: Context, mySbMsg: any): Promise<void> {
context.log('ServiceBus topic trigger function processed message', mySbMsg);
};
export default serviceBusTopicTrigger;
输出:ServiceBus topic trigger function processed message undefined
这是图书馆的问题还是我做错了什么?
【问题讨论】:
-
这似乎是 Azure 服务总线 github.com/Azure/azure-webjobs-sdk/issues/2171 的一个错误
标签: javascript node.js azure azure-functions azureservicebus