服务总线输出绑定在 Azure 中不起作用
Posted
技术标签:
【中文标题】服务总线输出绑定在 Azure 中不起作用【英文标题】:Service Bus output binding is not working in Azure 【发布时间】:2021-05-20 16:42:43 【问题描述】:我有一个 nodejs 应用程序。有 3 个函数和 2 个 HTTP 调用。
这是我用于 HTTP 路由的 function.json:
"bindings": [
"authLevel": "function",
"type": "httpTrigger",
"direction": "in",
"name": "req",
"methods": ["post"]
,
"type": "http",
"direction": "out",
"name": "res"
,
"name": "firstStep",
"type": "serviceBus",
"queueName": "firststepqueue",
"connection": "MyServiceBus",
"direction": "out"
],
"scriptFile": "../dist/firstStep/index.js"
当我想绑定时在这里:
context.bindings.firstStep = message;
context.res =
status: 200,
body: "message": "success",
headers:
'Content-Type': 'application/json'
;
context.done();
但队列在 Azure 中不起作用。
当我运行 func start
时,它在我的本地工作。
没有错误!
【问题讨论】:
嗨,有更新吗? 【参考方案1】:不需要指定脚本文件。
以下适用于我这边的本地和天蓝色:
index.js
module.exports = async function (context, req)
context.log('javascript HTTP trigger function processed a request.');
var message = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx';
context.log(message);
context.bindings.firstStep = message;
context.res =
// status: 200, /* Defaults to 200 */
body: "test"
;
function.json
"bindings": [
"authLevel": "anonymous",
"type": "httpTrigger",
"direction": "in",
"name": "req",
"methods": [
"get",
"post"
]
,
"type": "http",
"direction": "out",
"name": "res"
,
"name": "firstStep",
"type": "serviceBus",
"queueName": "firststepqueue",
"connection": "MyServiceBus",
"direction": "out"
]
local.settings.json
"IsEncrypted": false,
"Values":
"AzureWebJobsStorage": "",
"FUNCTIONS_WORKER_RUNTIME": "node",
"MyServiceBus":"Endpoint=sb://bowman1012.servicebus.windows.net/;SharedAccessKeyName=RootManageSharedAccessKey;SharedAccessKey=xxxxxx"
host.json
"version": "2.0",
"logging":
"applicationInsights":
"samplingSettings":
"isEnabled": true,
"excludedTypes": "Request"
,
"extensionBundle":
"id": "Microsoft.Azure.Functions.ExtensionBundle",
"version": "[1.*, 3.1.0)"
Configuration Settings on Azure
【讨论】:
感谢您的回复,我需要定义“scriptFile”。因为我正在使用打字稿。当我没有 scriptFile 时,我得到 Microsoft.Azure.WebJobs.Script: 没有找到具有语言 [节点] 的函数。值不能为空。 (参数“提供者”)。以上是关于服务总线输出绑定在 Azure 中不起作用的主要内容,如果未能解决你的问题,请参考以下文章
为服务总线中继绑定设置 Azure Service Fabric 侦听器
Azure 服务总线触发函数 - 绑定到 MessageReceiver