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, что затрудняет разработку?