Event Target for AWS S3
This event Target receives CloudEvents over HTTP and invokes an AWS S3 endpoint.
Prerequisites
-
AWS API key and secret
-
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
.
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.
After clicking the Save
button, the console will self-navigate to the Bridge editor. Proceed by adding the remaining components to the Bridge.
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.
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 |