Как опубликовать / подписаться на событие в IOT через конечную точку VPC (AWS)

Я попытался опубликовать событие из лямбда-функции в IOT, среда выполнения которого находится в частных подсетях VPC, но не работает.

  • У меня есть устройство IOT, политика которого настроена на разрешение всех подключений.
  • Создал VPC с двумя частными подсетями и настроил функцию Lambda для работы внутри них.
  • Лямбда-функция имеет необходимые разрешения для доступа к IOT, а также группа безопасности настроена так, чтобы разрешать весь исходящий трафик на любой порт и любой тип протокола (0.0.0.0/0)
  • Создана конечная точка VPC (com.amazonaws.eu-central-1.iot.data)(выбраны обе приватные подсети) и назначена группа безопасности, в которой есть правило, разрешающее любой трафик из группы безопасности функции Lambda.

Пытался опубликовать событие с использованием общедоступной конечной точки без добавления шлюза NAT, но оно не работает (ошибка тайм-аута). Примечание. - Работает нормально, если я добавляю шлюз NAT.

пожалуйста, найдите следующий образец кода, который пытался подключиться к IOT для справки.

      const region = 'eu-central-1';
const endpoint = 'xxxx'; //public endpoint;
const clientId = 'test' //random string;

const {IotData} = require('aws-sdk')
const params = {
        topic: 'test_topic', /* required, subscribed to this topic */
        payload: 'STRING_VALUE' /* Strings will be Base-64 encoded on your behalf */,
        qos: 1
    };
const iotdata = new IotData({endpoint, region});
iotdata.publish(params, (res, err) => {
    console.log('res', res)
    console.log('err', err)
});

1 ответ

Решение

Конечные точки VPC Core IoT не поддерживают частное DNS-имя, поэтому необходимо вручную создать частную размещенную зону в Route53, чтобы использовать конечную точку по умолчанию AWS IoT по умолчанию или собственный домен IoT.

  1. Создайте частную размещенную зону Route53 в том же VPC. Доменное имя частной размещенной зоны должно соответствовать конечной точке Интернета вещей по умолчанию или, если вы используете настраиваемую конечную точку Интернета вещей, имени вашего личного домена.

xxxxxxxxxx-ats.iot.us-east-1.amazonaws.com

Вышеупомянутая конечная точка IoT Data-ATS должна использоваться в качестве доменного имени для частной размещенной зоны.

  1. После создания частной размещенной зоны перейдите, чтобы увидеть ее записи, а затем нажмите «Создать запись». Настройте следующим образом:
  • Псевдоним: включите его, используя скользящую кнопку справа.

  • Название записи: (пусто)

  • Тип записи: A - направляет трафик на IPV4 (...)

  • Направьте трафик к: «Псевдоним к конечной точке VPC», а затем выберите регион (us-east-1) и конечную точку VPC (vpce-xxxx.data.iot.us-east-1.vpce.amazonaws.com).

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