DevOps en tu Alexa Skill. Deploy.
Despliegue de una Skill con la ASK CLI
Cuando se verifica el código en los pasos anteriores, es hora de desplegar la Skill de Alexa para comenzar los siguientes pasos que ejecutarán diferentes tipos de pruebas. Hay algunas pruebas como pruebas de VUI, pruebas de integración, pruebas end-to-end y pruebas de validación que no podemos ejecutar en localhost con nuestro código. Es por eso que necesitamos desplegar neustra Alexa Skill en el stage de desarrollo.
DevOps en tu Alexa Skill: Deploy
Estos pasos están automatizadas en el sistema de integración continua (CircleCI) y se ejecutan en cada nueva versión del software.
Requisitos previos
Aquí tienes las tecnologías utilizadas en este proyecto:
- Amazon Developer Account - Cómo crear una cuenta
- AWS Account - Regístrate aquí gratis
- ASK CLI - Instalar y configurar ASK CLI
- CircleCI Account - Regístrate aquí gratis
- Visual Studio Code
ASK CLI (Alexa Skill Kit CLI)
La Alexa Skills Kit Command Line Interface (ASK CLI) es una herramienta para que puedas administrar tus Skills de Alexa y recursos relacionados, como las funciones de AWS Lambda. Con la ASK CLI, tienes acceso a la Skill Management API, que te permite administrar las Skills de Alexa mediante programación desde la línea de comandos. Usaremos esta poderosa herramienta para desplegar nuestra Skill de Alexa. ¡Empecemos!
Instalación
La ASK CLI está incluida en la Docker image que estamos usando, por lo que no es necesario instalar nada más.
Deploy
En este paso del pipeline, desplegaremos nuestra Skill de Alexa usando ASK CLI en el stage de desarrollo. Cuando desplegemos nuestra Skill en el stage de desarrollo, actualizaremos el manifest de nuestra Skill, lo sinteraction models, los Buckets, los In-Skill Purchasing products y el código lambda en el Cloud de Alexa y AWS. Podemos usar los siguientes comandos en ASK CLI para desplegar nuestra Skill de Alexa:
- Para ask cli v1:
ask deploy --debug --force
- Para ask cli v2:
ask deploy --debug --ignore-hash
Informes
No hay informes definidos en este job.
Integración
No es necesario integrarlo en el archivo package.json
.
Pipeline Job
Todo está completamente instalado, configurado e integrado, ¡agregémoslo a nuestro pipeline!
Este job ejecutará las siguientes tareas:
- Restaurar el código que hemos descargado en el paso anterior en la carpeta
/home/node/project
- Copiar el archivo
package.json
en la carpetasrc/
. - Ejecutar el comando
npm run build-production
que instalará solo las librerías de producción en la carpetasrc/
. - Ejecutar
ask deploy --debug --force
que desplegará todo el código de la carpetasrc/
como una lambda de AWS. - Conservar nuevamente el código que reutilizaremos en el próximo job
deploy:
executor: ask-executor
steps:
- attach_workspace:
at: /home/node/
- run: cd lambda/custom && npm run copy-package
- run: cd lambda/custom/src && npm run build-production
- run: ask deploy --debug --force
- persist_to_workspace:
root: /home/node/
paths:
- project
NOTA: Si queremos ejecutar con éxito todos los comandos ASK CLI, debemos configurar 5 variables de entorno:
ASK_DEFAULT_PROFILE
ASK_ACCESS_TOKEN
ASK_REFRESH_TOKEN
ASK_VENDOR_ID
AWS_ACCESS_KEY_ID
AWS_SECRET_ACCESS_KEY
Y configurar el perfil __ENVIRONMENT_ASK_PROFILE__
en el archivo .ask/config
.
Cómo obtener estas variables y cómo configurar este perfil se explica en esta publicación
Recursos
- DevOps Wikipedia - Wikipedia reference
- Documentación Oficial Alexa Skill Management API - Documentación Oficial Alexa Skill Management API
- Documentación oficial de CircleCI - Documentación oficial de CircleCI
Conclusión
Gracias al ASK CLI podemos realizar esta compleja tarea.
Puedes encontrar el código en mi Github
!Eso es todo!
¡Espero que te sea útil! Si tienes alguna duda o pregunta, no dudes en ponerte en contacto conmigo o poner un comentario a continuación.
Happy coding!