Node-RED:Библиотеки/node-red-contrib-aws: различия между версиями
Myagkij (обсуждение | вклад) (Новая страница: «{{Node-RED/Панель перехода}} {{Перевод от Сubewriter}} {{Myagkij-редактор}} =Модуль «node-red-contrib-aws»<ref>[https://…») |
Нет описания правки |
||
(не показаны 2 промежуточные версии 1 участника) | |||
Строка 10: | Строка 10: | ||
Для установки модуля воспользуйтесь командой ниже: | Для установки модуля воспользуйтесь командой ниже: | ||
<syntaxhighlight lang="bash | <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 | <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 ПО:
- 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)
Ноды
Резерв
См.также
Внешние ссылки