Here's the architecture:
I started by looking around for different data sources broken down by U.S. state and county that are being maintained around the web and settled on one being stored in a Github repo. So the first Lambda, update-stats, grabs the data once a day and processes it into DynamoDB.
One drawback to this particular data source is that it gives cumulative rather than daily counts. To derive the daily counts, I store the data over time. How to do this in DynamoDB and not preclude possible future extensions (like rollups over different dimensions) was the toughest decision I had to make on this project. Ultimately, I settled on a widening the table row (keyed by state:county) each day. Fingers crossed, but the virus should be long gone before I start to hit any row limits.
The second Lambda serves the Alexa skill. It simply loads the required row from DynamoDB and evaluates the two most recently added columns to calculate the daily change in positive cases.
The Lambdas are written in NodeJS, the AWS SDK, and alexa-message-builder and deployed and managed with Claudia.js. I wrote a few unit tests that I execute with Mocha; however, with Claudia, it's just as easy during development to upload and test most stuff inside the AWS console and CloudWatch logs.
I haven't made the skill public yet and am not sure if I will. Before that happens, there's a fair amount of productionization work left to do. Nonetheless, this was an interesting single-day project. Feel free to reach out if you have any questions.