I am currently developing an Alexa skill based on health care. So I need to store information about diseases, their diagnosis and symptoms. I have made a basic skill including information about one disease in a file, made a zip file, uploaded it to AWS Lambda and got certified by Amazon. Now I need to make this more extensive where I need to have information about many diseases. Where can I store this huge data and how to retrieve it from my Lambda function? If using DynamoDB is the right way, then how to retrieve data from there from my Lambda function? Or Is there any other better way?
The Alexa system is connected directly to Amazon's massive private servers. The servers are equipped with state-of-the-art technology that allows every individual Alexa customer to have their own account with their own files. The data about your grocery list is saved next to your favorite music.
By default, Alexa records everything you say, and those commands are stored on your Alexa account.
You'll likely need to set up account linking on your skill first. It can be a bit of a process, but check out this page here. I would suggest using Google or Amazon as your OAuth provider.
Account linking allows you to associate a particular user and their echo with an entry in a database you own. So after you have a user linked up with your database, you have two options.
Option 1 is (I believe) you can query your database directly from the Lambda service using any of the available languages.
Option 2, set up a web service that can get and set information in the database using some sort of RESTful service, and then make calls to that service instead.
It's not easy to get this kind of thing done, but It's very possible.
Edit: In addition, if you're looking to provide information on a lot of diseases, consider researching if there is an already available database of diseases, and if APIs exist to access it. This could save a lot of time for you.
DynamoDB seems to be the easiest way. Just add the aws-java-sdk-dynamodb dependency and interact with the database using AmazonDynamoDBClient
if you are using Java. You can just define the tables that you want using @DynamoDBTable
annotations. Go to https://console.aws.amazon.com/iam/home?#roles and create a role and add permission AmazonDynamoDBFullAccess
permission and you are all set.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With