Announcing Preview of the Azure Functions Kafka extension

Published Apr 27 2020 09:30 PM 9,752 Views
Microsoft

kafka-functions-love.png

We're excited to announce today the preview of the Kafka Extension for Azure Functions. With this new extension you can now have functions trigger in response to messages in Kafka Topics, or write to a Kafka Topic through the output binding. This extension is supported when hosting functions in the Premium plan enabling it to elastically scale and trigger on Kafka messages. You can also use Kafka with Azure Functions containers in Kubernetes alongside Kubernetes-based Event Driven Autoscaling (KEDA).

 

How to get started with the Kafka Trigger

To get started with using the Kafka trigger, you need to include the extension in your function project.

 

.NET Functions

For .NET functions, you can pull in the Kafka NuGet extension.

dotnet add package Microsoft.Azure.WebJobs.Extensions.Kafka --version 2.0.0-beta
 
JavaScript, TypeScript, Python, Java, and PowerShell Functions

For functions in other languages, you need to install the extension into your project using the Azure Functions core tools

func extensions install --package Microsoft.Azure.WebJobs.Extensions.Kafka --version 2.0.0-beta

You can then create a function that can activate and run whenever a message is dropped in a Kafka Topic.

 

Example C# Trigger using Confluent Cloud (managed Kafka)

 

public static class kafka_example
    {
        [FunctionName("kafkaApp")]
        public static void ConfluentCloudStringTrigger(
             [KafkaTrigger(
                "BootstrapServer",
                "users",
                ConsumerGroup = "<ConsumerGroup>",
                Protocol = BrokerProtocol.SaslSsl,
                AuthenticationMode = BrokerAuthenticationMode.Plain,
                Username = "<APIKey>",
                Password = "<APISecret>",
                SslCaLocation = "confluent_cloud_cacert.pem")]
        KafkaEventData<string> kafkaEvent,
        ILogger logger)
        {        
            logger.LogInformation(kafkaEvent.Value.ToString());
        }
    }

 

 

 

 

 

Example host.json

 

{
  "version": "2.0",
  "extensions": {
    "kafka": {
      "maxBatchSize": 100
    }
  }
}

You can find more settings documented here

 

Example functions.json

Note: This is auto-generated for C#

{

  "bindings": [
    {
      "type": "kafkaTrigger",
      "consumerGroup": "azfunc",
      "protocol": "saslSsl",
      "authenticationMode": "plain",
      "username": "<KafkaAPIKey>",
      "password": "<KakfaSecret>",
      "sslCaLocation": "<RootCertificateFile>",
      "topic": "<KafkaTopicName>",
      "brokerList": "<Server>.eastus.azure.confluent.cloud:9092",
      "name": "kafkaEvent"
    }
  ],

}

Please find a complete end to end walkthrough and sample app using the Confluent Cloud in this GitHub repo Kafka extension sample with Confluent Cloud.

 

This extension is being developed in the open, please contribute, try out and post any issues on the Azure Functions Kafka extension GitHub repo.

 

Along with the Rabbit MQ Trigger that we announced last year that is now also supported in the Premium Plan, we continue to innovate to bring in more Cloud Native and Open Source event sources. We are looking forward to see what applications you build with this !

