Amazon EventBridge
Amazon Event Bridge is a Serverless event bus that connects application data from your own apps, SaaS, and AWS services and delivers real-time data to targets such as AWS Lambda. You can set up routing rules to determine where to send your data to build application architectures that react in real time to all of your data sources. EventBridge enables you to build event-driven architectures that are loosely coupled and distributed. For more info, check out the intro video below.
Intro: https://youtu.be/TXh5oU_yo9M
The VoiceWorx platform allows for the rapid integration of Event-Bridge to various voice chanels such as, Alexa, Lex, Google Assistant and more.
Objective:
The Objective of this document is to allow user to integrate Amazon EventBridge with VoiceWorx platform and perform basic operation as event generation from VoiceWorx.
Here are some prerequisites that the user that need to be fulfilled to move forward:
Pre-requisites
An Active VoiceWorx Account
You can register here if you do not have one already.
An active AWS Account
You should have an active AWS Account. If you do not have it, you can create an AWS account at https://portal.aws.amazon.com/billing/signup#/start
AWS Accounts Include 12 Months of Free Tier Access
At least one Amazon EventBridge Event Bus and At least one rule defined
If you do not have any Aurora DB instance, you can create one quickly.
Login to AWS Management Console at https://console.aws.amazon.com/
Go to Services > EventBridge > Create Rule.
You can use the following details:
Name: ContactFinderRule
Description(optional): this trigger contact finder lambda function
Define Pattern: Define pattern or schedule for invoking the target.
Event Pattern: Checked
Event matching pattern: pre-defined pattern by service
Service provider: All Events
Select event bus
AWS default event bus: Checked
Enable the rule on the selected event bus: Enabled
Target: Lambda Function
Function: ContactFinder (Refer to this document to create a lambda function)
Click on Create
Integration with VoiceWorx
To Configure Event-Bridge, browse to: Integration > Connect System > Add New Connection in the VoiceWorx platform and select options as shown below.
On the configuration screen, provide the information as shown below. You can get your required AWS Credentials from the AWS IAM console. Visit Video: How to get Amazon (AWS) Key and Secret
Once this is done, Create an App and a Data Source.
Create App in VoiceWorx Portal
To create app, select ‘Custom Apps’ from the left-hand panel -> Manage Apps -> Click Create New Custom App. Enter following details in the resulting page:
Name: EventBridge
Custom App Type: Search
Category: Default
Save
Create Data Source
Once the app is created, go to ‘Data Source’ Tab and create new data source.
Name: EventBridge DS
Integration Configuration: Amazon EventBridge : EventBridge ( the integration created in step above)
Create Method:
As of the publication date of this document, Event Bridge has only one method available; “PutEvent”. This method allows you to create an event on Amazon EventBrdige using the VoiceWorx platform.
In the Method tab, select create new method. Use following details to create the method.
Sample Values:
Parameter
Sample Value
Info
Source
VoiceWorx Portal
The source of the event
Detail
{"Key":"Value"}
e.g. {"name": "eventbridge log"}
The JSON object can contain fields and nested subobjects.
DetailType
This is event information text
e.g. ModuleName
Free-form string used to decide which fields to expect in the event detail.
EventBusName
default
The event bus that will receive the event. Only the rules that are associated with this event bus can match the event.
Resources
["R1"]
AWS resources, identified by Amazon Resource Name (ARN).
Example: ["arn:partition:service:region:account-id:resource-id", "arn:aws:iam::123456789012:user/Development/product_1234/*"]
time
2020-06-05 13:50:10
The timestamp of the event. Example: 2020-04-05 13:50:10
Method Name
TriggerEvent
Request Type
PutEvent
Method Output
ListOfRecords
Record Limit
10
Record JsonPath
$.[*]
Valid Result Template
Congratulations, the following event has been generated{{Records}} How else can I help you?
Record Template
{{eventId}}
Empty Result Template
How else can I help you?
After the method has been created, we can test if the method is functional or not by clicking on Test from the action menu, if successful, it should return “EventId” as shown in below in the JSON tab.
. It means that the EventBus default was successful to generate the event and the event rule was successful to invoke the Lamda function ContactFinder as defined in the event rule before.
Create Intent:
Create Intent corresponding to the method.
Name: CreateEventIntent
Intent Type: Search
Intent Action: Execute Method
Primary Method Data Source: EventBridge DS
Primary Method Data Source Method: CreateEvent
Save
Create Utterance
Utterances are short keywords used to invoke the intent.
Utterance Value: generate event
Custom App: EventBridge
Intent: CreateEventIntent
Create Input
The next step is to create input corresponding to the Intent.
Name: CreateEventInput
Custom App: EventBridge
Custom Intent: CreateEventIntent
Data Source: EventBridgeDS
Data Source Method: CreateEvent
Save
Create Publish
After all the components of the app have been created, now lets publish the app to one of the VoiceWorx supported channels. For this document, we are demonstrating on how to publish to Amazon Lex Bot. Fill the following details and Save.
Name: EventBridge
App Type: Search
Channel: Amazon Lex
Version: Lex V1
Messages: All the messages shall be auto-populated, if they do not, you can add/edit them.
Save
Once the publish profile is created, click on Actions and click on Publish to Lex. You will then be redirected to the screen where you have to choose which AWS account you want to publish the bot to.
Click on Publish to Lex V1 and on success, you shall receive success confirmation as below:
Click on go to Lex Skill to test the bot.
Here is a sample success result in Amazon Lex Chatbot.
Congratulations, you’ve successfully completed Amazon EventBridge and VoiceWorx integration.
Last updated