【问题标题】:How to configure dataType parameter of @EventHubTrigger?如何配置@EventHubTrigger 的dataType 参数?
【发布时间】:2022-10-17 11:25:22
【问题描述】:

我正在尝试配置 EventHubTrigger 的 dataType 参数。我将在函数应用配置中将 dataType 参数配置为二进制。

我的代码:

@FunctionName("EventHubProcessor")
    public void run(
            @EventHubTrigger(name = "message", eventHubName = "%EventhubName%", connection = "AzureWebJobsEventHubSender", consumerGroup = "%ConsumerGroup_Name%",dataType = "%dataType%", cardinality = Cardinality.MANY) List<String> messages,
            final ExecutionContext context
    )

我正在尝试上述方式。它是配置数据类型的正确方法吗? 任何人都可以提出相同的建议吗?

【问题讨论】:

    标签: java azure-functions azure-eventhub


    【解决方案1】:

    我通过传递复制了代码数据类型EventHubTrigger 的参数为dataType = "%dataType%"

    1. 在 local.settings.json 中定义 dataType="string":

    2. 我尝试在 EventHubTrigger.java 中将参数传递为dataType = "%dataType%",得到以下错误。

    3. 当我们运行代码时,该值被存储为 dataType="%dataType%"函数.json:而不是我们在 local.settings.json 中传递的数据类型(即字符串),如下所示。

      • 试试下面的代码:
      1. 相反,我试图通过数据类型="字符串"作为 eventtrigger.java 中的参数并得到预期的结果。

        EventHubTrigger.java:

        @FunctionName("EventHubTriggerJava1")
        
        public  void  run(
        
        @EventHubTrigger(name = "message", eventHubName = "kpeventhub", connection = "EventHubNSkp_RootManageSharedAccessKey_EVENTHUB", consumerGroup = "$Default", cardinality = Cardinality.MANY,dataType = "string") List<String> message,
        
        final  ExecutionContext  context
        
        ) {
        
        context.getLogger().info("Java Event Hub trigger function executed.");
        
        context.getLogger().info("Length:" + message.size());
        
        message.forEach(singleMessage  -> context.getLogger().info(singleMessage));
        
        }
        
        }
        
      2. 通过提供请求正文在本地执行该功能:

      输出:

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-08-03
      • 1970-01-01
      • 1970-01-01
      • 2022-07-28
      • 1970-01-01
      相关资源
      最近更新 更多