Java 带有 IoT 中心触发器的 Azure Functions 没有启动

Java Azure Function with IoT Hub trigger is not starting

我试图在每次我的 IoT 中心收到一批 64 条消息时触发一个 java 函数(或其他任何消息,数量并不重要)。我按照这个 guide 创建基本代码,然后我编辑创建这个函数

public class Function {

@FunctionName("ProcessIotMessages")
public void processIotMessages(
        @EventHubTrigger(name = "message",
                eventHubName = "samples-workitems",
                connection = "HUB-1544-DEV_events_IOTHUB") List<String> messages,
        final ExecutionContext context) {...Function Logic...}
}

connection 参数是 IoT 中心连接字符串,格式为事件中心兼容终结点(例如 Endpoint=sb://iothub-hostname-blablabla)。

我使用上面链接的指南中指定的 Maven 插件打包和部署此代码。部署工作正常,我可以看到 mi 正常运行并且 运行 门户没有错误,HUB-1544-DEV_events_IOTHUB 设置应用程序是使用正确的连接字符串正确创建的。

我在门户中注意到的唯一奇怪的事情是触发器 blade。如您所见,cardinality 是 One,而它应该设置为 many,因为我没有在函数中指定 cardinality 参数。根据这个guide,默认的很多。这让我觉得我无法传递正确的触发器语法。

无论如何,问题是这个功能不是从我的本地机器或门户网站启动的。有什么建议么?谢谢

正如@evilSnobu 在评论中发布的那样,问题出在事件中心名称上。只需转到 Portal -> your IoT Hub -> Built-in endpoints 并在其中找到配置触发器的所有信息。