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

92dk7w1h  于 12个月前  发布在  Java
关注(0)|答案(1)|浏览(111)

我尝试了很多,但我不明白如何配置以下内容:
当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);
    },
});

字符串
这给了我一个错误,当它启动:
“serviceBusTrigger1”函数出错:无法配置类型为“serviceBusTrigger”的绑定“serviceBusTrigger1”。这可能表示function.json属性无效。无法确定要调用哪个ctor。
这是什么意思?我甚至没有一个名为function.json的文件。
微软在这里提供了一些文档,但我不明白我到底要做什么。可能,connection的一些东西是错误的...我必须把设置到JSON文件吗?

holgip5t

holgip5t1#

当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);
}
});

字符串
您需要复制如下所示的连接字符串,并在本地.settings文件中传递值。
x1c 0d1x的数据

  • 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=************"
}
}


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



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



我可以得到预期的输出。



请在你的代码中进行修改,你也会得到输出。

相关问题