IBM Cloud Event Notifications is a service that may filter and route occasions acquired from different IBM Cloud providers or customized functions to communication channels like e mail, SMS, push notifications, webhook, Slack, Microsoft® Groups, ServiceNow, IBM Cloud Code Engine and IBM Cloud Object Storage.
This submit explores how one can create and configure the Occasion Notifications service utilizing an Infrastructure as Code (IaC) template (on this case, Terraform) and configure an instance utility to ship customized occasions.
Structure overview
- Utilizing an IaC instrument, the infrastructure engineer deploys and configures the frequent infrastructure parts which can be required for a given answer. On this instance, we give attention to the minimal parts required to show the utilization of the providers which can be included:
- Creating an occasion of Event Notifications.
- Configuring sources, matters, subscriptions and e mail locations.
- Configuring sources, matters, subscriptions and SMS locations.
- Creating an occasion of Cloud Object Storage and authorization between the Occasion Notifications and Cloud Object Storage cases, sources, matters, subscriptions and locations.
- The developer creates a brand new Code Engine undertaking and deploys the applying to the undertaking. Though Code Engine is used on this instance, the applying might have additionally been deployed to a VPC digital server occasion or Kubernetes cluster.
- The applying generates a brand new occasion to the Occasion Notifications occasion based mostly on an inner occasion within the utility. The occasion is delivered based mostly on the subscriptions and locations which can be configured by the infrastructure engineer utilizing the Terraform template. All occasions acquired by this API supply are delivered to an Object Storage bucket.
The Occasion Notifications occasion is configured to allow lifecycle occasions and an API source to obtain each platform occasions and occasions from a customized utility that’s to be deployed by the applying developer.
Configuring for lifecycle occasions
The Terraform template allows the resource lifecycle events default supply and provides two filters for when new cases are created and deleted from the cloud atmosphere. These occasions are reported by the IBM Cloud Useful resource Controller:
Configuring for utility occasions
The Terraform template creates a brand new API source for the customized utility occasions. It then configures a vacation spot and subscription to a newly created Cloud Object Storage bucket utilizing the private COS endpoints:
Producing the values required for the customized utility
The customized utility requires just a few items of knowledge to have the ability to ahead its occasions to the Occasion Notifications occasion. The template generates these values on the finish to allow them to be handed over to the developer.
- The situation of the Occasion Notifications occasion (i.e.,
instance_location
). - The distinctive identifier for the Occasion Notifications occasion (i.e.,
instance_guid
). - A service credential is created for the applying on the Occasion Notifications occasion. This service credential has an
api_key
that’s wanted by the applying to authenticate and go occasions to the Occasion Notifications occasion. - Lastly, the
api_source_name
andapi_source_id
for the API supply is supplied.
Sending the customized occasion utilizing the values supplied
The applying developer can embrace the values supplied as atmosphere variables to the applying. They’re used as proven beneath:
The payload within the occasion that’s submitted is decreased since we all know the subscriber to this occasion going will solely go to a Cloud Object Storage bucket. Further properties ought to be added based mostly on the anticipated vacation spot channel (study extra within the documentation).
Getting began
I hope one can find this instance helpful in your personal tasks. To get began, assessment the README within the repository on GitHub for step-by-step directions on tips on how to deploy this instance.
Questions and suggestions
In case you have suggestions, strategies, or questions on this submit, please attain out to me on LinkedIn. You may as well open GitHub issues on the associated code samples for clarification.
Learn more about IBM Cloud Event Notifications