VOOZH about

URL: https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.EventHubs/

⇱ NuGet Gallery | Microsoft.Azure.WebJobs.Extensions.EventHubs 6.5.3




👁 Image
Microsoft.Azure.WebJobs.Extensions.EventHubs 6.5.3

Prefix Reserved
dotnet add package Microsoft.Azure.WebJobs.Extensions.EventHubs --version 6.5.3
 
 
NuGet\Install-Package Microsoft.Azure.WebJobs.Extensions.EventHubs -Version 6.5.3
 
 
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Microsoft.Azure.WebJobs.Extensions.EventHubs" Version="6.5.3" />
 
 
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Microsoft.Azure.WebJobs.Extensions.EventHubs" Version="6.5.3" />
 
Directory.Packages.props
<PackageReference Include="Microsoft.Azure.WebJobs.Extensions.EventHubs" />
 
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add Microsoft.Azure.WebJobs.Extensions.EventHubs --version 6.5.3
 
 
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
#r "nuget: Microsoft.Azure.WebJobs.Extensions.EventHubs, 6.5.3"
 
 
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package Microsoft.Azure.WebJobs.Extensions.EventHubs@6.5.3
 
 
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=Microsoft.Azure.WebJobs.Extensions.EventHubs&version=6.5.3
 
Install as a Cake Addin
#tool nuget:?package=Microsoft.Azure.WebJobs.Extensions.EventHubs&version=6.5.3
 
Install as a Cake Tool
The NuGet Team does not provide support for this client. Please contact its maintainers for support.

Azure WebJobs Event Hubs client library for .NET

This extension provides functionality for accessing Azure Event Hubs from an Azure Function.

Getting started

Install the package

Install the Event Hubs extension with NuGet:

dotnet add package Microsoft.Azure.WebJobs.Extensions.EventHubs

Prerequisites

  • Azure Subscription: To use Azure services, including Azure Event Hubs, you'll need a subscription. If you do not have an existing Azure account, you may sign up for a free trial or use your Visual Studio Subscription benefits when you create an account.

  • Event Hubs namespace with an Event Hub: To interact with Azure Event Hubs, you'll also need to have a namespace and Event Hub available. If you are not familiar with creating Azure resources, you may wish to follow the step-by-step guide for creating an Event Hub using the Azure portal. There, you can also find detailed instructions for using the Azure CLI, Azure PowerShell, or Azure Resource Manager (ARM) templates to create an Event Hub.

  • Azure Storage account with blob storage: To persist checkpoints as blobs in Azure Storage, you'll need to have an Azure Storage account with blobs available. If you are not familiar with Azure Storage accounts, you may wish to follow the step-by-step guide for creating a storage account using the Azure portal. There, you can also find detailed instructions for using the Azure CLI, Azure PowerShell, or Azure Resource Manager (ARM) templates to create storage accounts.

Authenticate the Client

For the Event Hubs client library to interact with an Event Hub, it will need to understand how to connect and authorize with it. The easiest means for doing so is to use a connection string, which is created automatically when creating an Event Hubs namespace. If you aren't familiar with using connection strings with Event Hubs, you may wish to follow the step-by-step guide to get an Event Hubs connection string.

The Connection property of EventHubAttribute and EventHubTriggerAttribute is used to specify the configuration property that stores the connection string.

The AzureWebJobsStorage connection string is used to preserve the processing checkpoint information.

For the local development use the local.settings.json file to store the connection string:

{
 "Values": {
 "AzureWebJobsStorage": "UseDevelopmentStorage=true",
 "<connection_name>": "Endpoint=sb://<event_hubs_namespace>.servicebus.windows.net/;SharedAccessKeyName=RootManageSharedAccessKey;SharedAccessKey=Jya7Eh76HU92ibsxuk1ITN8CM8Bt76YLKf5ISjU3jZ8="
 }
}

When deployed use the application settings to set the connection string.

Identity-based authentication

