Skip to content

Eventhub Binary message not respect #644

Open
@kaibocai

Description

@kaibocai

When eventhub send binary message, java function app is getting garbled string message

example:

    @FunctionName("eventhuexampleCx")
    public void eventHubProcessorCx(
            @EventHubTrigger(name = "pnrTrigger", eventHubName = "cri-319862312", consumerGroup = "test", connection = "EventHubConnectionAppSetting", cardinality = Cardinality.ONE) String paxHubMsgs,
            final ExecutionContext context) {

        Logger logger = context.getLogger();
        logger.info("***************" + (paxHubMsgs));
        byte[] bytes = paxHubMsgs.getBytes();
        String message = new String(bytes, StandardCharsets.UTF_16);
        logger.info(message);
    }

image

Python script for sending binary message to eventhub

import asyncio
import struct
from azure.eventhub.aio import EventHubProducerClient
from azure.eventhub import EventData

async def run():
    # Create a producer client to send messages to the event hub.
    # Specify a connection string to your event hubs namespace and
    # the event hub name.
    producer = EventHubProducerClient.from_connection_string(conn_str="your-event-hub-connection-string", eventhub_name="cri-319862312")
    async with producer:
        # Create a batch.
        event_data_batch = await producer.create_batch()
        bin_data = struct.pack('200B', *range(200))
        bin_data = b'\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9a\x9b'


        # Add events to the batch.
        event_data_batch.add(EventData(bin_data))


        # Send the batch of events to the event hub.
        await producer.send_batch(event_data_batch)

loop = asyncio.get_event_loop()
loop.run_until_complete(run())

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions