售前咨询-朱:19381904226
售前咨询-杨:19381903226 English
前沿资讯 真实、准确的物联网、互联网行业新闻

在亚马逊网服务器上运行Node-RED

你的位置: 网站首页 新闻动态 技术应用
在亚马逊网服务器上运行Node-RED
2022-09-06 01:43:18 阅读: 发布人:纵横智控

本指南将引导您完成让 Node-RED 在 AWS 环境中运行的步骤。


有两种方法:


在 AWS Elastic Beanstalk 服务 (EB) 上运行

在具有高可用性的 Elastic Beanstalk 上运行

在 AWS EC2 上的 Ubuntu 映像下运行

在 AWS EBS 上运行

先决条件

确保您拥有启用了 Elastic Beanstalk、SQS 和 S3 的 AWS 账户


下载 EB 命令行并安装在本地计算机上 - 请参阅链接


创建 AWS 凭证并保存在本地文件(~/.aws/config 或 Usersusername.awsconfig)中,如下所示


[profile eb-cli]

aws_access_key_id = key id

aws_secret_access_key = access key

创建 EB 环境

创建一个新目录(例如demoapp)


cd 到那个目录


运行eb init以创建一个新的弹性 beanstalk 项目。选择首选区域并使用 node.js 作为平台。系统将询问您是否要使用 ssh。如果你这样做了,如果你想生成一个新的密钥对,请确保你的计算机上安装了 ssh。


在浏览器上登录 AWS 控制台,选择身份和访问管理 (IAM) 并将 AmazonS3FullAccess 策略添加到 aws-elasticbeanstalk-ec2-role。注意:这提供了从 EBS 到 S3 的完全访问权限,您可能希望调整此策略以满足您自己的安全需求


创建 Node-RED 环境

创建一个package.json包含以下内容的文件(将“demoapp”替换为您的应用名称)

{

    "name": "demoapp",

    "version": "1.0.0",

    "description": "node-red demo app",

    "main": "",

    "scripts": {

        "start": "./node_modules/.bin/node-red -s ./settings.js"

    },

    "engines": {

        "node": "10.x"

    },

    "dependencies": {

        "node-red": "1.1.x",

        "aws-sdk": "2.4.x",

        "node-red-contrib-storage-s3": "0.0.x",

        "when": "3.7.x"

    },

    "author": "",

    "license": "ISC"

}

将默认的Node-RED settings.js 文件复制到 demoapp 目录


编辑 settings.js 文件以将以下条目添加到 module.exports(将 awsRegion 设置为 eb init 中使用的内容,并将 demoapp 替换为您的应用名称):


     awsRegion: 'eu-west-1',

     awsS3Appname: 'demoapp',

     storageModule: require('node-red-contrib-storage-s3'),

在命令提示符下,确保您位于应用程序的顶级目录中并运行命令eb create;您可能希望指定一个更独特的应用程序名称。这将需要很长时间才能运行,但最终会成功返回。

配置 Node-RED 访问

现在可以直接从应用程序的 Web url 访问 Node-RED。然而,这是不安全的,并且不能很好地用于日志记录。相反,我们将在它使用的 ec2 实例上配置对 node-red 管理端口的直接访问。


在 AWS 控制台中,选择 EC2,然后选择安全组。您将看到一组安全组。选择一个具有您的环境名称和描述为“ElasticBeanstalk 环境的安全组”的选项。选择后,单击“操作”,然后单击“编辑入站设置”。出现一个带有规则的对话框。添加新规则。将类型设置为“所有流量”,将源设置为“我的 ip”。保存规则。


选择运行节点红色应用程序的 EC2 实例。复制它的IP地址


在浏览器中输入 IP 地址,端口为 8081。这将提供对 node-red 管理控制台的直接访问。


注意:公共 IP 地址还提供对 node-red 应用程序的访问,最好同时删除该访问,即端口 80 的 HTTP 规则。


您的 Node-RED 实例现在正在 EBS 上运行。您创建的任何流都将保存到 AWS S3,以便您可以拆除环境,并且在您重新部署时可以访问这些流。


在具有高可用性的 Elastic Beanstalk 上运行

此部署选项为您提供了多节点 Node-RED 设置,以及使用 Amazon Elastic File System (EFS) 的共享文件系统。因为它在负载均衡器后面运行多个节点,所以您将获得高可用性 - 如果一个节点死亡,Elastic Beanstalk 将自动替换它。

在亚马逊网服务器上运行Node-RED

要开始,请在此处克隆存储库https://github.com/guysqr/node-red-ha-on-aws并按照简单的说明进行操作。该基础设施是由 CloudFormation 模板为您创建的,因此您无需对 AWS 有太多了解即可对其进行设置。


此外,此部署选项使您能够在 https 下运行 Node-RED 并通过 Auth0 登录(或者您可以轻松切换到内置身份验证或任何与 Passport 兼容的 ID 提供程序)。


使用 Ubuntu 在 AWS EC2 上运行

创建基础 EC2 映像

登录AWS EC2 控制台


点击“启动实例”


在 Quick Start AMI 列表中,选择Ubuntu Server


选择实例类型 -t2.micro是一个很好的起点


在“配置安全组”选项卡上,为端口 1880 添加新的“自定义 TCP 规则”


在最后的“审核”步骤中,单击“启动”按钮


控制台将提示您配置一组 SSH 密钥。选择“创建新密钥对”,然后单击“下载密钥对”。您的浏览器将保存.pem文件 - 确保安全。最后,单击“启动”。


几分钟后,您的 EC2 实例将运行。在控制台中,您可以找到您的实例的 IP 地址。


设置节点-RED

下一个任务是登录实例,然后安装 node.js 和 Node-RED。


按照 AWS 指南连接到您的实例。


登录后,您需要安装 node.js 和 Node-RED


   curl -sL https://deb.nodesource.com/setup_12.x | sudo -E bash -

   sudo apt-get install -y nodejs build-essential

   sudo npm install -g --unsafe-perm node-red

此时,您可以通过运行来测试您的实例node-red。注意:您可能会收到有关串行节点的一些错误 - 这是意料之中的,可以忽略。


启动后,您可以在http://<your-instance-ip>:1880/.


要让 Node-RED 在您的实例重新启动时自动启动,您可以使用 pm2:


   sudo npm install -g --unsafe-perm pm2

   pm2 start `which node-red` -- -v

   pm2 save

   pm2 startup

注意:这个最后的命令会提示你运行另一个命令——确保你按照它说的去做。


下一步

本指南仅涉及您可以选择如何配置实例以在 EC2 中运行的表面。Node-RED 是“只是”一个暴露 HTTP 服务器的 node.js 应用程序 - 在这个原则上,有许多在线指南可以用来了解其他可能的方法。


关键词:LoRa网关

友情链接