0

AWS Greengrass 文档中,它说您可以像这样测试组件

sudo /greengrass/v2/bin/greengrass-cli deployment create \
  --recipeDir ~/greengrassv2/recipes \
  --artifactDir ~/greengrassv2/artifacts \
  --merge "com.example.HelloWorld=1.0.0"

但是如果我想从另一个脚本运行一个组件。我应该使用相同的命令吗?例如,我有一个将一些数据发布到 MQTT 的组件,现在我正在使用 system.os,如下所示:

os.system("sudo /greengrass/v2/bin/greengrass-cli deployment create \
  --recipeDir ~/greengrassv2/recipes \
  --artifactDir ~/greengrassv2/artifacts \
  --merge "com.example.HelloWorld=1.0.0"")

但我不确定这是否是正确的解决方案。这似乎不是一个好的解决方案。

4

1 回答 1

0

我不建议使用greengrass-cli deployment create命令来运行组件

  1. 仅用于本地开发
  2. 该命令在运行组件之前运行组件配方文件中定义的所有生命周期步骤,这可能是一个很大的开销。

如果“另一个脚本”也是 Greengrass 组件,您可以使用 AWS IoT 设备开发工具包进行进程间通信 (IPC)

如果“另一个脚本”不是 Greengrass 组件,您可以使用restart命令触发该组件的运行。它的开销比create命令少。
sudo /greengrass/v2/bin/greengrass-cli component restart --names "HelloWorld"

于 2021-08-03T02:15:30.583 回答