0

I am sending a file from an IoT device and trying to store into S3. I have created a rule and created a role with policy s3:PutObject for the rule. On publishing the file I am checking the bucket and it remains empty.

Question 1: I am not authorized to create policy yet I could create this one while creating the rule wherein I was given an option of choosing a role or create one on the spot. I created one on that spot. Since I am not authorized to create one, is this why my policy is not being accepted and hence the bucket is not being populated by the file I am expecting?

Question 2: While creating the rule, what is the key? In this page, it says it is the path to the file where data is written. Whereas in this page, it says it's version Id. Current, I have kept it as null since I haven't enabled versioning. I am pretty confused on what is the key and is that the reason why in my case the bucket is not being populated.

Nirupama Rachuri
  • 113
  • 1
  • 1
  • 13

2 Answers2

0

You must store files in a DynamoDB as JSON, then create a Data Pipeline to save them in S3. Be sure to grant the proper permissions to execute this task. Check my tutorial on this in my GitHub.

Also, be sure the shadow is being updated and messages are being published in your IoT Core monitoring tool. You can also create a Cloudwatch to count the number of items in your DynamoDB.

razimbres
  • 4,715
  • 5
  • 23
  • 50
0

There is no need to use DynamoDB in the middle of this. You can move directly from IoT Core to S3. The key is the file name.

Leandro
  • 870
  • 2
  • 13
  • 27