Node-RED:Библиотеки/node-red-contrib-aws
Модуль «node-red-contrib-aws»[1]
Набор нод Node-RED для AWS. Есть ноды для DynamoDB, EC2, IoT, Kinesis, Lambda, SNS, SQS и S3.
Для установки модуля воспользуйтесь командой ниже:
npm install node-red-contrib-aws
Ноды
Ноды модуля (доступны все функции AWS API):
- Lamba
- EC2
- Kinesis
- S3
- SNS
- DynamoDB
- SQS (alpha release)
- IoT
- IotData
- RDS
- Firehose
- KMS
- Настройка AWS («невидимая» конфигурационная нода)
AWS SDK (особенно S3.Get) иногда возвращает «msg.payload» с буфером. Чтобы преобразовать его в строку, примените к этому буферу функцию ниже...
msg.payload=Buffer.from(msg.payload.Body).toString("utf-8")
...или любую другую похожую функцию.
Убедитесь, что у используемого вами IAM-пользователя AWS есть необходимые разрешения на использование этой функции. Если таких разрешений нет, выскочит ошибка.
Разработчики открыты любым замечаниям/предложениям, поэтому если у вас есть какая-то идея, подайте «ишью» (issue) тут.
Использование
Почти все ноды этого модуля – это «обертки» JavaScript-API AWS, поэтому о доступных параметрах читайте в документации к API (т.е. тут).
Параметры нужно указывать для каждого API AWS по отдельности (как правило, они задаются в формате «ПерваяБукваДолжнаБытьЗаглавной»).
Внимание
Все эти ноды прошли лишь поверхностное тестирование. Поэтому разработчики просят вас самостоятельно протестировать эти ноды и сообщить с помощью «ишью», если в их работе будут какие-либо ошибки.
Благодарность
Модуль «node-red-contrib-aws» использует следующее open-source ПО:
- AWS SDK for JavaScript. Это официальный JavaScript-SDK AWS для браузеров и Node.js.
Лицензия
О лицензии читайте тут (Apache License 2.0).
Как внести свой вклад
Если вы хотите добавить в эту библиотеку свою ноду, вот несколько правил:
- Разработчики принимают только те ноды, которые были собраны с помощью скрипта «run_build.js» (без модификаций). Это нужно для того, чтобы у меня была возможность обновлять функционал библиотеки в соответствии с изменениями AWS API. Если вы по какой-то причине не можете этого сделать (как в случае с IoT-нодой), пришлите также список контекстных отличий от автоматически собранной ноды с объяснением того, почему это нужно. Кроме того, можно присылать предложения по изменению генерирующих скриптов, но они должны иметь максимально общий стандарт
- Исключение – вспомогательные ноды вроде «AWS DynamoDB Converter»
- В одном пулл-реквесте предлагайте изменения только для одной ноды. Если в итоге проблема будет только у одной ноды, у разработчиков будет уходить лишнее время на возню c тем, чтобы собрать их все вместе
- Если вы предлагайте изменения для сборочных скриптов, то для новых/модифицированных нод предлагайте их в отдельном пулл-реквесте
- Не предлагайте изменения для всего набора нод, только недавно обновленных в связи с новым выходом AWS API. Если вам нужна новая функция, предлагайте изменения для отдельных нод или создайте «ишью» (issue), а я уже сам адаптирую их все под AWS API
Как делать ноды:
- Убедитесь, что у вас установлена работающая версия Node-RED и что вы можете создавать потоки при помощи имеющихся в редакторе нод
- Перейдите в директорию «gen_scripts»
- Создайте директорию под названием «build»
- Запустите «nodejs run_build.js» – это автоматически сгенерирует все ноды для всех сервисов AWS. Многие из них еще не были проверены и поэтому пока не входят в библиотеку
- Скопируйте файлы для нужного сервиса из «build» в родительскую директорию
- Отредактируйте «package.json», чтобы в нем была ссылка на этот новый JS-файл
- Перезапустите Node-RED
- Если нода работает, подайте пулл-реквест и расскажите разработчикам, насколько тщательно она была протестирована
Пожертвования
Если вам нравится эта библиотека и вы бы хотели финансово поддержать ее разработку, то это можно сделать здесь:
- Paypal
- Биткоин-кошелек (124fjAWzBYxhW4CtEj8g9uZqc15z97Fu9A)