Simple Storage Service (S3)
Direction: MO
This object-storage capability provides simple, highly reliable, highly robust; cloud file storage within AWS.
Messages are automatically uploaded as files to the Customer's "bucket" as prescribed.
- Bucket - the named "folder" where Messages should be delivered in Customers Account
- Upload Mode - see Upload Modes for available options.
- Prefix (Optional) - Additional prefix added to files uploaded
- Extension (Optional) - Alternative file extension for "Payload" files
- Upload File Naming - How filenames will be determined
- ID - The ID of the Lingo message will be used as described below.
- Source - Replicates the file structure used at the file source. Only use this option when utilising a RockRemote with the IoT file upload functionality.
Naming Conventions
By default, Messages are uploaded to specified Bucket with the following naming convention:
- Lingo -
[MESSAGE ID].json
- Payload -
[MESSAGE ID].bin
Additionally, this can be customised further as per Prefix
and Extension
.
- Lingo -
[PREFIX][MESSAGE ID].json
- Payload -
[PREFIX][MESSAGE ID].[EXTENSION]
Setup
As Buckets reside within Customers Accounts, delegated access needs to be provided to the platform to upload files.
The platform specifically needs permission for these actions s3:PutObject
and s3:GetBucketLocation
on the Bucket.
Alternatively, simply copy and apply this CloudFormation script:
---
AWSTemplateFormatVersion: 2010-09-09
Description: "Customer template to allow Cloudloop S3 queues"
Parameters:
CloudloopRoleARN:
Description: The ARN of the Cloudloop Role
Type: String
Default: arn:aws:iam::902942185257:role/CloudloopDataAgent
S3BucketName:
Description: The name of the S3 bucket to create
Type: String
Resources:
S3Bucket:
Type: AWS::S3::Bucket
Properties:
BucketName: !Ref S3BucketName
S3BucketPolicy:
Type: AWS::S3::BucketPolicy
Properties:
Bucket: !Ref S3Bucket
PolicyDocument:
Version: 2012-10-17
Statement:
- Action:
- 's3:PutObject'
- 's3:GetBucketLocation'
Effect: Allow
Resource: !Join
- ''
- - 'arn:aws:s3:::'
- !Ref S3Bucket
- /*
Principal:
AWS: !Ref CloudloopRoleARN