The Monitoring Team has identified an issue with the application’s ability to compute the scoreboard and store this data in Amazon DynamoDB. We have recruited our SysAdmin as a double-agent to gather more intelligence from the rebel software developer team. She has come back with the following information:
“The developers may have removed a Kinesis trigger from our Scoreboard Lambda Function. Check to see whether or not the Scoreboard Lambda Function has been properly integrated with Kinesis. If there is no trigger, we will need to add one”.
What are we fixing? Live data from the game is sent to a Kinesis Data Stream. This should trigger a Lambda function that consumes the data in one-second batches from the Kinesis Stream. The Lambda function’s code determines how our application consumes these records. We need to connect the Scoreboard Lambda function to Kinesis.
From your AWS Management Console, navigate to the AWS Lambda Console. Make sure you are still in the region you chose at the beginning of this workshop.
Search for a function named <YourEnvironmentName>ScoreboardFn.
Click on the name of the function. This will open the Configuration page for this Lambda function.
Let’s validate the tip we received from our SysAdmin. Expand the Designer section. If your designer shows a button “Add trigger” and the Kinesis service is not listed on the lefthand side (something like the picture below), then our SysAdmin was correct: the Lambda function trigger is missing. Let’s add one now.
Click Add trigger.
Under Trigger Configuration, click the Select a trigger dropdown and type
Kinesis. Select Kinesis. A section for you to configure the Kinesis trigger will appear.
Configure the Kinesis trigger with the following values:
If the trigger was configured properly, you will see a message in the Designer confirming that you have added the Kinesis trigger.
cdk diff -c envname=$envname -c sessionparameter=true -c kinesisintegration=truein the terminal window. This will show you what will be changed in your environment.
cdk deploy -c envname=$envname -c sessionparameter=true -c kinesisintegration=trueto deploy the changes.