azure-functions-kafka-extension icon indicating copy to clipboard operation
azure-functions-kafka-extension copied to clipboard

Support KafkaEventData.Key for Java

Open TsuyoshiUshio opened this issue 4 years ago • 0 comments

Issue

If we want to use KafkaEventData.Key, it will requires to define your function parameter with the type that has two generic types with KafkaEventData<string, string>.

        public async Task SampleConsumerAsync(
[KafkaTrigger(
                "BrokerList",
                "repro",
                ConsumerGroup = "$Default",
                AuthenticationMode = BrokerAuthenticationMode.Plain)] KafkaEventData<string, string>[] kafkaEvents,
ILogger logger)

However, from the other language implementation, there is not way to set KafkaEventData<string, string> type.
So that it is considered as required key is false.

https://github.com/Azure/azure-functions-kafka-extension/blob/dd977eda6414490be466ca98d6f01c444470cf2e/src/Microsoft.Azure.WebJobs.Extensions.Kafka/Serialization/SerializationHelper.cs#L124

How to enable it?

  • Update the KafkaTriggerAttribute with adding new property e.g. EnableKey
  • Add annotation (or update function.json) to https://github.com/Azure/azure-functions-java-library/tree/dev/src/main/java/com/microsoft/azure/functions/annotation
  • Add Unit Test and Language End To End testing for the support.

TsuyoshiUshio avatar Dec 01 '20 18:12 TsuyoshiUshio