如何用 JavaScript 为新的 Azure 服务总线条目编写 Azure 函数触发器?

问题描述 投票:0回答:1

我尝试了很多,但我不明白如何配置以下内容:

当 Azure 服务总线中有新条目时,我希望触发 Azure 函数 (4.0)。

这就是我期望的工作方式:

const { app } = require('@azure/functions');

const namespace = "this-is-my-service-bus-namespace"
const fullyQualifiedNamespace = `${namespace}.servicebus.windows.net`;

const topicName = "my-topic";

app.serviceBusTopic('serviceBusQueueTrigger1', {
    topicName: topicName,
    connection: fullyQualifiedNamespace,
    handler: (message, context) => {
        context.log('message:', message);
    },
});

这在启动时给我一个错误:

“serviceBusQueueTrigger1”函数出错:无法配置“serviceBusTrigger”类型的绑定“serviceBusTrigger1”。这可能表明 function.json 属性无效。不知道该给哪个医生打电话。

这是什么意思?我什至没有一个名为 function.json 的文件。

微软提供了一些文档here,但我不明白我到底需要做什么。可能带有

connection
的内容是错误的...我必须将设置放入 JSON 文件吗?

javascript azure azure-functions azureservicebus
1个回答
0
投票

当 Azure 服务总线中有新条目时,我希望触发 Azure 函数 (4.0)。

您可以创建一个 Model v4 JavaScript Service Bus 主题触发函数,如下所示 -

像我一样在你的代码中添加

subscriptionName:  '{subscription name which is created in your topic}'

代码-

const { app } =  require('@azure/functions');

app.serviceBusTopic('serviceBusTopicTrigger1', {
connection:  'afreensb01_SERVICEBUS',
topicName:  '{your topic name}',
subscriptionName:  'mysubscription',
handler: (message, context) => {
context.log('Service bus topic function processed message:', message);
}
});

您需要复制如下所示的连接字符串并将值传递到 local.settings 文件中。

enter image description here

local.settings.json-

{
"IsEncrypted": false,

"Values": {
"AzureWebJobsStorage": "UseDevelopmentStorage=true",
"FUNCTIONS_WORKER_RUNTIME": "node",
"AzureWebJobsFeatureFlags": "EnableWorkerIndexing",
"afreensb01_SERVICEBUS": "Endpoint=sb://afreen-sb-01.servicebus.windows.net/;SharedAccessKeyName=RootManageSharedAccessKey;SharedAccessKey=************"
}
}

在您的主题中创建订阅,如下所示。

enter image description here

我正在通过选择订阅将消息发送到我的主题。

enter image description here

我能够得到预期的输出。

enter image description here

请更改您的代码,您还将获得输出。

© www.soinside.com 2019 - 2024. All rights reserved.