Triggers for Object Storage
Triggers for Object Storage run a function when certain events occur with an object from Yandex Object Storage. The trigger must be in the same cloud as the bucket whose events it's subscribed to.
A trigger for Object Storage needs a service account to invoke the function.
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 any length. When using a prefix and suffix at the same time, filtering is done based on the logical AND
: for the trigger to work, the object key must match both the prefix and suffix.
Roles required for the proper operation of a trigger for Object Storage
- To create a trigger, you need a permission for a service account that runs the trigger executing the operation. This permission is included in the roles iam.serviceAccounts.user, editor, and higher.
- To run a trigger, the service account needs the
serverless.functions.invoker
role for the folder containing the function called by the trigger.
Learn more about access management.
Trigger message format Object Storage
After the trigger is activated, it sends the following message to the function:
{
"messages": [
{
"event_metadata": {
"event_id": "bb1dd06d-a82c-49b4-af98-d8e0c5a1d8f0",
"event_type": "yandex.cloud.events.storage.ObjectDelete",
"created_at": "2019-12-19T14:17:47.847365Z",
"tracing_context": {
"trace_id": "dd52ace79c62892f",
"span_id": "",
"parent_span_id": ""
},
"cloud_id": "b1gvlrnlei4l5idm9cbj",
"folder_id": "b1g88tflru0ek1omtsu0"
},
"details": {
"bucket_id": "s3-for-trigger",
"object_id": "dev/0_15a775_972dbde4_orig12.jpg"
}
}
]
}