首页 > 解决方案 > 无法在事件中心触发 Azure 功能

问题描述

我一直在尝试开始使用 Azure 事件中心和 Azure 功能。在遵循确切的文档时 - 我无法让事件中心触发器工作。我有以下设置:

我在 HTTP 函数中调用的函数(生成事件日志):

 @EventHubOutput(name = "message-new", eventHubName = "KCETest1", connection = "KCETest1_all_EVENTHUB", dataType = "string" )
        public String sendOrder(ExecutionContext context) {
            return "foobar";
    }

我的事件中心的快照显示正在触发事件: 事件中心接收消息

但是,我无法获得任何工作来触发 azure 功能。我尝试了以下所有方法,只是为了至少将一些内容写入日志。(如您所见 - 我一直在玩弄所有变量 - 认为这可能是根本原因)

public class EventHubTriggerJava1 {
    /**
     * This function will be invoked when an event is received from Event Hub.
     */
    @FunctionName("EventHubTriggerJava1")
    public void run(
        @EventHubTrigger(name = "msg", eventHubName = "KCETest1", connection = "KCETest1_all_EVENTHUB", consumerGroup = "$Default", cardinality = Cardinality.ONE , dataType = "string") String message,
        final ExecutionContext context
    ) {
        context.getLogger().info("Java Event Hub trigger 1function executed.");
        context.getLogger().info("Length:" + message);
    }

    @FunctionName("EventHubTriggerJava2")
    public void run(
        @EventHubTrigger(name = "msg2", eventHubName = "testhub1", connection = "KCETest1_all_EVENTHUB", consumerGroup = "$Default", cardinality = Cardinality.ONE) EventData message,
        final ExecutionContext context
    ) {
        context.getLogger().info("Java Event Hub trigger 2function executed.");
        context.getLogger().info("Length:" + message.toString());
    }

    @FunctionName("EventHubTriggerJava3")
    public void run(
        @EventHubTrigger(name = "msg3", eventHubName = "testhub1", connection = "KCETest1_all_EVENTHUB", consumerGroup = "$Default") List<String> message,
        final ExecutionContext context
    ) {
        context.getLogger().info("Java Event Hub trigger 3 function executed.");
        context.getLogger().info("Length:" + message.get(0).toString());
    }
}

我的想法不多了——你有什么建议吗?

多谢!

标签: azureazure-functionsazure-eventhub

解决方案


推荐阅读