【问题标题】: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%"。
-
在 local.settings.json 中定义 dataType="string":
-
我尝试在 EventHubTrigger.java 中将参数传递为dataType = "%dataType%",得到以下错误。
-
当我们运行代码时,该值被存储为 dataType="%dataType%"函数.json:而不是我们在 local.settings.json 中传递的数据类型(即字符串),如下所示。
-
相反,我试图通过数据类型="字符串"作为 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));
}
}
-
通过提供请求正文在本地执行该功能:
输出: