I'm trying to send a non-cloudwatch event to Splunk from Kinesis Firehose. I am processing the event with a Lambda and feeding it back into the Firehose in the following format (required for Firehose):
{
"records": [
{
"recordId": "2345678",
"result": "Ok",
"data": [base64-encoded custom JSON]
}
]
}
However, it's throwing a vague parsing error once it gets to Splunk, with a help link that goes nowhere:
"errorCode":"Splunk.InvalidDataFormat","errorMessage":"The data is not formatted correctly. To see how to properly format data for Raw or Event HEC endpoints, see Splunk Event Data (http://dev.splunk.com/view/event-collector/SP-CAAAE6P#data)"
What am I missing here? It seems strange that the HEC endpoint wouldn't be able to parse the messages coming from Firehose in their standard format.
I am sending the message to an HEC Event endpoint, using the splunk_configuration block in an aws_kinesis_firehose_delivery_stream Terraform module.