服务总线输出绑定在 Azure 中不起作用

问题描述

我有一个 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 时,它在我的本地工作。

没有错误

解决方法

无需指定脚本文件。

以下适用于本地和我这边的 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"
    };
}

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

enter image description here

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...