If I Modify Code For A "Live" App, Do Users See It Before It's Recertified?
I have one "Live" app available in the Echo App "store". When I go to my "Alexa Skills" page in
developer.amazon.com, I see two listings for this App - one is a "Development" version and the other is the "live" one. This particular app uses AWS Lambda. If I upload a new version of the code to Lambda, are those code changes automatically available to users of the "Live" App or do these code changes only affect the "Development" version ... until the development version is re-submitted and certified? Based on what I've seen, it appears to me that the code changes automatically go through to the "Live" version. This seems really odd because: (a) How do you safely test and develop upgrades to an existing "Live" app without introducing bugs and other shortcomings, which will then be seen by the end-users of your app, before you submit it for re-certification? and (b) Doesn't this provide developers an end-run around the certification process? In other words, I could certify a code base that is compliant with all of Amazon's requirements, and then change the code (and not re-submit it) and all of these un-certified changes are now available to Alexa's end users? Is there an official statement somewhere on how this works? Thanks!
You don't need an official statement, you've seen it work with your own eyes. Amazon only control the data you enter into
developer.amazon.com. There is no explicit connection between that and what you might do in Lambda, Elastic Beanstalk, or your own personal service. If you want to update your code for development, but not for production, you need to fork your code and deploy a separate lambda function or web endpoint. Then change the endpoint for your development skill to the new one. They will be kept separate. When your skill is approved, the public will be using the new endpoint, and you can take down the old one. And, yes, this is a huge "end-run" around certification. And this is one of the huge problems with certification. The current certification process attempts to validate all sorts of things that are in the web app, not the certification page. But that's a point in time thing. You can change the web app at any point. So it is pretty much a waste of time and effort for Amazon to expend energy certifying things that can arbitrarily change. Personally I would like to see Amazon update its certification process and remove anything that has to do with the web app. For Starlanes I've managed to add significant new features without having to go through certification. Given how long it takes to certify (months, for Starlanes), I really want to be able to update my skill frequently. Given that "Agile" is the most commonly used development process, their current approach is antiquated. When I post an app to AWS, they don't QA it for me, dictate my user interface, or have some graduated-six-months-ago try to school a professional-developer-for-thirty-years on development methodology. They just want to know "is this going to break the system". In my opinion, that's what certification should be about.
Thank you for the comprehensive response. Your response makes sense, too, because if I was hosting a service on my own web architecture, I could change the code there and Amazon would have no way of knowing it happened.
Hi Michael, This is correct. At this time, modifications to intents and utterances will require you to resubmit, whereas any changes to your back end services are to the developer for testing and verifying. This is similar to deploying web apps on app stores, where developers are ultimately in control of the content displayed after submission. Thanks, Justin