У меня есть очередь в CloudRabbitMQ, так что с кодом javascript я могу отправить туда экземпляр. Это код:
var amqp = require('amqplib/callback_api');
function send(answer){
// TODO: Log the answer in a database
console.log(`El color enviado ha sido: ${answer}`);
//Conectamos con el servidor de RabbitMQ
amqp.connect('ID OF THE CLOUDRABBITMQ' + '?heartbeat=60', function(error0, connection) {
if (error0) {
console.log("Fallo al conectar con CloudRabbitMQ")
throw (error0);
}
console.log("¡La conexión con CloudRabbitMQ ha sido correcta!")
//Creamos un canal de comunicación
connection.createChannel(function(error1, channel) {
if (error1) {
throw (error1)
}
var queue = 'PiezasTetris';
var msg = answer;
channel.sendToQueue(queue, Buffer.from(msg));
console.log(" [x] Sent %s", msg);
})
//Cerramos la conexion
setTimeout(function() {
connection.close();
process.exit(0)
}, 500);
});
};
Код работает хорошо, но проблема в том, что я хочу, чтобы эта функция отправляла цвет в очередь с вызовом Alexa. Так, например, «Алекса, отправь синий цвет»: Алекса вызовет
отправить («синий»)
Проблема в том, что модуль CloudRabbitMQ ('amqplib'), который я использую, не может быть введен в код Alexa. На некоторых страницах говорится, что решение состоит в использовании лямбда-функций, но я не знаю, как реализовать лямбда-функцию, которая будет вызываться, когда Алекса хочет отправить объект:
Алекса хочет отправить «Синий» - > («Синий») в лямбда-функцию -> Лямбда-функция вызывает send («Синий»)
Итак, теперь я не знаю, как создать лямбда-функцию, которая будет вызываться, когда Alexa Намерение получает цвет от пользователя, а затем лямбда-функция вызовет функцию «send ()».
Пожалуйста, я очень новичок в AWS Lambda, так что если бы вы могли объяснить мне самую простую и простую версию из этого, я был бы признателен ...