为什么服务总线输出绑定不适用于 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"
}
我尝试将 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"
}