Как запускать компоненты в AWS Greengrass?

В документации 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"")

Но я не уверен, что это правильное решение. Это не кажется хорошим решением.

1 ответ

Я бы не рекомендовал использовать greengrass-cli deployment create команда для запуска компонента

  1. Только для местного развития
  2. Команда проходит через все этапы жизненного цикла, определенные в файле рецептов компонента, перед запуском компонента, это может привести к большим накладным расходам.

Если «другой сценарий» также является компонентом Greengrass, вы можете использовать SDK для устройств AWS IoT для межпроцессного взаимодействия (IPC).

Если «другой сценарий» не является компонентом Greengrass, вы можете использовать restartкоманда для запуска запуска компонента. Это меньше накладных расходов, чем create команда.
sudo /greengrass/v2/bin/greengrass-cli component restart --names "HelloWorld"

Другие вопросы по тегам