Azure Event Hubs Connector 1.2 Examples | MuleSoft Documentation
# Azure Event Hubs Connector 1.2 Examples
The following examples show several Mule flows for Azure Event Hubs Connector:
  * Send a Single Event and Listen with EventHub Listener This Mule flow sends a single event to an Event Hub.
  * Publish a Batch of Events and Listen with Partition Listener This Mule flow sends multiple events simultaneously to an Event Hub.
  * Send Single Event with Content Type This Mule flow sends a single event to an Event Hub with content type as JSON.


## Before You Begin
  * Java 8, 11 or 17
  * Anypoint Studio 7.5 and later
  * Mule runtime engine (Mule) 4.3.0 and later
  * DataWeave


## Create a Configuration File for a Connection
Create a configuration file that includes properties for a connection:
  1. Create a file named `mule-app.properties` in the `/src/main/resources/` folder.
  2. In the `mule-app.properties` file, create a set of properties for the connection, similar to the ones that follow, replacing the bracketed text (including the brackets) with the correct values for your configuration:
```
config.namespace = <namespace>
	config.eventHuName = <eventHuName>
	ad-config.tenantId = <tenantId>
	ad-config.clientId = <clientId>
	ad-config.ClientSecret = <ClientSecret>
	sas-config.sharedAccessKeyName = <sharedAccessKeyName>
	sas-config.sharedAccessKey = <sharedAccessKey>
	bs-config.containerName = <containerName>
	bs-config.accountName = <accountName>
	bs-config.accountKey = <accountKey>
```



For more information about creating a properties file, refer to Configuring Property Placeholders.
## Send a Single Event and Listen with EventHub Listener
This Mule flow sends a single event to an Event Hub. The result is displayed on the console.
This example uses the following operations:
  * **HTTP Listener** Accepts data from HTTP requests
  * **Send a single event** Sends a single event
  * **Logger** Shows that the event was published
  * **Eventhub listener** Reads events from an event hub in a namespace.
  * **Logger** Logs that the event was listened.


### XML for This Example
Paste this code into the Studio XML editor to quickly load the flow for this example into your Mule app:
```
<?xml version="1.0" encoding="UTF-8"?>
<mule xmlns:tls="http://www.mulesoft.org/schema/mule/tls"
	xmlns:scripting="http://www.mulesoft.org/schema/mule/scripting" xmlns:file="http://www.mulesoft.org/schema/mule/file"
	xmlns:sftp="http://www.mulesoft.org/schema/mule/sftp"
	xmlns:db="http://www.mulesoft.org/schema/mule/db" xmlns:email="http://www.mulesoft.org/schema/mule/email" xmlns:ee="http://www.mulesoft.org/schema/mule/ee/core" xmlns:kafka="http://www.mulesoft.org/schema/mule/kafka" xmlns:azure-event-hub-management-connector="http://www.mulesoft.org/schema/mule/azure-event-hub-management-connector" xmlns:azure-eventhubs="http://www.mulesoft.org/schema/mule/azure-eventhubs" xmlns:http="http://www.mulesoft.org/schema/mule/http" xmlns="http://www.mulesoft.org/schema/mule/core" xmlns:doc="http://www.mulesoft.org/schema/mule/documentation" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="
http://www.mulesoft.org/schema/mule/tls http://www.mulesoft.org/schema/mule/tls/current/mule-tls.xsd http://www.mulesoft.org/schema/mule/core http://www.mulesoft.org/schema/mule/core/current/mule.xsd
http://www.mulesoft.org/schema/mule/http http://www.mulesoft.org/schema/mule/http/current/mule-http.xsd
http://www.mulesoft.org/schema/mule/azure-eventhubs http://www.mulesoft.org/schema/mule/azure-eventhubs/current/mule-azure-eventhubs.xsd
http://www.mulesoft.org/schema/mule/azure-event-hub-management-connector http://www.mulesoft.org/schema/mule/azure-event-hub-management-connector/current/mule-azure-event-hub-management-connector.xsd
http://www.mulesoft.org/schema/mule/kafka http://www.mulesoft.org/schema/mule/kafka/current/mule-kafka.xsd
http://www.mulesoft.org/schema/mule/ee/core http://www.mulesoft.org/schema/mule/ee/core/current/mule-ee.xsd
http://www.mulesoft.org/schema/mule/email http://www.mulesoft.org/schema/mule/email/current/mule-email.xsd
http://www.mulesoft.org/schema/mule/db http://www.mulesoft.org/schema/mule/db/current/mule-db.xsd
http://www.mulesoft.org/schema/mule/sftp http://www.mulesoft.org/schema/mule/sftp/current/mule-sftp.xsd
http://www.mulesoft.org/schema/mule/file http://www.mulesoft.org/schema/mule/file/current/mule-file.xsd
http://www.mulesoft.org/schema/mule/scripting http://www.mulesoft.org/schema/mule/scripting/current/mule-scripting.xsd">

	<configuration-properties doc:name="Configuration properties" file="mule-app.properties" />
	<http:listener-config name="HTTP_config" doc:name="HTTP Listener config" >
		<http:listener-connection host="0.0.0.0" port="8081" />
	</http:listener-config>
	<azure-eventhubs:azure-eventhubs-config name="ActiveDirectory" doc:name="Azure Event Hubs Connector Azure Event Hubs" >
		<azure-eventhubs:active-directory-authentication-connection namespace="${config.namespace}" eventHubName="${config.eventHubName}">
	<azure-eventhubs:token-credential-properties tenantId="${ad-config.tenantId}" clientId="${ad-config.clientId}" clientSecret="${ad-config.clientSecret}" />
			<azure-eventhubs:checkpoint-store-type>
				<azure-eventhubs:azure-blob-storage-sas-authentication containerName="${bs-config.containerName}" accountName="${bs-config.accountName}" accountKey="${bs-config.accountKey}" />
			</azure-eventhubs:checkpoint-store-type>
		</azure-eventhubs:active-directory-authentication-connection>
	</azure-eventhubs:azure-eventhubs-config>
		<flow name="publish-single-event" >
		<http:listener doc:name="events" config-ref="HTTP_Listener_config" path="/events" allowedMethods="GET"/>
		<azure-eventhubs:publish doc:name="Send a single event" config-ref="ActiveDirectory">
		  <azure-eventhubs:event ><![CDATA[#[{
      "body":"event to send",
      "metadata": {
        "param1": "param 1",
      "param2": "param 2",
      }
      }]]]>
        </azure-eventhubs:event>
		</azure-eventhubs:publish>
		<logger level="INFO" doc:name="Logger" message="messagePublished"/>
	</flow>

	<flow name="EventHubListner" >
		<azure-eventhubs:eventhub-listener doc:name="Eventhub listener" config-ref="ActiveDirectory" checkpointFrequency="1" consumerGroup="consumer-group-1 "/>
		<logger level="INFO" doc:name="Logger" message="Message Received on Event Hub!" />
	</flow>
</mule>
```

