The inspiration for this project was Kelsey Hightower's keynote at PyCon 2017 (https://www.youtube.com/watch?v=u_iAXzy3xBA). Watching this video made me think how convenient it would be to create resources or get status updates by just asking for it with a voice command instead of typing out a lot of commands or performing several clicks.
What it does
EC2 Bot uses Amazon Lex to manage AWS EC2 instances. EC2 Bot can launch instances, retrieve the status of instances, and return how many instances are running. EC2 Bot can easily be extended using the EC2 API.
How I built it
I used AWS Lambda to build functions, AWS Lex to set up the voice interface, Python to write the Lambda code, and Boto3 to interface with the AWS API.
Challenges I ran into
The Boto3 API documentation didn't always make it easy to find what I was looking for. Sometimes it was just easier to Google for examples.
Accomplishments that I'm proud of
I've never worked with Lex before and I have limited experience with Lambda so I'm really happy I was able to get this working.
What I learned
AWS Lex makes it really easy to setup a voice interface as well as chat interfaces for the available platforms. I look forward to future changes and improvements.
What's next for EC2 Bot
EC2 Bot can easily be extended to do work with any AWS API. I would like to open-source it and see what people can contribute.