Azure functions Azure函数-IoTubTrigger,但它不会触发

Azure functions Azure函数-IoTubTrigger,但它不会触发,azure-functions,azure-iot-hub,Azure Functions,Azure Iot Hub,我创建了一个带有IoT集线器触发器的azure函数。作为一个例子,我用这个 功能1.cs using IoTHubTrigger = Microsoft.Azure.WebJobs.ServiceBus.EventHubTriggerAttribute; using Microsoft.Azure.WebJobs; using Microsoft.Azure.WebJobs.Host; using Microsoft.ServiceBus.Messaging; using System.Tex

我创建了一个带有IoT集线器触发器的azure函数。作为一个例子,我用这个

功能1.cs

using IoTHubTrigger = Microsoft.Azure.WebJobs.ServiceBus.EventHubTriggerAttribute;

using Microsoft.Azure.WebJobs;
using Microsoft.Azure.WebJobs.Host;
using Microsoft.ServiceBus.Messaging;
using System.Text;
using System.Net.Http;

namespace LogTheIoTHubMessage
{
    public static class Function1
    {
        private static HttpClient client = new HttpClient();

        [FunctionName("Function1")]
        public static void Run([IoTHubTrigger("messages/events", Connection = "ConnectionString")]EventData message, TraceWriter log)
        {
            log.Info($"C# IoT Hub trigger function processed a message: {Encoding.UTF8.GetString(message.GetBytes())}");
        }
    }
}
local.settings.json

{
    "IsEncrypted": false,
  "Values": {
    "AzureWebJobsStorage": "UseDevelopmentStorage=true",
    "AzureWebJobsDashboard": "UseDevelopmentStorage=true",
    "ConnectionString": "HostName=AAA.azure-devices.net;SharedAccessKeyName=iothubowner;SharedAccessKey=YYYYYY"
  }
}
但当我测试函数时,它会启动,但触发器不会触发。为了测试,我使用

C:\Program Files\mosquitto>mosquitto_pub-d-h AAA.azure-devices.net -i TestRaspberryPi-u“AAA.azure devices.net/TestRaspberryPi”-P“SharedAccessSignature sr=YYY”-m“noch ein test”-t “设备/TestRaspberryPi/messages/events/readpipe/”--cafile “c:\Projects\azureiot.pem”-p 8883-V mqttv311

客户端TestRaspberryPi发送连接客户端TestRaspberryPi接收 CONNACK(0)客户端TestRaspberryPi发送发布(d0、q0、r0、m1、, 'devices/TestRaspberryPi/messages/events/readpipe/',…(13字节)) 客户端TestRaspberryPi发送断开连接


EventHubTriggerAttribute
的第一个参数是
eventHubName
,而您正在传递端点名称

您必须使用端点的“事件中心兼容名称”:

“事件中心兼容端点”应用作连接字符串

顺便说一下,建议为您的触发器使用专用的消费者组


希望这有帮助。

您的函数看起来都不错,只是您的连接字符串是错误的。您需要来自事件中心端点的连接字符串。应该是这样的:

Endpoint=sb://iothub-ns-xxxxxxx.servicebus.windows.net/;SharedAccessKeyName=iothubowner;SharedAccessKey=*******;EntityPath=abc

请参见此处的类似示例:

这是不正确的。他使用的触发属性看起来很好。不,这是正确的。(不可能有两种正确的方法吗?:))。请参阅并确定,已授予:)他还可以使用EventHubTrigger属性。在本例中,是的,他需要eventhubname。但是,由于他正在连接到IoT Hub,并且已经在使用触发器,我将坚持使用它。他正在使用
EventHubTrigger
,请看他的第1行。您能指出有关您的方法的官方文档吗?