7 Comments
%3CLINGO-SUB%20id%3D%22lingo-sub-1388248%22%20slang%3D%22en-US%22%3ERe%3A%20Announcing%20Preview%20of%20the%20Azure%20Functions%20Kafka%20extension%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-1388248%22%20slang%3D%22en-US%22%3E%3CP%3EThis%20sounds%20great%2C%20thanks.%20We%20might%20have%20a%20team%20using%20this%2C%20so%20will%20post%20feedback%20based%20on%20testing.%20Cheers.%26nbsp%3B%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-1342348%22%20slang%3D%22en-US%22%3EAnnouncing%20Preview%20of%20the%20Azure%20Functions%20Kafka%20extension%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-1342348%22%20slang%3D%22en-US%22%3E%3CP%3E%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%20lia-image-align-inline%22%20image-alt%3D%22kafka-functions-love.png%22%20style%3D%22width%3A%20942px%3B%22%3E%3CIMG%20src%3D%22https%3A%2F%2Ftechcommunity.microsoft.com%2Ft5%2Fimage%2Fserverpage%2Fimage-id%2F187093iD0FF2F5E988B421C%2Fimage-size%2Flarge%3Fv%3Dv2%26amp%3Bpx%3D999%22%20role%3D%22button%22%20title%3D%22kafka-functions-love.png%22%20alt%3D%22kafka-functions-love.png%22%20%2F%3E%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3EWe're%20excited%20to%20announce%20today%20the%20preview%20of%20the%20%3CA%20href%3D%22https%3A%2F%2Fgithub.com%2FAzure%2Fazure-functions-kafka-extension%22%20target%3D%22_blank%22%20rel%3D%22noopener%20noreferrer%22%3EKafka%20Extension%3C%2FA%3E%20for%20Azure%20Functions.%20With%20this%20new%20extension%20you%20can%20now%20have%20functions%20trigger%20in%20response%20to%20messages%20in%20Kafka%20Topics%2C%20or%20write%20to%20a%20Kafka%20Topic%20through%20the%20output%20binding.%20This%20extension%20is%20supported%20when%20hosting%20functions%20in%20the%20%3CA%20href%3D%22https%3A%2F%2Fdocs.microsoft.com%2Fen-us%2Fazure%2Fazure-functions%2Ffunctions-scale%23premium-plan%22%20target%3D%22_blank%22%20rel%3D%22noopener%20noreferrer%22%3EPremium%20plan%3C%2FA%3E%20enabling%20it%20to%20elastically%20scale%20and%20trigger%20on%20Kafka%20messages.%20You%20can%20also%20use%20Kafka%20with%20Azure%20Functions%20containers%20in%20Kubernetes%20alongside%26nbsp%3B%3CSPAN%3EKubernetes-based%20Event%20Driven%20Autoscaling%26nbsp%3B(%3C%2FSPAN%3E%3CA%20href%3D%22https%3A%2F%2Fkeda.sh%2Fscalers%2Fapache-kafka%2F%22%20target%3D%22_blank%22%20rel%3D%22noopener%20nofollow%20noreferrer%22%3EKEDA).%3C%2FA%3E%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CH3%20id%3D%22how-to-get-started-with-the-kafka-trigger%22%20id%3D%22toc-hId-1142564655%22%20id%3D%22toc-hId-1142564655%22%20id%3D%22toc-hId-1142564655%22%20id%3D%22toc-hId-1142564655%22%20id%3D%22toc-hId-1142564655%22%20id%3D%22toc-hId-1142564655%22%20id%3D%22toc-hId-1142564655%22%20id%3D%22toc-hId-1142564655%22%20id%3D%22toc-hId-1142564655%22%20id%3D%22toc-hId-1142564655%22%3EHow%20to%20get%20started%20with%20the%20Kafka%20Trigger%3C%2FH3%3E%0A%3CP%3ETo%20get%20started%20with%20using%20the%20Kafka%20trigger%2C%20you%20need%20to%20include%20the%20extension%20in%20your%20function%20project.%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CH5%20id%3D%22-net-functions%22%20id%3D%22toc-hId-36174770%22%20id%3D%22toc-hId-36174770%22%20id%3D%22toc-hId-36174770%22%20id%3D%22toc-hId-36174770%22%20id%3D%22toc-hId-36174770%22%20id%3D%22toc-hId-36174770%22%20id%3D%22toc-hId-36174770%22%20id%3D%22toc-hId-36174770%22%20id%3D%22toc-hId-36174770%22%20id%3D%22toc-hId-36174770%22%3E.NET%20Functions%3C%2FH5%3E%0A%3CP%3EFor%20.NET%20functions%2C%20you%20can%20pull%20in%20the%20Kafka%20%3CA%20href%3D%22https%3A%2F%2Fwww.nuget.org%2Fpackages%2FMicrosoft.Azure.WebJobs.Extensions.Kafka%2F2.0.0-beta%22%20target%3D%22_blank%22%20rel%3D%22noopener%20nofollow%20noreferrer%22%3ENuGet%20extension%3C%2FA%3E.%3C%2FP%3E%0A%3CPRE%3E%3CCODE%3E%3CSPAN%20class%3D%22hljs-selector-tag%22%3Edotnet%3C%2FSPAN%3E%20%3CSPAN%20class%3D%22hljs-selector-tag%22%3Eadd%3C%2FSPAN%3E%20%3CSPAN%20class%3D%22hljs-selector-tag%22%3Epackage%3C%2FSPAN%3E%20%3CSPAN%20class%3D%22hljs-selector-tag%22%3EMicrosoft%3C%2FSPAN%3E%3CSPAN%20class%3D%22hljs-selector-class%22%3E.Azure%3C%2FSPAN%3E%3CSPAN%20class%3D%22hljs-selector-class%22%3E.WebJobs%3C%2FSPAN%3E%3CSPAN%20class%3D%22hljs-selector-class%22%3E.Extensions%3C%2FSPAN%3E%3CSPAN%20class%3D%22hljs-selector-class%22%3E.Kafka%3C%2FSPAN%3E%20%3CSPAN%20class%3D%22hljs-selector-tag%22%3E--version%3C%2FSPAN%3E%202%3CSPAN%20class%3D%22hljs-selector-class%22%3E.0%3C%2FSPAN%3E%3CSPAN%20class%3D%22hljs-selector-class%22%3E.0-beta%3C%2FSPAN%3E%0A%3C%2FCODE%3E%3C%2FPRE%3E%0A%3CH5%20id%3D%22toc-hId--1771279693%22%20id%3D%22toc-hId--1771279693%22%20id%3D%22toc-hId--1771279693%22%20id%3D%22toc-hId--1771279693%22%20id%3D%22toc-hId--1771279693%22%20id%3D%22toc-hId--1771279693%22%20id%3D%22toc-hId--1771279693%22%20id%3D%22toc-hId--1771279693%22%20id%3D%22toc-hId--1771279693%22%20id%3D%22toc-hId--1771279693%22%3E%26nbsp%3B%3C%2FH5%3E%0A%3CH5%20id%3D%22javascript-typescript-python-java-and-powershell-functions%22%20id%3D%22toc-hId-716233140%22%20id%3D%22toc-hId-716233140%22%20id%3D%22toc-hId-716233140%22%20id%3D%22toc-hId-716233140%22%20id%3D%22toc-hId-716233140%22%20id%3D%22toc-hId-716233140%22%20id%3D%22toc-hId-716233140%22%20id%3D%22toc-hId-716233140%22%20id%3D%22toc-hId-716233140%22%20id%3D%22toc-hId-716233140%22%3EJavaScript%2C%20TypeScript%2C%20Python%2C%20Java%2C%20and%20PowerShell%20Functions%3C%2FH5%3E%0A%3CP%3EFor%20functions%20in%20other%20languages%2C%20you%20need%20to%20install%20the%20extension%20into%20your%20project%20using%20the%20Azure%20Functions%20core%20tools%3CCODE%3E%3C%2FCODE%3E%3C%2FP%3E%0A%3CPRE%3Efunc%20extensions%20install%20--package%20Microsoft.Azure.WebJobs.Extensions.Kafka%20--version%202.0.0-beta%3CCODE%3E%3C%2FCODE%3E%3C%2FPRE%3E%0A%3CP%3EYou%20can%20then%20create%20a%20function%20that%20can%20activate%20and%20run%20whenever%20a%20message%20is%20dropped%20in%20a%20Kafka%20Topic.%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CH5%20id%3D%22example-c-trigger-using-confluent-cloud-managed-kafka%22%20id%3D%22toc-hId--1091221323%22%20id%3D%22toc-hId--1091221323%22%20id%3D%22toc-hId--1091221323%22%20id%3D%22toc-hId--1091221323%22%20id%3D%22toc-hId--1091221323%22%20id%3D%22toc-hId--1091221323%22%20id%3D%22toc-hId--1091221323%22%20id%3D%22toc-hId--1091221323%22%20id%3D%22toc-hId--1091221323%22%20id%3D%22toc-hId--1091221323%22%3EExample%20C%23%20Trigger%20using%20Confluent%20Cloud%20(managed%20Kafka)%3C%2FH5%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CPRE%20class%3D%22lia-code-sample%20language-csharp%22%3E%3CCODE%3Epublic%20static%20class%20kafka_example%0A%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%5BFunctionName(%22kafkaApp%22)%5D%0A%20%20%20%20%20%20%20%20public%20static%20void%20ConfluentCloudStringTrigger(%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%5BKafkaTrigger(%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22BootstrapServer%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22users%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20ConsumerGroup%20%3D%20%22%3CCONSUMERGROUP%3E%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20Protocol%20%3D%20BrokerProtocol.SaslSsl%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20AuthenticationMode%20%3D%20BrokerAuthenticationMode.Plain%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20Username%20%3D%20%22%3CAPIKEY%3E%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20Password%20%3D%20%22%3CAPISECRET%3E%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20SslCaLocation%20%3D%20%22confluent_cloud_cacert.pem%22)%5D%0A%20%20%20%20%20%20%20%20KafkaEventData%3CSTRING%3E%20kafkaEvent%2C%0A%20%20%20%20%20%20%20%20ILogger%20logger)%0A%20%20%20%20%20%20%20%20%7B%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20%20%20%20%20logger.LogInformation(kafkaEvent.Value.ToString())%3B%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%3C%2FSTRING%3E%3C%2FAPISECRET%3E%3C%2FAPIKEY%3E%3C%2FCONSUMERGROUP%3E%3C%2FCODE%3E%3C%2FPRE%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CH5%20id%3D%22example-host-json%22%20id%3D%22toc-hId-1396291510%22%20id%3D%22toc-hId-1396291510%22%20id%3D%22toc-hId-1396291510%22%20id%3D%22toc-hId-1396291510%22%20id%3D%22toc-hId-1396291510%22%20id%3D%22toc-hId-1396291510%22%20id%3D%22toc-hId-1396291510%22%20id%3D%22toc-hId-1396291510%22%20id%3D%22toc-hId-1396291510%22%20id%3D%22toc-hId-1396291510%22%3EExample%20host.json%3C%2FH5%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CPRE%3E%3CCODE%20class%3D%22lang-json%22%3E%7B%0A%20%20%3CSPAN%20class%3D%22hljs-attr%22%3E%22version%22%3C%2FSPAN%3E%3A%20%3CSPAN%20class%3D%22hljs-string%22%3E%222.0%22%3C%2FSPAN%3E%2C%0A%20%20%3CSPAN%20class%3D%22hljs-attr%22%3E%22extensions%22%3C%2FSPAN%3E%3A%20%7B%0A%20%20%20%20%3CSPAN%20class%3D%22hljs-attr%22%3E%22kafka%22%3C%2FSPAN%3E%3A%20%7B%0A%20%20%20%20%20%20%3CSPAN%20class%3D%22hljs-attr%22%3E%22maxBatchSize%22%3C%2FSPAN%3E%3A%20%3CSPAN%20class%3D%22hljs-number%22%3E100%3C%2FSPAN%3E%0A%20%20%20%20%7D%0A%20%20%7D%0A%7D%0A%3C%2FCODE%3E%3C%2FPRE%3E%0A%3CP%3EYou%20can%20find%20more%20settings%20documented%20%3CA%20href%3D%22https%3A%2F%2Fgithub.com%2FAzure%2Fazure-functions-kafka-extension%23configuration-settings%22%20target%3D%22_blank%22%20rel%3D%22noopener%20noreferrer%22%3Ehere%3C%2FA%3E%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CH5%20id%3D%22example-functions-json%22%20id%3D%22toc-hId--411162953%22%20id%3D%22toc-hId--411162953%22%20id%3D%22toc-hId--411162953%22%20id%3D%22toc-hId--411162953%22%20id%3D%22toc-hId--411162953%22%20id%3D%22toc-hId--411162953%22%20id%3D%22toc-hId--411162953%22%20id%3D%22toc-hId--411162953%22%20id%3D%22toc-hId--411162953%22%20id%3D%22toc-hId--411162953%22%3EExample%20functions.json%3C%2FH5%3E%0A%3CP%3E%3CFONT%20size%3D%222%22%3ENote%3A%20This%20is%20auto-generated%20for%20C%23%3C%2FFONT%3E%3C%2FP%3E%0A%3CPRE%3E%3CCODE%20class%3D%22lang-json%22%3E%7B%0A%0A%20%20%3CSPAN%20class%3D%22hljs-attr%22%3E%22bindings%22%3C%2FSPAN%3E%3A%20%5B%0A%20%20%20%20%7B%0A%20%20%20%20%20%20%3CSPAN%20class%3D%22hljs-attr%22%3E%22type%22%3C%2FSPAN%3E%3A%20%3CSPAN%20class%3D%22hljs-string%22%3E%22kafkaTrigger%22%3C%2FSPAN%3E%2C%0A%20%20%20%20%20%20%3CSPAN%20class%3D%22hljs-attr%22%3E%22consumerGroup%22%3C%2FSPAN%3E%3A%20%3CSPAN%20class%3D%22hljs-string%22%3E%22azfunc%22%3C%2FSPAN%3E%2C%0A%20%20%20%20%20%20%3CSPAN%20class%3D%22hljs-attr%22%3E%22protocol%22%3C%2FSPAN%3E%3A%20%3CSPAN%20class%3D%22hljs-string%22%3E%22saslSsl%22%3C%2FSPAN%3E%2C%0A%20%20%20%20%20%20%3CSPAN%20class%3D%22hljs-attr%22%3E%22authenticationMode%22%3C%2FSPAN%3E%3A%20%3CSPAN%20class%3D%22hljs-string%22%3E%22plain%22%3C%2FSPAN%3E%2C%0A%20%20%20%20%20%20%3CSPAN%20class%3D%22hljs-attr%22%3E%22username%22%3C%2FSPAN%3E%3A%20%3CSPAN%20class%3D%22hljs-string%22%3E%22%3CKAFKAAPIKEY%3E%22%3C%2FKAFKAAPIKEY%3E%3C%2FSPAN%3E%2C%0A%20%20%20%20%20%20%3CSPAN%20class%3D%22hljs-attr%22%3E%22password%22%3C%2FSPAN%3E%3A%20%3CSPAN%20class%3D%22hljs-string%22%3E%22%3CKAKFASECRET%3E%22%3C%2FKAKFASECRET%3E%3C%2FSPAN%3E%2C%0A%20%20%20%20%20%20%3CSPAN%20class%3D%22hljs-attr%22%3E%22sslCaLocation%22%3C%2FSPAN%3E%3A%20%3CSPAN%20class%3D%22hljs-string%22%3E%22%3CROOTCERTIFICATEFILE%3E%22%3C%2FROOTCERTIFICATEFILE%3E%3C%2FSPAN%3E%2C%0A%20%20%20%20%20%20%3CSPAN%20class%3D%22hljs-attr%22%3E%22topic%22%3C%2FSPAN%3E%3A%20%3CSPAN%20class%3D%22hljs-string%22%3E%22%3CKAFKATOPICNAME%3E%22%3C%2FKAFKATOPICNAME%3E%3C%2FSPAN%3E%2C%0A%20%20%20%20%20%20%3CSPAN%20class%3D%22hljs-attr%22%3E%22brokerList%22%3C%2FSPAN%3E%3A%20%3CSPAN%20class%3D%22hljs-string%22%3E%22%3CSERVER%3E.eastus.azure.confluent.cloud%3A9092%22%3C%2FSERVER%3E%3C%2FSPAN%3E%2C%0A%20%20%20%20%20%20%3CSPAN%20class%3D%22hljs-attr%22%3E%22name%22%3C%2FSPAN%3E%3A%20%3CSPAN%20class%3D%22hljs-string%22%3E%22kafkaEvent%22%3C%2FSPAN%3E%0A%20%20%20%20%7D%0A%20%20%5D%2C%0A%0A%7D%0A%3C%2FCODE%3E%3C%2FPRE%3E%0A%3CP%3EPlease%20find%20a%20complete%20end%20to%20end%20walkthrough%20and%20sample%20app%20using%20the%20Confluent%20Cloud%20in%20this%20GitHub%20repo%20%3CA%20href%3D%22https%3A%2F%2Fgithub.com%2FAzure%2Fazure-functions-kafka-extension-sample-confluent%22%20target%3D%22_blank%22%20rel%3D%22noopener%20noreferrer%22%3EKafka%20extension%20sample%20with%20Confluent%20Cloud.%3C%2FA%3E%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3EThis%20extension%20is%20being%20developed%20in%20the%20open%2C%20please%20contribute%2C%20try%20out%20and%20post%20any%20issues%20on%20the%20%3CA%20href%3D%22https%3A%2F%2Fgithub.com%2FAzure%2Fazure-functions-kafka-extension%22%20target%3D%22_blank%22%20rel%3D%22noopener%20noreferrer%22%3EAzure%20Functions%20Kafka%20extension%20GitHub%20repo%3C%2FA%3E.%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3EAlong%20with%20the%20%3CA%20href%3D%22https%3A%2F%2Fdev.to%2Fazure%2Fannouncing-the-rabbitmq-extension-for-azure-functions-2mbo%22%20target%3D%22_blank%22%20rel%3D%22noopener%20nofollow%20noreferrer%22%3ERabbit%20MQ%20Trigger%3C%2FA%3E%20that%20we%20announced%20last%20year%20that%20is%20now%20also%20supported%20in%20the%20Premium%20Plan%2C%20we%20continue%20to%20innovate%20to%20bring%20in%20more%20Cloud%20Native%20and%20Open%20Source%20event%20sources.%20We%20are%20looking%20forward%20to%20see%20what%20applications%20you%20build%20with%20this%20!%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-TEASER%20id%3D%22lingo-teaser-1342348%22%20slang%3D%22en-US%22%3E%3CP%3E%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%20lia-image-align-inline%22%20image-alt%3D%22kafka-functions-love.png%22%20style%3D%22width%3A%20942px%3B%22%3E%3CIMG%20src%3D%22https%3A%2F%2Ftechcommunity.microsoft.com%2Ft5%2Fimage%2Fserverpage%2Fimage-id%2F187092iE53F87F751CE10F0%2Fimage-size%2Flarge%3Fv%3Dv2%26amp%3Bpx%3D999%22%20role%3D%22button%22%20title%3D%22kafka-functions-love.png%22%20alt%3D%22kafka-functions-love.png%22%20%2F%3E%3C%2FSPAN%3E%3C%2FP%3E%3C%2FLINGO-TEASER%3E%3CLINGO-LABS%20id%3D%22lingo-labs-1342348%22%20slang%3D%22en-US%22%3E%3CLINGO-LABEL%3EAzure%20Functions%3C%2FLINGO-LABEL%3E%3C%2FLINGO-LABS%3E%3CLINGO-SUB%20id%3D%22lingo-sub-1378398%22%20slang%3D%22en-US%22%3ERe%3A%20Announcing%20Preview%20of%20the%20Azure%20Functions%20Kafka%20extension%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-1378398%22%20slang%3D%22en-US%22%3E%3CP%3EHi%20Anirudh%2C%20thanks%20for%20this!%20I%20have%20tried%20out%26nbsp%3B%20and%20used%20the%20C%23%20example%20and%20it%20works%20like%20a%20charm!%20However%2C%20i'm%20relatively%20new%20to%20Java%20and%20we%20have%20a%20requirement%20for%20implementing%20this%20in%20Java%20too.%20Any%20help%20on%20the%20Java%20equivalent%20would%20be%20highly%20appreciated!%3C%2FP%3E%3CDIV%20class%3D%22mceNonEditable%20lia-copypaste-placeholder%22%3E%26nbsp%3B%3C%2FDIV%3E%3CDIV%20class%3D%22mceNonEditable%20lia-copypaste-placeholder%22%3E%26nbsp%3B%3C%2FDIV%3E%3CP%3E%3CA%20href%3D%22https%3A%2F%2Ffunctionscdn.azureedge.net%2Fpublic%2FExtensionBundles%2FMicrosoft.Azure.Functions.ExtensionBundle%2Findex.json%22%20target%3D%22_blank%22%20rel%3D%22noopener%20nofollow%20noreferrer%22%3Ehttps%3A%2F%2Ffunctionscdn.azureedge.net%2Fpublic%2FExtensionBundles%2FMicrosoft.Azure.Functions.ExtensionBundle%2Findex.json%3C%2FA%3E%26nbsp%3Breturn%20the%20version%20as%201.1.1%3C%2FP%3E%3CDIV%20class%3D%22mceNonEditable%20lia-copypaste-placeholder%22%3E%26nbsp%3B%3C%2FDIV%3E%3CDIV%20class%3D%22mceNonEditable%20lia-copypaste-placeholder%22%3E%26nbsp%3B%3C%2FDIV%3E%3CDIV%20class%3D%22mceNonEditable%20lia-copypaste-placeholder%22%3E%26nbsp%3B%3C%2FDIV%3E%3CDIV%20class%3D%22mceNonEditable%20lia-copypaste-placeholder%22%3E%26nbsp%3B%3C%2FDIV%3E%3CP%3E%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%20lia-image-align-inline%22%20image-alt%3D%22Capture.PNG%22%20style%3D%22width%3A%20999px%3B%22%3E%3CIMG%20src%3D%22https%3A%2F%2Ftechcommunity.microsoft.com%2Ft5%2Fimage%2Fserverpage%2Fimage-id%2F190478i1CEAA500209CBB0A%2Fimage-size%2Flarge%3Fv%3Dv2%26amp%3Bpx%3D999%22%20role%3D%22button%22%20title%3D%22Capture.PNG%22%20alt%3D%22Capture.PNG%22%20%2F%3E%3C%2FSPAN%3E%3C%2FP%3E%3CP%3EI%20can't%20seem%20to%20figure%20where%20the%20KafkaTrigger%20is%20in%20the%20extensions%20for%20Java%3F%20The%20preview%20version%20docs%20aren't%20available%20too%20for%20Java.%3C%2FP%3E%3CP%3E%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%20lia-image-align-inline%22%20image-alt%3D%22FatimaMookhtiar_0-1589143536632.png%22%20style%3D%22width%3A%20400px%3B%22%3E%3CIMG%20src%3D%22https%3A%2F%2Ftechcommunity.microsoft.com%2Ft5%2Fimage%2Fserverpage%2Fimage-id%2F190466i1C546B4C353B2C1D%2Fimage-size%2Fmedium%3Fv%3Dv2%26amp%3Bpx%3D400%22%20role%3D%22button%22%20title%3D%22FatimaMookhtiar_0-1589143536632.png%22%20alt%3D%22FatimaMookhtiar_0-1589143536632.png%22%20%2F%3E%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%26nbsp%3B%3C%2FP%3E%3CP%3E%26nbsp%3B%3C%2FP%3E%3CP%3EMany%20thanks%2C%20Fatima.%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-1378619%22%20slang%3D%22en-US%22%3ERe%3A%20Announcing%20Preview%20of%20the%20Azure%20Functions%20Kafka%20extension%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-1378619%22%20slang%3D%22en-US%22%3E%3CP%3EHi%26nbsp%3B%3CA%20href%3D%22https%3A%2F%2Ftechcommunity.microsoft.com%2Ft5%2Fuser%2Fviewprofilepage%2Fuser-id%2F662628%22%20target%3D%22_blank%22%3E%40FatimaMookhtiar%3C%2FA%3E%26nbsp%3B%2C%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3EPlease%20have%20a%20look%20at%20the%20following%3A%26nbsp%3B%3CA%20href%3D%22https%3A%2F%2Fgithub.com%2FAzure%2Fazure-functions-kafka-extension%2Fblob%2Fdev%2Fsamples%2Fjava%2FREADME.MD%22%20target%3D%22_blank%22%20rel%3D%22noopener%20noreferrer%22%3Ehttps%3A%2F%2Fgithub.com%2FAzure%2Fazure-functions-kafka-extension%2Fblob%2Fdev%2Fsamples%2Fjava%2FREADME.MD%3C%2FA%3E%26nbsp%3Band%26nbsp%3B%3CA%20href%3D%22https%3A%2F%2Fgithub.com%2FAzure%2Fazure-functions-kafka-extension%2Fblob%2Fdev%2Fsamples%2Fjava%2FREADME.MD%22%20target%3D%22_blank%22%20rel%3D%22noopener%20noreferrer%22%3Ehttps%3A%2F%2Fgithub.com%2FAzure%2Fazure-functions-kafka-extension%2Fblob%2Fdev%2Fsamples%2Fjava%2FREADME.MD%3C%2FA%3E%26nbsp%3Bfor%20examples%20on%20how%20to%20use%20Java%20with%20this%20extension.%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3EThanks%2C%3C%2FP%3E%0A%3CP%3EAnirudh%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-1380839%22%20slang%3D%22en-US%22%3ERe%3A%20Announcing%20Preview%20of%20the%20Azure%20Functions%20Kafka%20extension%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-1380839%22%20slang%3D%22en-US%22%3E%3CP%3EUpdate-%20It%20works!%20Thanks%20so%20much!%26nbsp%3B%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CBR%20%2F%3E%3CSPAN%3E%20%20%20%20%3CURL%3E%3C%2FURL%3E%3C%2FSPAN%3Efile%3A%2F%2F%24%7Bproject.basedir%7D%2Fsrc%2Frepo%3CSPAN%3E%3CBR%20%2F%3E%3C%2FSPAN%3E%3CSPAN%3E%3C%2FSPAN%3E%3CP%3E%26nbsp%3BIs%20there%20any%20specific%20timeline%20when%20this%20might%20move%20from%20Preview%20to%20a%20stable%20version%3F%20Thanks%2C%20Fatima.%3C%2FP%3E%3CLINGO-SUB%20id%3D%22lingo-sub-1386424%22%20slang%3D%22en-US%22%3ERe%3A%20Announcing%20Preview%20of%20the%20Azure%20Functions%20Kafka%20extension%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-1386424%22%20slang%3D%22en-US%22%3E%3CP%3EThere's%20a%20few%20things%20missing%20in%20the%20steps%20which%20I'd%20like%20to%20highlight%20as%20might%20help%20others%2C%20they%20are%20below%3A-%3C%2FP%3E%3CP%3E1.%20I%20needed%20to%20have%20the%20librdkafka%20dlls%20present%20in%20the%20bin%20folder%20to%20get%20it%20working%2C%20else%20I%20kept%20getting%20a%20runtime%20exception%20complaining%20that%20it%20couldn't%20find%20the%20dll.%20To%20get%20it%20I%20launched%20the%20extensions.csproj%20and%20installed%20the%20nuget%20package%20(%3CA%20href%3D%22https%3A%2F%2Fwww.nuget.org%2Fpackages%2Flibrdkafka.redist%2F%22%20target%3D%22_blank%22%20rel%3D%22noopener%20nofollow%20noreferrer%22%3Ehttps%3A%2F%2Fwww.nuget.org%2Fpackages%2Flibrdkafka.redist%2F%3C%2FA%3E)%20.%20This%20then%20gave%20me%20access%20to%20the%20dlls%2C%20which%20I%20copied%20into%20the%20bin%20folder%20of%20the%20functionApp.%20It%20then%20worked%20fine!%3C%2FP%3E%3CP%3E%26nbsp%3B%3C%2FP%3E%3CP%3E2.%20Also%20a%20small%20tweak%20to%20the%20readme%2C%20you%20need%20to%20add%20--package%20to%20it.%26nbsp%3B%3C%2FP%3E%3CPRE%3E%24%20func%20extensions%20install%20--package%20Microsoft.Azure.WebJobs.Extensions.Kafka%20--version%202.0.0-beta%3C%2FPRE%3E%3CP%3E%26nbsp%3B3.%20I%20also%20renamed%20the%20local%20in%20pom.xml%20to%20something%20else%20to%20get%20rid%20of%20the%20warning.%26nbsp%3B%3C%2FP%3E%3CPRE%3E%3CSPAN%3E%3CREPOSITORY%3E%3CBR%20%2F%3E%3C%2FREPOSITORY%3E%3C%2FSPAN%3E%3CSPAN%3E%20%20%20%20%3CID%3E%3C%2FID%3E%3C%2FSPAN%3Eextensions%3CSPAN%3E%3C%2FSPAN%3E%3C%2FPRE%3E%3C%2FLINGO-BODY%3E%3CBR%20%2F%3E%3CSPAN%3E%20%20%20%20%3CURL%3E%3C%2FURL%3E%3C%2FSPAN%3Efile%3A%2F%2F%24%7Bproject.basedir%7D%2Fsrc%2Frepo%3CSPAN%3E%3CBR%20%2F%3E%3C%2FSPAN%3E%3CSPAN%3E%3C%2FSPAN%3E%3CP%3E%26nbsp%3BIs%20there%20any%20specific%20timeline%20when%20this%20might%20move%20from%20Preview%20to%20a%20stable%20version%3F%20Thanks%2C%20Fatima.%3C%2FP%3E%3CLINGO-SUB%20id%3D%22lingo-sub-2534732%22%20slang%3D%22en-US%22%3ERe%3A%20Announcing%20Preview%20of%20the%20Azure%20Functions%20Kafka%20extension%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2534732%22%20slang%3D%22en-US%22%3E%3CP%3EHi%20%3CA%20href%3D%22https%3A%2F%2Ftechcommunity.microsoft.com%2Ft5%2Fuser%2Fviewprofilepage%2Fuser-id%2F53732%22%20target%3D%22_blank%22%3E%40Anirudh%20Garg%3C%2FA%3E%26nbsp%3B-%20can%20you%20please%20let%20us%20know%20if%20Kafka%20trigger%20is%20supported%20by%20MS%20or%20still%20in%20preview%3F%3C%2FP%3E%3CP%3EAlso%20i%20was%20testing%20but%20facing%20a%20problem%20if%20my%20function%20fails%20to%20process%20a%20message%20due%20to%20any%20reason%2C%20it%20still%20gets%20committed.%20How%20to%20not%20let%20that%20message%20gets%20committed%3F%3C%2FP%3E%3CP%3E%26nbsp%3B%3C%2FP%3E%3CP%3EThanks%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-1388222%22%20slang%3D%22en-US%22%3ERe%3A%20Announcing%20Preview%20of%20the%20Azure%20Functions%20Kafka%20extension%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-1388222%22%20slang%3D%22en-US%22%3E%3CP%3EThanks%20Fatima%20I%20edited%20the%20blog%20post%20with%20your%20feedback.%20I%20will%20also%20update%20the%20sample%20about%20your%20comment%20on%20librdkafka%20dll.%20Thank%20you%20so%20much%20for%20your%20feedback.%20This%20is%20exactly%20the%20kind%20of%20feedback%20we%20are%20waiting%20for%20before%20we%20can%20make%20it%20GA.%20Currently%20we%20are%20hoping%20it%20will%20be%20the%20next%202-3%20months%20if%20not%20earlier.%3C%2FP%3E%3C%2FLINGO-BODY%3E
Version history
Last update:
‎Aug 27 2020 02:49 PM
Updated by: