After the last post (Before Submitting Your Alexa Skill You Need to Do This One Important Thing), I had someone ask me to clarify things a bit regarding aliasing and the skills certification process. Specifically, could aliasing be used to give the best of both worlds. Namely:
- Protection of Production Code
- Ease of quick code updates without recertification
Skills Certification
Functionally, Amazon only forces certification of your skill if you make a change in the Alexa Skills Developer Console. So if you are adding an intent, updating utterances, adjusting copy you would need to resubmit your skill for certification.
This means that as mentioned in the early post, you can change the back end code on your lambda without the blessing of Amazon. This makes for quick iterations as you don’t have to wait the one to two days for the certification process.
So can we still use versioning that keeps our skill-in-production always pointing to a safe code base, yet allows us to publish code changes quickly if we need to?
Lambda Aliases
The trick here would be to have at least 2 production aliases setup. You could then rotate the alias being submitted for certification while at the same time being able to be free to make changes to back end code without needing to resubmit just to change an ARN.
Lambda Version | Alias | Notes |
$latest | Development | |
1 | ProductionA | Submitted for Certification 2/7, Certified 2/9 |
2 | ProductionA | Quick bug fix for already certified skill |
3 | ProductionB | Submitted for Certification 2/10, Certified 2/13 |
4 | ProductionA | Submitted for Certification 2/15, Certified 2/17 |