我尝试了很多,但我不明白如何配置以下内容:
当 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 文件吗?
当 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 文件中。
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=************"
}
}
在您的主题中创建订阅,如下所示。
我正在通过选择订阅将消息发送到我的主题。
我能够得到预期的输出。
请更改您的代码,您还将获得输出。