IBM Cloud Event Notifications is a service that may filter and route occasions obtained from different IBM Cloud providers or customized purposes to communication channels like electronic mail, SMS, push notifications, webhook, Slack, Microsoft® Groups, ServiceNow, IBM Cloud Code Engine and IBM Cloud Object Storage.
This publish 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 software to ship customized occasions.
Structure overview
- Utilizing an IaC instrument, the infrastructure engineer deploys and configures the widespread infrastructure parts which can be required for a given answer. On this instance, we concentrate on the minimal parts required to show the utilization of the providers which can be included:
- Creating an occasion of Event Notifications.
- Configuring sources, subjects, subscriptions and electronic mail locations.
- Configuring sources, subjects, subscriptions and SMS locations.
- Creating an occasion of Cloud Object Storage and authorization between the Occasion Notifications and Cloud Object Storage cases, sources, subjects, subscriptions and locations.
- The developer creates a brand new Code Engine undertaking and deploys the appliance to the undertaking. Though Code Engine is used on this instance, the appliance may have additionally been deployed to a VPC digital server occasion or Kubernetes cluster.
- The appliance generates a brand new occasion to the Occasion Notifications occasion primarily based on an inner occasion within the software. The occasion is delivered primarily based on the subscriptions and locations which can be configured by the infrastructure engineer utilizing the Terraform template. All occasions obtained 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 software that’s to be deployed by the appliance 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 setting. These occasions are reported by the IBM Cloud Useful resource Controller:
Configuring for software occasions
The Terraform template creates a brand new API source for the customized software 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 software
The customized software requires a couple of items of data 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 placement 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 appliance on the Occasion Notifications occasion. This service credential has an
api_key
that’s wanted by the appliance to authenticate and cross occasions to the Occasion Notifications occasion. - Lastly, the
api_source_name
andapi_source_id
for the API supply is offered.
Sending the customized occasion utilizing the values offered
The appliance developer can embody the values offered as setting variables to the appliance. They’re used as proven under:
The payload within the occasion that’s submitted is diminished since we all know the subscriber to this occasion going will solely go to a Cloud Object Storage bucket. Further properties must be added primarily based on the anticipated vacation spot channel (be taught extra within the documentation).
Getting began
I hope you’ll discover this instance helpful in your personal initiatives. To get began, evaluate the README within the repository on GitHub for step-by-step directions on deploy this instance.
Questions and suggestions
You probably have suggestions, options, or questions on this publish, please attain out to me on LinkedIn. You may also open GitHub issues on the associated code samples for clarification.
Learn more about IBM Cloud Event Notifications