If your environment has managed identity enabled you can use it to authenticate the Event Hubs extension. Before doing so, you will need to ensure that permissions have been configured as described in the Azure Functions developer guide.

To use identity-based authentication provide the <connection_name>__fullyQualifiedNamespace configuration setting.

{
 "Values": {
 "AzureWebJobsStorage": "UseDevelopmentStorage=true",
 "<connection_name>__fullyQualifiedNamespace": "{event_hubs_namespace}.servicebus.windows.net"
 }
}

Or in the case of deployed app set the same setting in application settings:

<connection_name>__fullyQualifiedNamespace={event_hubs_namespace}.servicebus.windows.net

More details about configuring an identity-based connection can be found here.

Key concepts

Event Hub Trigger

The Event Hub Trigger allows a function to be executed when a message is sent to an Event Hub.

Please follow the Azure Event Hubs trigger tutorial to learn more about Event Hub triggers.

Event Hub Output Binding

The Event Hub Output Binding allows a function to send Event Hub events.

Please follow the Azure Event Hubs output binding to learn more about Event Hub bindings.

Supported types

The following types are supported for trigger and output bindings:

  • EventData
  • string - value would be encoded using UTF8 encoding
  • BinaryData
  • byte[]
  • Custom model types will be JSON-serialized using Newtonsoft.Json
  • IAsyncCollector<T> of any of the above types for batch triggers
  • EventHubProducerClient for output bindings

Examples

Sending individual event

You can send individual events to an Event Hub by applying the EventHubAttribute the function return value. The return value can be of string or EventData type. A partition keys may not be specified when using a return value; to do so, you'll need to bind to the IAsyncCollector<EventData>, as shown in Sending multiple events.

[FunctionName("BindingToReturnValue")]
[return: EventHub("<event_hub_name>", Connection = "<connection_name>")]
public static string Run([TimerTrigger("0 */5 * * * *")] TimerInfo myTimer)
{
 // This value would get stored in EventHub event body.
 // The string would be UTF8 encoded
 return $"C# Timer trigger function executed at: {DateTime.Now}";
}

Sending multiple events

To send multiple events from a single Azure Function invocation you can apply the EventHubAttribute to the IAsyncCollector<string> or IAsyncCollector<EventData> parameter. Partition keys may only be used when binding to IAsyncCollector<EventData>.

[FunctionName("BindingToCollector")]
public static async Task Run(
 [TimerTrigger("0 */5 * * * *")] TimerInfo myTimer,
 [EventHub("<event_hub_name>", Connection = "<connection_name>")] IAsyncCollector<EventData> collector)
{
 // When no partition key is used, partitions will be assigned per-batch via round-robin.
 await collector.AddAsync(new EventData($"Event 1 added at: {DateTime.Now}"));
 await collector.AddAsync(new EventData($"Event 2 added at: {DateTime.Now}"));

 // Using a partition key will help group events together; events with the same key
 // will always be assigned to the same partition.
 await collector.AddAsync(new EventData($"Event 3 added at: {DateTime.Now}"), "sample-key");
 await collector.AddAsync(new EventData($"Event 4 added at: {DateTime.Now}"), "sample-key");
}

Using binding to strongly-typed models

To use strongly-typed model classes with the EventHub binding apply the EventHubAttribute to the model parameter.

[FunctionName("TriggerSingleModel")]
public static void Run(
 [EventHubTrigger("<event_hub_name>", Connection = "<connection_name>")] Dog dog,
 ILogger logger)
{
 logger.LogInformation($"Who's a good dog? {dog.Name} is!");
}

Sending multiple events using EventHubProducerClient

You can also bind to the EventHubProducerClient directly to have the most control over the event sending.

[FunctionName("BindingToProducerClient")]
public static async Task Run(
 [TimerTrigger("0 */5 * * * *")] TimerInfo myTimer,
 [EventHub("<event_hub_name>", Connection = "<connection_name>")] EventHubProducerClient eventHubProducerClient)
{
 // IAsyncCollector allows sending multiple events in a single function invocation
 await eventHubProducerClient.SendAsync(new[]
 {
 new EventData($"Event 1 added at: {DateTime.Now}"),
 new EventData($"Event 2 added at: {DateTime.Now}")
 });
}

