AWS IoT получает сообщение

Здравствуйте, я пытаюсь получить сообщение от AWS IoT. Для публикации я использую php-sdk

use Aws\IotDataPlane\IotDataPlaneClient

$connectionParams = [
'version' => 'latest',
'region'  => $region,
'credentials' => [
'key' => $key,
'secret' => $secret,
]
];

$this->client = new IotDataPlaneClient($connectionParams);
$this->client->publish([
"payload" => $message,
'qos' => 1,
'topic' => $topic,
]);

Но у меня нет никакого способа получить. Кто-нибудь знает, как подключаться и получать сообщения?

0

Решение

Вам необходимо подписаться на тему MQTT. У вас есть несколько вариантов.

  1. Вы можете связать брокера с Lambda, с Kinesis, SNS и т. Д. Таким образом, ваш обработчик получения может существовать в Lambda.
  2. Вы можете написать код, чтобы подписаться на брокера MQTT самостоятельно и поместить его в EC2, ECS и т. Д. С соответствующими ролями / политиками IAM. Конечная точка IoT фактически является брокером MQTT, так что это единственная конфигурация, которая вам понадобится для получения сообщений. Конечная точка отображается в AWS IoT> Настройки> Пользовательская конечная точка

Лямбда для получения сообщений будет выглядеть примерно так, где событие является входящим MQTT-сообщением.

const AWS = require('aws-sdk');

exports.handler = (event, context, callback) => {
const id = event.id;
const chan0 = event.chan0;
}
0

Другие решения

Других решений пока нет …