Event Target for AWS S3

This event Target receives CloudEvents over HTTP and invokes an AWS S3 endpoint.

Prerequisites

  1. AWS API key and secret

  2. ARN for the S3 bucket to store the event

Consult the Secrets guide for more information about how to add the AWS API specific secrets.

The ARN for the S3 bucket must include the account number and region of a pre-defined access point

Deploying an Instance of the Target

Open the Bridge creation screen and add a Target of type AWS S3.

Adding an S3 Target

In the Target creation form, provide a name for the event Target, and add the following information:

  • AWS Secret: Reference a TriggerMesh secret containing an AWS API key and Secret as discussed in the prerequisites
  • AWS ARN: The ARN that points to the AWS S3 bucket

There is an optional toggle flag indicating if the full CloudEvent should be sent to S3 bucket. By default, this is disabled which means the event payload will be sent only.

AWS S3 Target form

After clicking the Save button, the console will self-navigate to the Bridge editor. Proceed by adding the remaining components to the Bridge.

Bridge overview

After submitting the bridge, and allowing some configuration time, a green check mark on the main Bridges page indicates that the bridge with the AWS S3 Target was successfully created.

Bridge status

For more information about using AWS S3, please refer to the AWS documentation.

Event Types

Events of this type will store the event payload into an s3 bucket.

The AWS S3 Target leaves the CloudEvent type definition to the discretion of the implementer given the flexible nature of what can be stored in S3. There is an exception if the io.triggermesh.awss3.object.put type is used where the target will store the payload body regardless of the Discard CloudEvent context attributes setting.

The S3 bucket key used to store the event is defined by the ce-subject attribute. If ce-subject is not set, the default key will be: ce-type/ce-source/ce-time.

This type expects a JSON payload with the following properties:

Name Value Description
ce-type io.triggermesh.awss3.object.put or user defined Event type denoting the s3 put request
ce-subject string The key to use with the assigned bucket for the Target
body JSON The data payload to store

The response CloudEvent would have the following payload:

Name Value Description
ce-type io.triggermesh.targets.aws.s3.result Denotes a response payload from the S3 put request
ce-source arn:aws:s3:... The S3's bucket ARN value as configured by the target
body JSON A JSON response from the Target invocation with the Etag associated with the request