Per-event triggers

To run a function every time an event is sent to Event Hub apply the EventHubTriggerAttribute to a string or EventData parameter.

[FunctionName("TriggerSingle")]
public static void Run(
 [EventHubTrigger("<event_hub_name>", Connection = "<connection_name>")] string eventBodyAsString,
 ILogger logger)
{
 logger.LogInformation($"C# function triggered to process a message: {eventBodyAsString}");
}

Batch triggers

To run a function for a batch of received events apply the EventHubTriggerAttribute to a string[] or EventData[] parameter.

[FunctionName("TriggerBatch")]
public static void Run(
 [EventHubTrigger("<event_hub_name>", Connection = "<connection_name>")] EventData[] events,
 ILogger logger)
{
 foreach (var e in events)
 {
 logger.LogInformation($"C# function triggered to process a message: {e.EventBody}");
 logger.LogInformation($"EnqueuedTime={e.EnqueuedTime}");
 }
}

Troubleshooting

Please refer to Monitor Azure Functions for troubleshooting guidance.

Next steps

Read the introduction to Azure Functions or creating an Azure Function guide.

Contributing

See our CONTRIBUTING.md for details on building, testing, and contributing to this library.

This project welcomes contributions and suggestions. Most contributions require you to agree to a Contributor License Agreement (CLA) declaring that you have the right to, and actually do, grant us the rights to use your contribution. For details, visit cla.microsoft.com.

This project has adopted the Microsoft Open Source Code of Conduct. For more information see the Code of Conduct FAQ or contact with any additional questions or comments.

Product Versions Compatible and additional computed target framework versions.
.NET net5.0 net5.0 was computed.  net5.0-windows net5.0-windows was computed.  net6.0 net6.0 was computed.  net6.0-android net6.0-android was computed.  net6.0-ios net6.0-ios was computed.  net6.0-maccatalyst net6.0-maccatalyst was computed.  net6.0-macos net6.0-macos was computed.  net6.0-tvos net6.0-tvos was computed.  net6.0-windows net6.0-windows was computed.  net7.0 net7.0 was computed.  net7.0-android net7.0-android was computed.  net7.0-ios net7.0-ios was computed.  net7.0-maccatalyst net7.0-maccatalyst was computed.  net7.0-macos net7.0-macos was computed.  net7.0-tvos net7.0-tvos was computed.  net7.0-windows net7.0-windows was computed.  net8.0 net8.0 is compatible.  net8.0-android net8.0-android was computed.  net8.0-browser net8.0-browser was computed.  net8.0-ios net8.0-ios was computed.  net8.0-maccatalyst net8.0-maccatalyst was computed.  net8.0-macos net8.0-macos was computed.  net8.0-tvos net8.0-tvos was computed.  net8.0-windows net8.0-windows was computed.  net9.0 net9.0 was computed.  net9.0-android net9.0-android was computed.  net9.0-browser net9.0-browser was computed.  net9.0-ios net9.0-ios was computed.  net9.0-maccatalyst net9.0-maccatalyst was computed.  net9.0-macos net9.0-macos was computed.  net9.0-tvos net9.0-tvos was computed.  net9.0-windows net9.0-windows was computed.  net10.0 net10.0 was computed.  net10.0-android net10.0-android was computed.  net10.0-browser net10.0-browser was computed.  net10.0-ios net10.0-ios was computed.  net10.0-maccatalyst net10.0-maccatalyst was computed.  net10.0-macos net10.0-macos was computed.  net10.0-tvos net10.0-tvos was computed.  net10.0-windows net10.0-windows was computed. 
.NET Core netcoreapp2.0 netcoreapp2.0 was computed.  netcoreapp2.1 netcoreapp2.1 was computed.  netcoreapp2.2 netcoreapp2.2 was computed.  netcoreapp3.0 netcoreapp3.0 was computed.  netcoreapp3.1 netcoreapp3.1 was computed. 
.NET Standard netstandard2.0 netstandard2.0 is compatible.  netstandard2.1 netstandard2.1 was computed. 
.NET Framework net461 net461 was computed.  net462 net462 was computed.  net463 net463 was computed.  net47 net47 was computed.  net471 net471 was computed.  net472 net472 was computed.  net48 net48 was computed.  net481 net481 was computed. 
MonoAndroid monoandroid monoandroid was computed. 
MonoMac monomac monomac was computed. 
MonoTouch monotouch monotouch was computed. 
Tizen tizen40 tizen40 was computed.  tizen60 tizen60 was computed. 
Xamarin.iOS xamarinios xamarinios was computed. 
Xamarin.Mac xamarinmac xamarinmac was computed. 
Xamarin.TVOS xamarintvos xamarintvos was computed. 
Xamarin.WatchOS xamarinwatchos xamarinwatchos was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages (7)

