"Alexa, agrega un host a mi Centro de Datos Definido por Software (SDDC por sus siglas en inglés)" puede sonar como un comando de voz de ciencia ficción en un buque de la nave estelar, pero no lo es.
Con API totalmente integradas, la interfaz de VMware Cloud en AWS puede ser impulsada por cualquier tipo de software que pueda enviar una llamada API a una interfaz.
En este artículo se describe cómo crear una función AWS Lambda simple, para controlar un dispositivo Amazon Echo y recibir y responder a los comandos de voz.
Arquitectura
La arquitectura es bastante simple e implica un comando de voz para el dispositivo Echo, solicitando alguna acción o estado. Alexa activa una función Lambda que envía una llamada API a VMware Cloud en AWS y envía un mensaje de registro a un canal Slack.
Las API de VMware Cloud on AWS se enumeran en https://vmc.vmware.com/swagger/index.html#/
Necesita tener derechos de acceso y ser autenticado para poder verlos.
Para llamar a las API, también necesita un token de actualización de su organización SDDC y sus ID de SDDC y de organización.
La habilidad (skill) que estamos creando será interactiva y requiere ingresar parámetros como la cantidad de hosts para agregar o eliminar.
Los pasos a seguir son:
- Inicie sesión en su cuenta de AWS
- Cree una función Lambda
- Inicie sesión en el portal para desarrolladores de Amazon
- Cree su habilidad
- Pruébelo con un dispositivo Echo, un simulador en línea o el simulador de eco en https://echosim.io/welcome
Cree su función desde cero:
- Dele un nombre
- Use Python3.6
- Utilice el rol existente "lambda_basic_execution" para los permisos
- Haga clic en "Crear"
En la pantalla siguiente, asegúrese de copiar el Nombre del recurso de Amazon (ARN) de la función. Lo necesitaremos más tarde.
Cree una habilidad de Alexa
Inicie sesión en el sitio del Desarrollador: https://developer.amazon.com/home.html, seleccione Alexa y luego Alexa Skills Kit.
1. Información de habilidad
Agregue una nueva habilidad y elija un nombre y un nombre de invocación.
El nombre de invocación es importante, este es el comando que usará para activar la habilidad.
Deje los campos globales por defecto y guarde.
Desplácese hacia arriba en esta pantalla. Ahora verá la ID de la aplicación. Tome nota de esto, lo usaremos en nuestra función Lambda.
2. Modelo de interacción
Ahora inicie el generador de habilidades.
Aquí es donde podemos enseñarle a Alexa a reconocer nuestros intentos y cómo reconocer nuestras solicitudes.
También tenemos una lista de parámetros como NÚMEROS donde podemos agregar un valor. Por ejemplo: agregue dos hosts o agregue tres hosts. El valor "dos" o "tres" debe reconocerse como una variable.
La forma más fácil de completar los intentos es cargar el archivo JSON ubicado en:
https://github.com/gchek/VMC-Alexa/blob/master/intents.json
Intents are in the format: “name”: “SDDClist”, “samples”: [ “list my organization SDDCs”, “list my org”, “list my organization”, “my org”, “my organization”, “my data center” |
Se puede usar una frase simple como "enumerar mi organización", pero también podemos decir algo como:
"Alexa, pregunta mi demo sobre mi organización"
En esta oración tenemos el nombre de invocación "mi demostración" y la intención de "mi organización"
Una vez hecho esto, aplique los cambios, guarde el modelo y cree el modelo.
3. Configure el punto final del servicio
El siguiente paso es vincular la función Lambda con la habilidad de Alexa. Para hacer eso, utilizaremos el Lambda ARN previamente guardado como punto final.
Ahora queremos utilizar las habilidades de Alexa como disparador en nuestra función Lambda.
Regresemos a la consola AWS Lambda.
Seleccione Alexa Skills Kit como disparador en el panel izquierdo y pegue la identificación de la aplicación Alexa como un disparador y guárdela.
El siguiente paso es subir el código.
El código completo se encuentra en: https://github.com/gchek/VMC-Alexa/blob/master/Archive.zip
4. Prueba
Eso es. Ahora puede probar la aplicación usando un dispositivo Echo real, un simulador en línea o el simulador de eco en https://echosim.io/welcome
Ejemplos de interacciones
Habilite la función diciendo:
"Alexa, abre mi demo"
Bienvenido a VMware Cloud en la demostración de AWS ... Pregúntame.
"Listar mi organización"
Esta es la lista de SDDC en su organización: Adam-SDDC, Nico-SDDC, Gilles-SDDC, Kevin-SDDC
Y así sucesivamente según los intentos.
NOTA: De preferencia hacer la interacción en inglés “Alexa, open my demo” Welcome to the VMware Cloud on AWS demo… Ask me. ”List my organization” This is the list of SDDCs in your organization: Adam-SDDC, Nico-SDDC, Gilles-SDDC, Kevin-SDDC |
¿Cómo construimos la habilidad de Alexa?
Estructura de código
- config.ini: Archivo que contiene el Auth Token, Org ID, SDDC ID y Slack Channel URL
- intents.json: archivo que contiene la representación JSON de los comandos de voz y las respuestas de Alexa.
- lambda_function.py: el código lambda y las llamadas API. El nombre del archivo es IMPORTANTE. Así es como se ejecutará el código
- archive.zip: directorio comprimido con todas las "importaciones" y el código. Este es el archivo que cargamos en la configuración de Lambda
Controlador Lambda
El controlador principal contiene cuatro eventos:
- Nueva sesión iniciada: imprimir solo el registro
- Lanzamiento de sesión: hablar respuesta de "bienvenida"
- Evento de sesión: determinar el evento y actuar sobre él
- Final de sesión: hablar "Adiós", respuesta y cerrar
Ejemplo de evento: obtener el estado del Centro de Datos Definido por Software (SDDC)
Al reconocer el comando de voz "obtener mi estado de SDDC", se llama a la función
get_sddc_status (). Esta función, a su vez, llama al get_sddc_data () y la llamada API se realiza a VMware Cloud en AWS para que nuestras variables de datos SDDC puedan completarse.
Luego, se llena la respuesta build_speechlet_response y la pronunciará Alexa.
Alexa y abrir la seguridad del micrófono
Por razones de seguridad, el micrófono de los dispositivos Echo no puede abrirse durante más de 8 segundos. Si la sesión se está ejecutando, tiene 8 segundos para preguntarle algo a Alexa. Si no habla, hay un "re-prompt" incorporado en el "speechlet" que le volverá a preguntar.
El total es entonces 16 segundos; si no habla durante este tiempo, Amazon Echo cerrará la sesión.
Una solución para esto es crear un evento "WAIT" o "HOLD-ON" que comprará tiempo, porque agregar o eliminar hosts lleva más de 8 segundos en ZEROCLOUD (10 minutos en un entorno real).
Si está utilizando el simulador de prueba en línea, esto no es un problema.
Es hora de iniciar con su demo. Esperemos que estos pasos sean suficientes y necesarios para comenzar una aventura VMware Cloud y Amazon Alexa. ¿Qué espera? ¡A comenzar!
No hay comentarios:
Publicar un comentario
Todos los derechos reservados.
Copyright © 2025.