服务总线输出绑定在Azure中不工作
我有一个nodejs应用程序。有3个函数和2个HTTP调用 以下是HTTP路由的my function.json:服务总线输出绑定在Azure中不工作,azure,azure-functions,azureservicebus,azure-queues,Azure,Azure Functions,Azureservicebus,Azure Queues,我有一个nodejs应用程序。有3个函数和2个HTTP调用 以下是HTTP路由的my function.json: { "bindings": [ { "authLevel": "function", "type": "httpTrigger", "direction": "in", "n
{
"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
时,它在本地运行
没有错误 无需指定脚本文件 以下内容适用于本地和我这边的azure:
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"
};
}
{
"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"
}
]
}
{
"IsEncrypted": false,
"Values": {
"AzureWebJobsStorage": "",
"FUNCTIONS_WORKER_RUNTIME": "node",
"MyServiceBus":"Endpoint=sb://bowman1012.servicebus.windows.net/;SharedAccessKeyName=RootManageSharedAccessKey;SharedAccessKey=xxxxxx"
}
}
{
"version": "2.0",
"logging": {
"applicationInsights": {
"samplingSettings": {
"isEnabled": true,
"excludedTypes": "Request"
}
}
},
"extensionBundle": {
"id": "Microsoft.Azure.Functions.ExtensionBundle",
"version": "[1.*, 3.1.0)"
}
}
function.json
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"
};
}
{
"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"
}
]
}
{
"IsEncrypted": false,
"Values": {
"AzureWebJobsStorage": "",
"FUNCTIONS_WORKER_RUNTIME": "node",
"MyServiceBus":"Endpoint=sb://bowman1012.servicebus.windows.net/;SharedAccessKeyName=RootManageSharedAccessKey;SharedAccessKey=xxxxxx"
}
}
{
"version": "2.0",
"logging": {
"applicationInsights": {
"samplingSettings": {
"isEnabled": true,
"excludedTypes": "Request"
}
}
},
"extensionBundle": {
"id": "Microsoft.Azure.Functions.ExtensionBundle",
"version": "[1.*, 3.1.0)"
}
}
local.settings.json
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"
};
}
{
"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"
}
]
}
{
"IsEncrypted": false,
"Values": {
"AzureWebJobsStorage": "",
"FUNCTIONS_WORKER_RUNTIME": "node",
"MyServiceBus":"Endpoint=sb://bowman1012.servicebus.windows.net/;SharedAccessKeyName=RootManageSharedAccessKey;SharedAccessKey=xxxxxx"
}
}
{
"version": "2.0",
"logging": {
"applicationInsights": {
"samplingSettings": {
"isEnabled": true,
"excludedTypes": "Request"
}
}
},
"extensionBundle": {
"id": "Microsoft.Azure.Functions.ExtensionBundle",
"version": "[1.*, 3.1.0)"
}
}
host.json
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"
};
}
{
"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"
}
]
}
{
"IsEncrypted": false,
"Values": {
"AzureWebJobsStorage": "",
"FUNCTIONS_WORKER_RUNTIME": "node",
"MyServiceBus":"Endpoint=sb://bowman1012.servicebus.windows.net/;SharedAccessKeyName=RootManageSharedAccessKey;SharedAccessKey=xxxxxx"
}
}
{
"version": "2.0",
"logging": {
"applicationInsights": {
"samplingSettings": {
"isEnabled": true,
"excludedTypes": "Request"
}
}
},
"extensionBundle": {
"id": "Microsoft.Azure.Functions.ExtensionBundle",
"version": "[1.*, 3.1.0)"
}
}
Azure上的配置设置
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"
};
}
{
"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"
}
]
}
{
"IsEncrypted": false,
"Values": {
"AzureWebJobsStorage": "",
"FUNCTIONS_WORKER_RUNTIME": "node",
"MyServiceBus":"Endpoint=sb://bowman1012.servicebus.windows.net/;SharedAccessKeyName=RootManageSharedAccessKey;SharedAccessKey=xxxxxx"
}
}
{
"version": "2.0",
"logging": {
"applicationInsights": {
"samplingSettings": {
"isEnabled": true,
"excludedTypes": "Request"
}
}
},
"extensionBundle": {
"id": "Microsoft.Azure.Functions.ExtensionBundle",
"version": "[1.*, 3.1.0)"
}
}
您好,有更新吗?谢谢您的回复,我需要定义“脚本文件”。因为我用的是打字脚本。当我没有脚本文件时,我会得到Microsoft.Azure.WebJobs.Script:未找到语言为[node]的函数。值不能为null。(参数“provider”)。