基于aws greengrass文件的安装工具
greengo的Python项目详细描述
AWS IoT Greengrass样板
Greengo:要启动(和清理)的启动项目AWS Greengrass设置用于游戏和盈利。如果您遵循GreenGrass Getting Started Guide,这里您会发现它是自动的,作为代码
Work In Progress !
在group.yaml
中描述您的greengrass组,编写lambda函数和设备客户端,在vagrant vm中提供greengrass核心,部署和清理。
灵感来自aws-iot-elf (Extremely Low Friction)和aws-greengrass-group-setup。
先决条件
- 一台带有linux/macos、python、git(dah!)
- Vagrant与VirtualBox
- aws命令installed和configured。考虑使用named profiles
设置它
从pypi安装greengo
:
$ pip install greengo
手动[*]下载GreenGrassCore二进制文件并将其放在./downloads
目录中。
登录到AWS管理控制台,导航到AWS物联网控制台,
下载AWS Greengrass
来自[软件部分](https://us-west-2.console.aws.amazon.com/iotv2/home?region=us-west-2#/)的核心软件
软件/绿草)。
是的,手工很烂…我稍后会自动处理或者,提交你的公关!
播放
在aws中创建greengrass组定义
想象一下
group.yaml
中的组定义,然后运行greengo
:$ greengo create
当运行没有错误时,它会在AWS上创建所有的greengrass组工艺品 把绿草芯的证书和
config.json
放在./certs
以及./config
供流浪者在下一步的供应中使用提供带有流浪者绿草芯的虚拟机
$ vagrant up
将Greengrass组部署到VM的核心
$ greengo deploy
检查一切正常-请参阅下面的"Check" section
利润!
处理它:创建、更改或删除lambda函数、订阅、资源,然后更新greengrass。
$ greengo update
通过再次部署应用更改:
```
$ greengo deploy
```
打完球后清理干净
删除AWS上的组定义:
$ greengo remove
抛弃流浪汉vm:
$ vagrant destroy
NOTE: If you want to create a new group but keep the Greengrass Core in the same Vagrant VM, you must update it with newly generated certificates and
config.json
file before deploying the group, and also reset deployment by getting thedeployments/group/group.json
back to virgin.To do it: login to the Greengrass Vagrant VM and run
/vagrant/scripts/update_ggc.sh
on the Vagrant VM.
详细信息
检查展开
如何确保每件事都有效按此操作:
- 在aws iot中创建greengrass组:
greengo create
。 - 在vm上准备ggc:更新证书,重置
group.json
,重新启动greengrassd
。 - 使用
greengo deploy
部署检查:- 检查部署状态,应为“成功”
- 探索你的流浪者虚拟机绿草核心。
- 登录到Vagrant虚拟机。你应该去看看流浪汉,除非是非流浪汉:
vagrant ssh
。 - 检查
/greengrass/ggc/var/log/system
下的GGC日志runtime.log
和python_runtime.log
运行时日志应该有一行关于启动lambda的内容,或者有一个函数未启动的错误。在许多情况下(比如Lambda内存不足),部署是“成功”的,但函数无法启动这些错误只能在runtime.log
中看到。 如果函数成功启动,runtime.log
将包含如下消息
[2018-03-31T08:48:40.57Z][INFO]-Starting worker arn:aws:lambda:us-west-2:0000000000:function:GreengrassHelloWorld:12
- 在
/greengrass/ggc/var/log/system
下查找并检查您自己的lambda日志。 - 检查greengrasd进程:
ps aux | grep greengrassd
。 根据部署的不同,您可能有几个进程
- 登录到Vagrant虚拟机。你应该去看看流浪汉,除非是非流浪汉:
- 在AWS控制台中,使用IoT MQTT测试页检查MQTT主题:
订阅主题(例如REGION=`aws configure get region`; open https://$REGION.console.aws.amazon.com/iot/home?region=$REGION#/test
hello/world
),查看Greengrass Lambda函数发送的消息
当出现问题时
此时greengo
只是一个原型,一个正在进行的工作。因此,如果的话,它不是,而是,当的一些东西抛出时,设置将处于半部署状态,
你得收拾残局。记住:
- 手动操作也不会更糟:您至少拥有所有的
ARN
以及所有要清理的资源。 - 不要删除
.gg/gg_state.json
文件:它包含对需要删除的所有内容的引用。将其复制到某个位置,并使用创建的资源的Id
和Arn
来清理收拾残局 - 如果你已经接近成功的部署,或者说是成功的部署,那就做些向前推进所需要做的事情来清理并从头开始。
请向前支付:公关一个补丁,为你打破了,以防止它再次发生。
开发
克隆项目,设置环境,安装依赖项,并在开发模式下设置greengo
cli:
$ git clone https://github.com/dzimine/greengo.git
$ cd greengo
$ virtualenv venv
$ . venv/bin/activate
$ pip install -r requirements.txt
$ pip install -e .
运行单元测试:
pytest -s