Azure / Azure/azure-functions-host
Linux nodejs function with multiple eventhub output bindings not sending data
- Dominant language
- C#
- Stars
- 2k
- Forks
- 482
- Avg merge
- 2d 12h
- Merged PRs (30d)
- 38
Description
Short intro:
HTTP Trigger which is calling the function, then take a message and put that via output binding to 4 other eventhubs
- Timestamp: 2021-02-17T09:53:41.423
- Function App version: 3
- Function App name: [company data, try to deliver everything else]
- Function name(s) (as appropriate): Functions.HttpTrigger1
- Host InstanceId ID: f00d3e73-aec3-4f1d-9931-fbd2e8c0e309
- Executing 'Functions.HttpTrigger1' ID: 2b28d94b-82d6-4ba0-8069-4d4d5d065c02
- Region: westeu
[cannot see the function started id in the logs]
#### Repro steps
Provide the steps required to reproduce the problem:
- create four eventhubs
- create a function app in an appserviceplan
- create a http trigger function with four output bindings to the corresponding eventhubs
- call that function
#### Expected behavior
Would have expected the message to be delivered to all four eventhubs
#### Actual behavior
Nothing happens, just trigger no error no issue.
#### Known workarounds
none
BUT if you comment out three of the four output bindings then the left one ist working.
You can do this for every output, so the connection strings are not the problem.
AND the same can be reproduced with python...
#### Related information
Stack NodeJS
NodeJs 12 LTS
Authorization anonymous
Appsettings the Connectiong strings to the hubs
Source
```javascript
module.exports = async function (context, req) {
const name = (req.query.name || (req.body && req.body.name));
const responseMessage = name
? "Hello, " + name + ". This HTTP triggered function executed successfully."
: "This HTTP triggered function executed successfully. Pass a name in the query string or in the request body for a personalized response.";
let tempBufferDEV = [{'fruit':'Apple'}, {'fruit':name}];
let tempBufferTEST = [{'fruit':'Apple'}, {'fruit':name}];
let tempBufferSTAGE = [{'fruit':'Apple'}, {'fruit':name}];
let tempBufferPROD = [{'fruit':'Apple'}, {'fruit':name}];
// test
context.bindings.outputEventHubIoTDataMessagesTest = tempBufferTEST;
// dev
context.bindings.outputEventHubIoTDataMessagesDev = tempBufferDEV;
// stage
context.bindings.outputEventHubIoTDataMessagesStage = tempBufferSTAGE;
// prod
context.bindings.outputEventHubIoTDataMessagesProd = tempBufferPROD;
context.res = {
// status: 200, /* Defaults to 200 */
body: responseMessage
};
}```
Contributor guide
Assessment
This issue has not been assessed yet.