Showing the top 5 NuGet packages that depend on Microsoft.Azure.WebJobs.Extensions.EventHubs:

Package Downloads
MassTransit.WebJobs.EventHubs

MassTransit Azure WebJobs Event Hubs support; MassTransit provides a developer-focused, modern platform for creating distributed applications without complexity.

Microsoft.Azure.Workflows.WebJobs.Extension

Extensions for running workflows in Azure Functions

RedQuick

Package Description

Amido.Stacks.Messaging.Azure.EventHub

Package Description

Beef.Events.EventHubs

Business Entity Execution Framework (Beef) Event Hubs framework.

GitHub repositories (12)

Showing the top 12 popular GitHub repositories that depend on Microsoft.Azure.WebJobs.Extensions.EventHubs:

Repository Stars
MassTransit/MassTransit
Distributed Application Framework for .NET
Azure/azure-webjobs-sdk
Azure WebJobs SDK
Azure-Samples/saga-orchestration-serverless
An orchestration-based saga implementation reference in a serverless architecture
JamesRandall/FunctionMonkey
Write more elegant Azure Functions with less boilerplate, more consistency, and support for REST APIs. Docs can be found at https://functionmonkey.azurefromthetrenches.com
ProfessionalCSharp/MoreSamples
Additional code samples the book series Professional C#, Wrox Press
microsoft/durabletask-netherite
A new engine for Durable Functions. https://microsoft.github.io/durabletask-netherite
Azure-Samples/streaming-at-scale
How to implement a streaming at scale solution in Azure
solliancenet/tech-immersion-data-ai
Azure-Samples/azure-digital-twins-unreal-integration
Sample project demonstrating the Unreal Engine plug-in for Azure Digital Twins
Daniel-Krzyczkowski/MicrosoftAzure
Microsoft Azure code samples.
Azure-Samples/azure-sql-db-change-stream-debezium
SQL Server Change Stream sample using Debezium
microsoft/SmartHotel360-IoT
SmartHotel360 deployed Azure digital Twins to control lights and temperature of the hotel rooms.
Version Downloads Last Updated
6.5.3 92,811 10/21/2025
6.5.2 812,304 6/17/2025
6.5.1 155,512 4/9/2025
6.5.0 2,371 4/8/2025
6.4.0-beta.1 951 3/14/2025
6.3.5 2,019,690 8/2/2024
6.3.4 9,926 7/25/2024
6.3.3 121,741 6/13/2024
6.3.2 456,335 4/29/2024
6.3.1 279,775 4/17/2024
6.3.0 17,729 4/10/2024
6.2.0 403,385 3/5/2024
6.1.0 39,203 2/14/2024
6.0.2 479,661 11/13/2023
6.0.1 389,817 10/11/2023
6.0.0 90,652 9/12/2023
5.5.0 433,091 8/14/2023
5.4.0 590,141 6/6/2023
5.3.0 374,624 4/11/2023
5.2.0 199,571 2/23/2023
Loading failed