【问题标题】:Azure Function not working with serviceBusTrigger NodeJsAzure 函数不适用于 serviceBusTrigger NodeJs
【发布时间】:2023-03-30 20:33:01
【问题描述】:

我一直在尝试在 azure service bus 主题中添加消息。我的天蓝色功能测试表明该消息已被接受(202)。但是订阅端没有消息,请您在此 POC 中帮助我。这是我的代码 sn-p。这是一个从 VS 代码生成的示例,我使用的是 serviceBusTrigger。

const { ServiceBusClient, ReceiveMode } = require("@azure/service-bus"); 
module.exports = async function(context, mySbMsg) {
    context.log('JavaScript ServiceBus topic trigger function processed message', mySbMsg);
    context.done();
};

有什么方法可以检查服务总线主题是否按预期工作?

【问题讨论】:

  • 连接字符串在哪里?

标签: node.js azure azure-servicebus-topics


【解决方案1】:

我没有看到与代码关联的连接字符串和绑定,为了将消息保存到队列,您需要在设置文件中有队列连接字符串。关注docs

{
    "bindings": [
        {
            "schedule": "0/15 * * * * *",
            "name": "myTimer",
            "runsOnStartup": true,
            "type": "timerTrigger",
            "direction": "in"
        },
        {
            "name": "outputSbQueue",
            "type": "serviceBus",
            "queueName": "testqueue",
            "connection": "MyServiceBusConnection",
            "direction": "out"
        }
    ],
    "disabled": false
}

【讨论】:

  • 我在云上的 appsettings.json 中添加了连接字符串。但我无法得到的一件事是,我们是否必须为这种类型的进程创建一个队列。据我所知,队列和主题是使用 ASB 的两种方式。抱歉,我才刚刚开始。
  • 你已经拥有了什么?你创建队列了吗?
  • 不,到目前为止,我已经创建了一个主题和一个订阅。在这种情况下我们需要排队吗?
【解决方案2】:

好的,问题是,我尝试在将消息推送到主题后调用该函数。但是 ServiceBusTriger 的目的是相反的。当队列中有消息时,带有此触发器的函数会处理消息。无需单独调用该函数。是的,所以基础知识,只需使用可用的主题和订阅创建函数,然后尝试将消息放到主题上。您可以在函数的日志中看到消息。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-26
    • 1970-01-01
    • 2019-10-22
    • 1970-01-01
    • 2016-04-02
    相关资源
    最近更新 更多