为什么服务总线输出绑定不适用于 Azure Functions? - 没有错误

Why Service Bus Output binding is not working for Azure Functions? - No errors

我尝试将 HTTPTriggered 消息发送到服务总线输出。 我正在关注 https://docs.microsoft.com/en-us/azure/azure-functions/functions-bindings-service-bus-output?tabs=csharp

的示例

当我从 Visual Studio 代码执行此代码时,我没有收到任何错误。 在此我在本地调试。

但是服务总线门户显示有 0 条传入消息。有什么问题吗? 代码有问题吗?

using System;
using System.IO;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Mvc;
using Microsoft.Azure.WebJobs;
using Microsoft.Azure.WebJobs.Extensions.Http;
using Microsoft.AspNetCore.Http;
using Microsoft.Extensions.Logging;
using Newtonsoft.Json;
using Microsoft.ServiceBus.Messaging;
using Microsoft.ServiceBus;


namespace Company.Function
{
    public static class HttpTriggerCSharp1
    {
    [FunctionName("ServiceBusOutput")]

    [return: ServiceBus("queue1", Connection ="Endpoint=sb://12345servicebus.servicebus.windows.net/;SharedAccessKeyName=RootManageSharedAccessKey;SharedAccessKey=12345+cmc8501HJ6Ips2OxIZKtO6gctT8d1ZpNN0GNw=")]
    public static string ServiceBusOutput([HttpTrigger] dynamic input, ILogger log)
    {

        //log.LogInformation($"C# function processed: {input.Text}");
        //return input.Text;
        return "MessageToServiceBus123"
    }
}

}

Http Functions:

        ServiceBusOutput:  http://localhost:7071/api/ServiceBusOutput

[10.3.2020 21.35.37] Host lock lease acquired by instance ID '0000000000000000000000008457DB20'.
[10.3.2020 21.35.44] Executing HTTP request: {
[10.3.2020 21.35.44]   "requestId": "0ccbb526-b861-407a-893c-cc0821b20535",
[10.3.2020 21.35.44]   "method": "GET",
[10.3.2020 21.35.44]   "uri": "/api/ServiceBusOutput"
[10.3.2020 21.35.44] }
[10.3.2020 21.35.45] Executing 'ServiceBusOutput' (Reason='This function was programmatically called 
via the host APIs.', Id=faf4083f-504a-473b-b9fa-22ac0783cdb0)
[10.3.2020 21.35.45] Executed 'ServiceBusOutput' (Succeeded, Id=faf4083f-504a-473b-b9fa-22ac0783cdb0)
[10.3.2020 21.35.45] Executed HTTP request: {
[10.3.2020 21.35.45]   "requestId": "0ccbb526-b861-407a-893c-cc0821b20535",
[10.3.2020 21.35.45]   "method": "GET",
[10.3.2020 21.35.45]   "uri": "/api/ServiceBusOutput",
[10.3.2020 21.35.45]   "identities": [
[10.3.2020 21.35.45]     {
[10.3.2020 21.35.45]       "type": "WebJobsAuthLevel",
[10.3.2020 21.35.45]       "level": "Admin"
[10.3.2020 21.35.45]     }
[10.3.2020 21.35.45]   ],
[10.3.2020 21.35.45]   "status": 200,
[10.3.2020 21.35.45]   "duration": 906
[10.3.2020 21.35.45] }
[10.3.2020 21.35.45] Executing HTTP request: {
[10.3.2020 21.35.45]   "requestId": "d2587ceb-f728-4cda-be99-ff7852384a59",
[10.3.2020 21.35.45]   "method": "GET",
[10.3.2020 21.35.45]   "uri": "/favicon.ico"
[10.3.2020 21.35.45] }
[10.3.2020 21.35.46] Executed HTTP request: {
[10.3.2020 21.35.46]   "requestId": "d2587ceb-f728-4cda-be99-ff7852384a59",
[10.3.2020 21.35.46]   "method": "GET",
[10.3.2020 21.35.46]   "uri": "/favicon.ico",
[10.3.2020 21.35.46]   "identities": [],
[10.3.2020 21.35.46]   "status": 404,
[10.3.2020 21.35.46]   "duration": 645
[10.3.2020 21.35.46] }

正如文档所说,

You can set the Connection property to specify the name of an app setting that contains the Service Bus connection string to use

您应该在 local.settings.json 中将连接字符串值设置为键值对并提及键

例如,

[FunctionName("ServiceBusOutput")]
[return: ServiceBus("myqueue", Connection = "ServiceBusConnection")]
public static string Run([HttpTrigger] dynamic input, ILogger log)

Local.settings.json

{  
  "ServiceBusConnection": "whatever connection string"
}