Send Email Notification When Object Is Uploaded to OCI Object Storage
In cloud environments mostly Object Storage is used as a landing zone for files, documents, logs, reports, images, and application data. Once a file is uploaded, teams often need an alert so that the next process can begin. This could be a manual review, downstream processing, file validation, or simply an operational notification. The desired requirement is to get alerted when an object is uploaded to bucket.
Oracle Cloud Infrastructure provides a simple event-driven
approach for this requirement. We can use OCI Object Storage, OCI
Events, and OCI Notifications to send an email whenever a new object
is uploaded to a bucket.
In this article, we will configure an automated email
notification flow. When a file is uploaded to an Object Storage bucket, OCI
Events will detect the object creation event and send an email through OCI
Notifications. We user OCI services OCI Object Storage, OCI Events, OCI
Notifications.
OCI Object Storage is used to store the uploaded
files.
OCI Events is used to detect the object upload
activity.
OCI Notifications is used to send the email alert.
This is a serverless notification pattern. We do not need to
manage any compute instance, scheduler, or custom polling script.
Prerequisites
Before starting the configuration, the following items
should be available:
OCI tenancy access
Required compartment
Permission to create Object Storage bucket
Permission to create Notification topic
Permission to create Events rule
Valid email address for subscription
For this article, we will use a simple Object Storage bucket
and one email subscription.
Create Object Storage Bucket
We will start by creating an Object Storage bucket.
From the OCI Console, we can navigate to Object Storage and
create a new bucket in the required compartment.
Example bucket name:
object-upload-notification-bucket
The default bucket settings can be used for this activity.
Once the bucket is created, it will be used as the source for upload events.
Enable Object Events for the Bucket
After creating the bucket, object events must be enabled for
the bucket.
This is an important step. If object events are not enabled,
OCI Events will not receive object-level activities from the bucket.
In the bucket console page, setting is available under the
bucket details.
We can edit the bucket and enable:
Emit Object Events
After enabling this option, Object Storage can publish
events when objects are created, updated, or deleted.
Create Notification Topic
Next, we will create a Notification topic. Click Developer
Services -> Application Integration -> Notifications.
The Notification topic acts as the target for the Events
rule. When the Events rule matches an object upload event, it sends the message
to this topic.
Example topic name:
object-upload-email-topic
After the topic is created, it will be used as the action
target in the Events rule.
Create Email Subscription
After creating the topic, we need to add an email
subscription.
The subscription has multiple protocols; in this article we
use Email. The email address should be the recipient address where upload
alerts need to be sent.
Once the subscription is created, OCI sends a confirmation
email to the recipient. The subscription remains in pending status until the
confirmation link is accepted.
The email subscription must be confirmed before
notifications can be received.
After confirmation, the subscription status changes to
active.
Create Events Rule
Now we will create an Events rule.
The Events rule is responsible for capturing the Object
Storage upload event and triggering the Notification topic.
From the OCI Console, we can navigate to Events Service through
observability & Managemetn -> Events service -> Rules. and create a
new rule.
Example rule name:
object-upload-email-rule
The rule condition should match the Object Storage object
creation event.
The event type should be related to:
Object Storage - Create Object
This event is generated when a new object is uploaded into
Object Storage.
To keep the rule specific, we can also add a condition for
the bucket name. This helps us avoid sending alerts for every bucket in the
compartment.
Example condition:
bucketName = object-upload-notification-bucket
This means the rule will only match object upload events
from this specific bucket.
Configure Rule Action
After defining the rule condition, we need to configure the
action.
The action type should be:
Notifications
The target topic should be:
object-upload-email-topic
Once the rule is created, OCI Events will monitor object
creation events and send matching events to the Notification topic.
Upload Test File
After the Events rule is created, we can test the setup by
uploading a file to the Object Storage bucket.
Example file name:
Sample_test.txt
Once the file is uploaded, Object Storage emits a create
object event. OCI Events evaluates the event and sends it to the Notification
topic. The subscribed email address receives the alert.
In most cases, the email is delivered within a short time. A
small delay is normal.
Validate Email Notification
After the test file is uploaded, we can check the subscribed
email inbox.
The notification email usually contains event details in
JSON format. The message includes useful information such as:
eventType
eventTime
compartmentId
bucketName
objectName
namespace
resourceName
The most important values for this use case are:
bucketName
objectName
eventType
eventTime
These values confirm which object was uploaded and when the
event occurred.
Sample Notification Payload
The email message may include an event payload similar to
the following:
This payload confirms that the uploaded object triggered the
event successfully.
No comments:
Post a Comment