### Steps for Running This Example
  1. Verify that your connector is configured.
  2. Save the project.
  3. From a web browser, test the application by entering .


## Publish a Batch of Events and Listen with Partition Listener
This Mule flow sends multiple events simultaneously to an Event Hub. The result is displayed on the console.
This example uses the following operations:
  * **HTTP Listener** Accepts data from HTTP requests
  * **Publish in bulk** Sends a batch of events
  * **Logger** Shows that the events were published
  * **Partition listener** Reads events from a specific event hub partition in a namespace
  * **Logger** Logs twice the events listened.
<flow name="EventHubListner" >
		<azure-eventhubs:eventhub-listener doc:name="Eventhub listener" config-ref="ActiveDirectory" checkpointFrequency="1" consumerGroup="consumer-group-1 "/>
		<logger level="INFO" doc:name="Logger" message="Message Received on Event Hub!" />
	</flow>
</mule>
```

### Steps for Running This Example
  1. Verify that your connector is configured.
  2. Save the project.
  3. From a web browser, test the application by entering .


## Publish a Batch of Events and Listen with Partition Listener
This Mule flow sends multiple events simultaneously to an Event Hub. The result is displayed on the console.
This example uses the following operations:
  * **HTTP Listener** Accepts data from HTTP requests
  * **Publish in bulk** Sends a batch of events
  * **Logger** Shows that the events were published
  * **Partition listener** Reads events from a specific event hub partition in a namespace
  * **Logger** Logs twice the events listened.


### XML for This Example
Paste this code into the Studio XML editor to quickly load the flow for this example into your Mule app:
```
<?xml version="1.0" encoding="UTF-8"?>
<mule xmlns:tls="http://www.mulesoft.org/schema/mule/tls"
	xmlns:scripting="http://www.mulesoft.org/schema/mule/scripting" xmlns:file="http://www.mulesoft.org/schema/mule/file"
	xmlns:sftp="http://www.mulesoft.org/schema/mule/sftp"
	xmlns:db="http://www.mulesoft.org/schema/mule/db" xmlns:email="http://www.mulesoft.org/schema/mule/email" xmlns:ee="http://www.mulesoft.org/schema/mule/ee/core" xmlns:kafka="http://www.mulesoft.org/schema/mule/kafka" xmlns:azure-event-hub-management-connector="http://www.mulesoft.org/schema/mule/azure-event-hub-management-connector" xmlns:azure-eventhubs="http://www.mulesoft.org/schema/mule/azure-eventhubs" xmlns:http="http://www.mulesoft.org/schema/mule/http" xmlns="http://www.mulesoft.org/schema/mule/core" xmlns:doc="http://www.mulesoft.org/schema/mule/documentation" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="
