Автор оригинала: Mohammed AbdurRaheem.
Теперь у нас есть идея, как работают AWS-IOT и как мы можем реализовать с Nodejs, как мы видели в предыдущей части. Также мы собираемся создать функцию лямбда, которая будет вызывать из правила, которое является триггером на кнопке AWS-IOT, щелкните и лямбда Буду опубликовать SNS на свой номер мобильного телефона простейшим способом. Вы можете проверить часть 1 здесь
Создайте функцию лямбда Создать функцию лямбда: В консоли AWS Lambda выберите «Начать работу сейчас» или, если вы создали функцию Lambda, выберите «Создать функцию лямбда». У меня есть функция, названная MyButton, которая выглядит как
console.log('Loading function'); // Load the AWS SDK var AWS = require("aws-sdk"); // Set up the code to call when the Lambda function is invoked exports.handler = (event, context, callback) => { // Load the message passed into the Lambda function into a JSON object var eventText = JSON.stringify(event, null, 2); // Log a message to the console, you can view this text in the Monitoring tab in the Lambda console or in the CloudWatch Logs console console.log("Received event:", eventText); // Create a string extracting the click type and serial number from the message sent by the AWS IoT button var messageText = "Received " + event.clickType + " message from button ID: " + event.serialNumber; // Write the string to the console console.log("Message to send: " + messageText); // Create an SNS object var sns = new AWS.SNS(); // Populate the parameters for the publish operation // - Message : the text of the message to send // - TopicArn : the ARN of the Amazon SNS topic to which you want to publish const param = { TopicArn: arn:aws:sns:us-west-2:123456789012:test-topic1, Message: messageText, }; SNS.publish(param, function (err, data) { if (err){ console.log(err); // an error occurred }else{ console.log(data); } // successful response }); };
Здесь я использую тему, потому что вы можете подписаться на несколько номеров на той же теме, и он отправит уведомление всем подписанным номером. Позвольте создать тему и подписаться некоторые телефонные номера. Вы можете сделать либо программами или AWS HTTPS://docs.aws. Amazon.com/iot/LATEST/DEVELEPELSERGUIDE/IT-LABLABDA-RULE.HTML, как я использовал тему из моей стороны приложения, как это:
SNS.createTopic({Name: _topicName}, (err, data) => { if (err) { cb(err, null) } else { _topicArn = data.TopicArn; } });
Теперь подпишитесь некоторые числа, используя выше тема:
var _subScribeToTopic = function (cb) { //Subscribe to all given numbers var _phoneNumber = ['+91XXXXXXXXXXX','+91YYYYYYYYYYY','+91ZZZZZZZZZZZZ'] _phoneNumber.forEach(function (number, index) { var params = { Protocol: 'sms', /* required */ TopicArn: _topicArn, /* required */ Endpoint: number //Phone number to send sns }; SNS.subscribe(params, function (err, data) { if (err) { cb(err, null); // an error occurred } else { cb(null, data); // successful response } }); }); }
Лямбда правило Итак, мы подписали наши номера с темой. Ник, мы должны создать правило, чтобы вызвать функцию Lambda, чтобы отправить SMS на телефон. Для того, что Go Goto AWS IOT Console и навигация по закону и на странице правил выбирайте создание и введите имя и Описание для правила. 1. Перевесьте следующие настройки для правила:
2. Настройте один или несколько действий, выберите «Добавить действие». 3. Выберите страницу «Выбор действия», выберите «Выбрать функцию лямбда, передавающую данные сообщения, а затем выберите« Настройка действия ». 4. Из раскрывающегося списка имени функции выберите имя функции Lambda, затем выберите «Добавить действие». 5.CHOOSE Создать правило, чтобы создать функцию лямбда.
Теперь, когда ваша кнопка настроена и подключена к Wi-Fi, и вы настроили тему Amazon SNS, вы можете нажать кнопку, чтобы проверить ваше правило Lambda. Вы должны получить текстовое сообщение SMS на вашем телефоне, который содержит: серийный номер вашей кнопки. Тип кнопки нажимает (один или двойной). Напряжение аккумулятора.
Мы закончили 🙌. Вы можете найти файлы и код на GitHub.