1 Answer
- Newest
- Most votes
- Most comments
1
If you want to add additional data to the message before sending it to Kinesis Data Streams, you'll need to send it as a JSON payload. So your rule SQL will be similar to:
SELECT encode(*, 'base64') AS data, principal() AS principal FROM 'topic/subtopic'
In the Lambda function that is processing the stream, you'll need to base64 decode the data
field to restore the binary payload and then decode the protobuf.
Amazon S3 is not involved in this flow, unless this is used by your Lambda function to retrieve the protobuf schema.
Relevant content
- asked a year ago
- asked 3 months ago
- asked 3 years ago
- AWS OFFICIALUpdated 2 years ago
- AWS OFFICIALUpdated 8 months ago
- AWS OFFICIALUpdated 3 years ago
- AWS OFFICIALUpdated 5 months ago
Thank you, something like this is indeed what we had in mind. I have to ask though, was it a typo when you said "Amazon S3 is involved in this flow", and it actually should have said isn't, or is S3 actually involved in this? Assume you can ignore everything that happens after Kinesis, my question is only in regards to whether IoT Core itself will make calls to S3. To be even more precise, what I'm really looking for is clarification of the sentence "If you send a raw binary payload, AWS IoT Core routes it downstream to an Amazon S3 bucket through an S3 action." found in the documentation..
I meant to say "Amazon S3 is not involved" (corrected now). As for the documentation, that statement is utterly confusing. Thanks you for bringing to our attention. Binary payloads sent to AWS IoT Core are not written to S3 unless you use a specific S3 action in the rule. What I think that the documentation was supposed tos state is that to store a binary payload (eg a jpeg encoded image) to S3 you can use
SELECT * from 'topic/subtopic
and an S3 action.