Node-RED:Библиотеки/node-red-contrib-aws: различия между версиями

Материал из Онлайн справочника
Перейти к навигацииПерейти к поиску
(Новая страница: «{{Node-RED/Панель перехода}} {{Перевод от Сubewriter}} {{Myagkij-редактор}} =Модуль «node-red-contrib-aws»<ref>[https://…»)
 
Нет описания правки
 
(не показаны 2 промежуточные версии 1 участника)
Строка 10: Строка 10:
Для установки модуля воспользуйтесь командой ниже:
Для установки модуля воспользуйтесь командой ниже:


<syntaxhighlight lang="bash" enclose="div">
<syntaxhighlight lang="bash">
npm install node-red-contrib-aws
npm install node-red-contrib-aws
</syntaxhighlight>
</syntaxhighlight>
Строка 32: Строка 32:
* Настройка AWS («невидимая» конфигурационная нода)
* Настройка AWS («невидимая» конфигурационная нода)


AWS SDK (особенно S3.Get) иногда возвращает «msg.payload» с буфером. Чтобы преобразовать его в строку, примените к этому буферу функцию ниже...
[[AWS SDK]] (особенно S3.Get) иногда возвращает '''«msg.payload»''' с буфером. Чтобы преобразовать его в строку, примените к этому буферу функцию ниже...


<syntaxhighlight lang="bash" enclose="div">
<syntaxhighlight lang="bash">
msg.payload=Buffer.from(msg.payload.Body).toString("utf-8")
msg.payload=Buffer.from(msg.payload.Body).toString("utf-8")
</syntaxhighlight>
</syntaxhighlight>
Строка 40: Строка 40:
...или любую другую похожую функцию.
...или любую другую похожую функцию.


Убедитесь, что у используемого вами IAM-пользователя AWS есть необходимые разрешения на использование этой функции. Если таких разрешений нет, выскочит ошибка.
Убедитесь, что у используемого вами [[IAM-пользователя AWS]] есть необходимые разрешения на использование этой функции. Если таких разрешений нет, выскочит ошибка.


Разработчики открыты любым замечаниям/предложениям, поэтому если у вас есть какая-то идея, подайте «ишью» (issue) [https://github.com/daniel-t/node-red-contrib-aws тут].
Разработчики открыты любым замечаниям/предложениям, поэтому если у вас есть какая-то идея, подайте ''«ишью»'' ('''issue''') [https://github.com/daniel-t/node-red-contrib-aws тут].


== Использование ==
== Использование ==


Почти все ноды этого модуля – это «обертки» JavaScript-API AWS, поэтому о доступных параметрах читайте в документации к API (т.е. [https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS.html тут]).  
Почти все ноды этого модуля – это ''«обертки»'' [[JavaScript-API AWS]], поэтому о доступных параметрах читайте в документации к [[API]] (т.е. [https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS.html тут]).  
Параметры нужно указывать для каждого API AWS по отдельности (как правило, они задаются в формате «ПерваяБукваДолжнаБытьЗаглавной»).
 
Параметры нужно указывать для каждого [[API AWS]] по отдельности (как правило, они задаются в формате '''«ПерваяБукваДолжнаБытьЗаглавной»''').


== Внимание ==
== Внимание ==


Все эти ноды прошли лишь поверхностное тестирование. Поэтому разработчики просят вас самостоятельно протестировать эти ноды и сообщить с помощью «ишью», если в их работе будут какие-либо ошибки.
Все эти ноды прошли лишь поверхностное тестирование. Поэтому разработчики просят вас самостоятельно протестировать эти ноды и сообщить с помощью ''«ишью»'', если в их работе будут какие-либо ошибки.


== Благодарность ==
== Благодарность ==


Модуль «node-red-contrib-aws» использует следующее open-source ПО:
Модуль '''«node-red-contrib-aws»''' использует следующее [[open-source]] [[ПО]]:
* [https://github.com/aws/aws-sdk-js AWS SDK for JavaScript]. Это официальный JavaScript-SDK AWS для браузеров и Node.js.
* [https://github.com/aws/aws-sdk-js AWS SDK for JavaScript]. Это официальный [[JavaScript-SDK AWS]] для браузеров и [[Node.js]].


== Лицензия ==
== Лицензия ==
Строка 65: Строка 66:


Если вы хотите добавить в эту библиотеку свою ноду, вот несколько правил:
Если вы хотите добавить в эту библиотеку свою ноду, вот несколько правил:
* Разработчики принимают только те ноды, которые были собраны с помощью скрипта «run_build.js» (без модификаций). Это нужно для того, чтобы у меня была возможность обновлять функционал библиотеки в соответствии с изменениями AWS API. Если вы по какой-то причине не можете этого сделать (как в случае с IoT-нодой), пришлите также список контекстных отличий от автоматически собранной ноды с объяснением того, почему это нужно. Кроме того, можно присылать предложения по изменению генерирующих скриптов, но они должны иметь максимально общий стандарт  
* Разработчики принимают только те ноды, которые были собраны с помощью скрипта '''«run_build.js»''' (без модификаций). Это нужно для того, чтобы у меня была возможность обновлять функционал библиотеки в соответствии с изменениями [[AWS API]]. Если вы по какой-то причине не можете этого сделать (как в случае с IoT-нодой), пришлите также список контекстных отличий от автоматически собранной ноды с объяснением того, почему это нужно. Кроме того, можно присылать предложения по изменению генерирующих скриптов, но они должны иметь максимально общий стандарт  
** Исключение – вспомогательные ноды вроде «AWS DynamoDB Converter»
** Исключение – вспомогательные ноды вроде '''«AWS DynamoDB Converter»'''
* В одном пулл-реквесте предлагайте изменения только для одной ноды. Если в итоге проблема будет только у одной ноды, у разработчиков будет уходить лишнее время на возню c тем, чтобы собрать их все вместе
* В одном пулл-реквесте предлагайте изменения только для одной ноды. Если в итоге проблема будет только у одной ноды, у разработчиков будет уходить лишнее время на возню c тем, чтобы собрать их все вместе
* Если вы предлагайте изменения для сборочных скриптов, то для новых/модифицированных нод предлагайте их в отдельном пулл-реквесте
* Если вы предлагайте изменения для сборочных скриптов, то для новых/модифицированных нод предлагайте их в отдельном пулл-реквесте
* Не предлагайте изменения для всего набора нод, только недавно обновленных в связи с новым выходом AWS API. Если вам нужна новая функция, предлагайте изменения для отдельных нод или создайте «ишью» (issue), а я уже сам адаптирую их все под AWS API
* Не предлагайте изменения для всего набора нод, только недавно обновленных в связи с новым выходом [[AWS API]]. Если вам нужна новая функция, предлагайте изменения для отдельных нод или создайте ''«ишью»'' ('''issue'''), а я уже сам адаптирую их все под [[AWS API]]


Как делать ноды:
Как делать ноды:
* Убедитесь, что у вас установлена работающая версия Node-RED и что вы можете создавать потоки при помощи имеющихся в редакторе нод
* Убедитесь, что у вас установлена работающая версия [[Node-RED]] и что вы можете создавать потоки при помощи имеющихся в редакторе нод
* Перейдите в директорию «gen_scripts»
* Перейдите в директорию '''«gen_scripts»'''
* Создайте директорию под названием «build»
* Создайте директорию под названием '''«build»'''
* Запустите «nodejs run_build.js» – это автоматически сгенерирует все ноды для всех сервисов AWS. Многие из них еще не были проверены и поэтому пока не входят в библиотеку
* Запустите '''«nodejs run_build.js»''' – это автоматически сгенерирует все ноды для всех сервисов [[AWS]]. Многие из них еще не были проверены и поэтому пока не входят в библиотеку
* Скопируйте файлы для нужного сервиса из «build» в родительскую директорию
* Скопируйте файлы для нужного сервиса из '''«build»''' в родительскую директорию
* Отредактируйте «package.json», чтобы в нем была ссылка на этот новый JS-файл
* Отредактируйте '''«package.json»''', чтобы в нем была ссылка на этот новый [[JS-файл]]
* Перезапустите Node-RED
* Перезапустите [[Node-RED]]
* Если нода работает, подайте пулл-реквест и расскажите разработчикам, насколько тщательно она была протестирована
* Если нода работает, подайте пулл-реквест и расскажите разработчикам, насколько тщательно она была протестирована


Строка 97: Строка 98:
<references />
<references />
{{Навигационная таблица/Node-RED библиотеки}}
{{Навигационная таблица/Node-RED библиотеки}}
{{Навигационная таблица/Телепорт}}
[[Категория:Модуль]]
[[Категория:Модуль]]
[[Категория:Модуль Node-RED]]
[[Категория:Модуль Node-RED]]
[[Категория:Node-RED модуль]]
[[Категория:Node-RED модуль]]
[[Категория:Модуль node-red-contrib-aws]]
[[Категория:Модуль node-red-contrib-aws]]

Текущая версия от 06:52, 24 мая 2023

Перевод: Максим Кузьмин
Проверка/Оформление/Редактирование: Мякишев Е.А.


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

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

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

Ноды

Резерв

См.также

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