Challenge Overview
Challenge Objectives
-
Configure API Gateway for lambda functions with a domain name
Project Background
We built several bots over AWS Lambdas for communication from/to Topcoder Slack, Client Slack, and Client MS Teams.
The tech stacks are
-
AWS Lambda + Serverless tool
-
DynamoDB
-
AWS SNS
The source code of our bots is available at https://github.com/topcoder-platform/Topbot/tree/unified-lambda
Follow the README for understanding detailed steps of deployment and interaction between bots, slacks and Teams.
Technology Stack
-
AWS Lambda
-
AWS API Gateway
-
DynamoDB
-
AWS SNS
Individual requirements
Main task in this challenge is to configure a custom domain for API gateway with serverless framework.
Changes that are required are:
-
Documentation update for configuring domain and certificate in AWS
-
Code or configuration update to configure API gateway with a domain name during deployment
-
Code or configuration update to set the LAMBDA_URI environment variable to the domain url instead of the generic API Gateway url
NOTE: You will need to use your own AWS account and domain for this challenge. You can try using some free domain service for testing purposes.
First task (documentation update) should cover setting up the domain in AWS account (Route53, hosted zones, SSL certificate, etc) - the manual steps that need to be done only once for a top level domain.
Second task (code/config update) should cover setting up a domain name for API Gateway during deployment (and removing it when “undeploying”). This should be automated via serverless plugin - serverless-domain-manager.
Third task is to update code/config to use the domain name instead of the generic API Gateway url for all lambda calls. Make sure not to break local deployment of lambda functions - we should still be able to deploy and test the functions locally
- the reviewer should be able to setup bots after serverless deploy,
- do the basic testing with bots,
- Remove all with serverless undeploy
- Again deploy using using serverless
- Test if bots are still working without touching any configuration
Submission Guidelines
-
Submit a git patch with the updated code, Readme and Verification guide
-
Submit a demo video demonstrating api calls with the configured domain name