Create Extraordinary Rides Service Subscription

Now we are ready to configure the subscription for the extraordinary rides service:

1. Create a new subscription

After selecting the topic RideCompletionTopic, click the Create subscription button in the bottom right corner.

Detailed description

2. Configure the subscription

In the next page, select AWS Lambda as the subscription protocol. In the Endpoint dropdown type CustomerNotification, and select the ARN of the Lambda function.

To look-up the subscription endpoint, navigate back to your CloudFormation console, select the stack wild-rydes-async-msg-1 and select the Outputs tab. Select the value, corresponding to the key ExtraordinaryRidesFunction. It should look similar like arn:aws:lambda...ExtraordinaryRidesFunction-3DzmsnujRS2Q.

You can also look-up the value by running the following command:

aws cloudformation describe-stacks \
    --stack-name wild-rydes-async-msg-1 \
    --query 'Stacks[].Outputs[?OutputKey==`ExtraordinaryRidesFunction`].OutputValue' \
    --output text

Don’t overlook to create the subscription filter policy!

Expand the section Subscription filter policy to create the subscription filter policy to receive notifications only, if the fare >= 50 and the distance >= 20. If you are not familiar with the syntax, you can study it here - or fall-back to the cheat sheet below.

cheat sheet

Click Create subscription to create the subscription.

Detailed description

3. Confirm the subscription

Amazon SNS require a confirmation of a subscription, before it publishes messages to that endpoint, as described here.
Our provided Customer Notification Service handles this automatically for us. The Status will change to Confirmed immediately (may refresh the page a couple of times). There is nothing to do for you in this step.

Detailed description

To validate that the trigger was created for the Lambda function, navigate to the AWS Lambda console. Open the Extraordinary Rides function. In the function overview you should see the SNS service icon. Click on the icon and make sure you have the RideCompletionTopic trigger listed.

Detailed description

1. Update the AWS SAM template

In your Cloud9 IDE for this workshop, open the SAM template file ‘wild-rydes-async-messaging/lab-1/template.yaml’. In the Resources section, add the definition for the Amazon SNS subscription for the ExtraordinaryRidesService. You can find the AWS CloudFormation documentation to do so here.

Don’t overlook to create the subscription filter policy!

Cheat Sheet
Detailed description

2. Deploy the updated AWS SAM template

Run the following command to build the lab again, after we have added the Amazon SNS subscription:

cd ~/environment/wild-rydes-async-messaging/lab-1
sam build

Now we are ready to update the application, by running the following command to deploy the change:

sam deploy

Note: you do not need to provide the arguments for the deployment, because AWS SAM saved the parameter values in a configuration file called samconfig.toml. See the documentation more information on the AWS SAM CLI configuration file.

Because AWS SAM will only deploy/update/delete resources which are changed, it only takes a couple of seconds to deploy the new Amazon SNS topic.