AWS Greengrass соединяет контейнер докеров с брокером MQTT

Работая над пограничным случаем с AWS greengrass, мы планируем запустить на устройстве несколько контейнеров докеров, которые будут взаимодействовать друг с другом с помощью MQTT.

Пока нам удалось установить и подключить greengrass, развернуть контейнер и использовать межпроцессное взаимодействие с компонентом greengrass aws.greengrass.clientdevices.mqtt.Moquette.

      ipc_client = awsiot.greengrasscoreipc.connect()

Которая использует соединение сокета.

Как я могу подключить свои приложения к локальному брокеру MQTT с помощью хоста, порта и аутентификации?

что-то вроде этого

      myAWSIoTMQTTClient = AWSIoTPyMQTT.AWSIoTMQTTClient(CLIENT_ID)
myAWSIoTMQTTClient.configureEndpoint(ENDPOINT, PORT)
if PATH_TO_ROOT and PATH_TO_KEY and PATH_TO_CERT:
  myAWSIoTMQTTClient.configureCredentials(PATH_TO_ROOT, PATH_TO_KEY, PATH_TO_CERT)
myAWSIoTMQTTClient.connect()

Пока могу установить соединение только с помощью IPC. Специально для разработки был бы полезен альтернативный режим подключения. Кроме того, мы также хотели бы подключить внешние устройства к брокеру MQTT.

Спасибо за поддержку!

1 ответ

Брокер moquette применяет тот же взаимный TLS для клиентов, что и AWS IoT. Все клиенты MQTT, которые подключаются, должны быть зарегистрированы как объекты в ядре IoT, иметь сертификат X.509 и быть связаны с ядром Greengrass для обнаружения (необходимо для подключения других устройств). Как только это будет сделано и настроен компонент аутентификации клиентского устройства, вы можете использовать механизм обнаружения Greengrass для получения конечной точки moquette и подписывающего ЦС, используемого для сертификата сервера moquette (содержимое будет использоваться для PATH_TO_ROOT). Ознакомьтесь с примером основнымобнаружения, чтобы узнать, как это работает.

Я бы придерживался метода IPC даже во время разработки. Что-то не хватает при использовании IPC, что затрудняет разработку?

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