http://www.mulesoft.org/schema/mule/tls http://www.mulesoft.org/schema/mule/tls/current/mule-tls.xsd http://www.mulesoft.org/schema/mule/core http://www.mulesoft.org/schema/mule/core/current/mule.xsd
http://www.mulesoft.org/schema/mule/http http://www.mulesoft.org/schema/mule/http/current/mule-http.xsd
http://www.mulesoft.org/schema/mule/azure-eventhubs http://www.mulesoft.org/schema/mule/azure-eventhubs/current/mule-azure-eventhubs.xsd
http://www.mulesoft.org/schema/mule/azure-event-hub-management-connector http://www.mulesoft.org/schema/mule/azure-event-hub-management-connector/current/mule-azure-event-hub-management-connector.xsd
http://www.mulesoft.org/schema/mule/kafka http://www.mulesoft.org/schema/mule/kafka/current/mule-kafka.xsd
http://www.mulesoft.org/schema/mule/ee/core http://www.mulesoft.org/schema/mule/ee/core/current/mule-ee.xsd
http://www.mulesoft.org/schema/mule/email http://www.mulesoft.org/schema/mule/email/current/mule-email.xsd
http://www.mulesoft.org/schema/mule/db http://www.mulesoft.org/schema/mule/db/current/mule-db.xsd
http://www.mulesoft.org/schema/mule/sftp http://www.mulesoft.org/schema/mule/sftp/current/mule-sftp.xsd
http://www.mulesoft.org/schema/mule/file http://www.mulesoft.org/schema/mule/file/current/mule-file.xsd
http://www.mulesoft.org/schema/mule/scripting http://www.mulesoft.org/schema/mule/scripting/current/mule-scripting.xsd">

	<http:listener-config name="HTTP_config_" doc:name="HTTP Listener config" >
		<http:listener-connection host="0.0.0.0" port="8081" />
	</http:listener-config>
	<azure-eventhubs:azure-eventhubs-config name="SAS" doc:name="Azure Event Hubs Connector Azure Event Hubs" >
		<azure-eventhubs:sas-authentication-connection namespace="${config.namespace}" sharedAccessKeyName="${sas-config.sharedAccessKey}" sharedAccessKey="${sas-config.sharedAccessKeyName}" eventHubName="${config.eventHuName}" >
		</azure-eventhubs:sas-authentication-connection>
	</azure-eventhubs:azure-eventhubs-config>
	<configuration-properties doc:name="Configuration properties" file="mule-app.properties" />
		<flow name="Partition-Listener" >
		<azure-eventhubs:partition-listener doc:name="Partition listener" config-ref="SAS" partitionId="1">
			<azure-eventhubs:event-position-type >
				<azure-eventhubs:latest />
			</azure-eventhubs:event-position-type>
		</azure-eventhubs:partition-listener>
		<logger level="INFO" doc:name="Logger" message='Message received in partition'/>
	</flow>
	<flow name="Publish-in-Bulk" >
		<http:listener doc:name="events" config-ref="HTTP_Listener_config" path="/bulk" allowedMethods="GET" />
		<azure-eventhubs:bulk-publish doc:name="Publish in bulk" config-ref="SAS" maxBatchSizeInBytes="2" partitionId="1">
			<azure-eventhubs:events ><![CDATA[#[[{
	"body": "body event1"
},
{
	"body": "body event2"
}]]]]></azure-eventhubs:events>
		</azure-eventhubs:bulk-publish>
		<logger level="INFO" doc:name="Logger" message='A Batch of messages published' />
	</flow>
</mule>
```

### Steps for Running This Example
  1. Verify that your connector is configured.
  2. Save the project.
  3. From a web browser, test the application by entering .


## Send Single Event with Content Type
This Mule flow sends a single event to an Event Hub with content type as JSON.
### XML for This Example
Paste this code into the Studio XML editor to quickly load the flow for this example into your Mule app:
```
<flow name="Send-single-event-with-content-type" >
		<http:listener doc:name="events" config-ref="HTTP_Listener_config" path="/content" />
		<azure-eventhubs:publish doc:name="Send a single event" config-ref="ActiveDirectory" partitionId="1" contentType="application/json">
			<azure-eventhubs:event ><![CDATA[#[{
 "body": write(payload, "application/json"),
}]]]></azure-eventhubs:event>
		</azure-eventhubs:publish>
		<logger level="INFO" doc:name="Logger" message="Event Published" />
	</flow>
```

## See Also
  * Introduction to Anypoint Connectors
  * MuleSoft Help Center