Originally published on 2020-11-06
If you've tried to publish data using the iot-data
module in the AWS CLI you've likely done something like this:
aws iot-data publish --topic 'iot/topic' --payload file://data.json
And seen an error like this:
Invalid base64: "{
"mykey": "myvalue"
}
"
You never said your data would be in base64 format but the AWS CLI v2 defaults to base64 encoding. To fix it you need to add the --cli-binary-format raw-in-base64-out
option like this:
aws iot-data publish --topic 'iot/topic' --cli-binary-format raw-in-base64-out --payload file://data.json
That tells the CLI that your input is raw and it'll no longer try to base64 decode it.