基于aws greengrass文件的安装工具

greengo的Python项目详细描述


AWS IoT Greengrass样板

Build StatusPython 2.7Python 3.6PyPI version

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

先决条件

设置它

从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#/)的核心软件 软件/绿草)。 是的,手工很烂…我稍后会自动处理或者,提交你的公关!

播放

  1. 在aws中创建greengrass组定义

    想象一下group.yaml中的组定义,然后运行greengo

    $ greengo create
    

    当运行没有错误时,它会在AWS上创建所有的greengrass组工艺品 把绿草芯的证书和config.json放在./certs 以及./config供流浪者在下一步的供应中使用

  2. 提供带有流浪者绿草芯的虚拟机

    $ vagrant up
    
  3. 将Greengrass组部署到VM的核心

    $ greengo deploy
    
  4. 检查一切正常-请参阅下面的"Check" section

  5. 利润!

  6. 处理它:创建、更改或删除lambda函数、订阅、资源,然后更新greengrass。

    $ greengo update
    

通过再次部署应用更改:

```
$ greengo deploy
```
  1. 打完球后清理干净

    删除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 the deployments/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.

详细信息

检查展开

如何确保每件事都有效按此操作:

  1. 在aws iot中创建greengrass组:greengo create
  2. 在vm上准备ggc:更新证书,重置group.json,重新启动greengrassd
  3. 使用greengo deploy部署检查:
    • 检查部署状态,应为“成功”
  4. 探索你的流浪者虚拟机绿草核心。
    • 登录到Vagrant虚拟机。你应该去看看流浪汉,除非是非流浪汉:vagrant ssh
    • 检查/greengrass/ggc/var/log/system下的GGC日志runtime.logpython_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。 根据部署的不同,您可能有几个进程
  5. 在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文件:它包含对需要删除的所有内容的引用。将其复制到某个位置,并使用创建的资源的IdArn来清理收拾残局
  • 如果你已经接近成功的部署,或者说是成功的部署,那就做些向前推进所需要做的事情来清理并从头开始。

请向前支付:公关一个补丁,为你打破了,以防止它再次发生。

开发

克隆项目,设置环境,安装依赖项,并在开发模式下设置greengocli:

$ 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

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java如何从IBM MQ的JMSException检测可恢复错误   java Lucene6。4.2:找不到类,尝试添加查询。   Java Pdf差异库   在Java中多线程处理我的线程   java将字符串传递给Uri。下载中的parse()   java在列表中查找原语位置   java JPA条件从另一个查询中选择   java中的强制转换和转换   java如何在没有上下文的情况下获取SOAP Web服务(Apache Axis 1.4)的调用客户端的IP地址   java Android IllegalBlockSizeException:解密中最后一个块未完成   java Jersey是否要自定义无效资源路径的错误处理?   如何将JavaCVS web项目转换为基于maven的web项目?   java如何检查通用列表是否与jUnit相等?   arraylist java。util。尝试使用迭代器时发生ConcurrentModificationException错误   使用springsecurity,jsp上的java${u csrf.token}始终为空   sql使用java从临时表中选择数据   spring验证中的java@Notnull和@Pattern无效   java如何使用jQuery将包含对象数组的对象数组传递给Spring MVC控制器?