Trigger for Object Storage that sends messages to WebSocket connections
A trigger for Object Storage sends messages to WebSocket connections when a specific event occurs with an Object Storage object. The trigger must be in the same cloud as the bucket whose events it is subscribed to.
A trigger for Object Storage requires a service account to send messages to WebSocket connections.
For more information about creating a trigger for Object Storage, see Creating a trigger for Object Storage that sends messages to WebSocket connections.
Events for setting up a trigger
Events with bucket objects that can be tracked using a trigger:
Filtering events by object
Events are filtered using prefixes and suffixes for an object key.
- The prefix is the part of the object key that contains the beginning of the object key.
- The suffix is the part of the object key that contains the end of the object key.
Prefixes and suffixes can be of any length. When using a prefix and suffix at the same time, filtering is based on the logical AND
: for the trigger to work, the object key must match both the prefix and suffix.
Batching
Batching settings allow you to send multiple events to WebSocket connections in one go. They set a top limit on event group size and on event group accumulation time. For example, if the event group size is 3, WebSocket connections can receive groups containing from 1 to 3 events.
Roles required for the proper operation of a trigger for Object Storage
- To create a trigger, you need a permission for the service account under which the trigger executes the operation. This permission comes with the iam.serviceAccounts.user and editor roles or higher.
- To activate a trigger, the service account needs the
api-gateway.websocketBroadcaster
role for the folder containing the API gateway.
Read more about access management.
Object Storage trigger message format
After the trigger fires, it will send the following message to WebSocket connections:
{
"messages": [
{
"event_metadata": {
"event_id": "bb1dd06d-a82c-49b4-af98-d8e0********",
"event_type": "yandex.cloud.events.storage.ObjectDelete",
"created_at": "2019-12-19T14:17:47.847365Z",
"tracing_context": {
"trace_id": "dd52ace7********",
"span_id": "",
"parent_span_id": ""
},
"cloud_id": "b1gvlrnlei4l********",
"folder_id": "b1g88tflru0e********"
},
"details": {
"bucket_id": "s3-for-trigger",
"object_id": "dev/0_15a775_972dbde4_orig12.jpg"
}
}
]
}