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 ПО:

Лицензия

О лицензии читайте тут (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
  • Если нода работает, подайте пулл-реквест и расскажите разработчикам, насколько тщательно она была протестирована

Пожертвования

Если вам нравится эта библиотека и вы бы хотели финансово поддержать ее разработку, то это можно сделать здесь:

Ноды

Резерв

См.также

Внешние ссылки