Node.js AWS IoT与JavaScript SDK和Raspberry Pi连接错误

Node.js AWS IoT与JavaScript SDK和Raspberry Pi连接错误,node.js,amazon-web-services,raspberry-pi,Node.js,Amazon Web Services,Raspberry Pi,我正在尝试连接到我的“东西”,即使用node.js在我的AWS帐户中注册的Raspberry Pi。所有凭证文件都存储并位于正确的路径(certs文件夹)中。node.js的aws.iot SDK安装在Raspberry Pi的~/deviceSDK'目录下。这是代码 var awsIot = require('aws-iot-device-sdk'); var device = awsIot.device({ keyPath: '/home/pi/deviceSDK/certs/pr

我正在尝试连接到我的“东西”,即使用node.js在我的AWS帐户中注册的Raspberry Pi。所有凭证文件都存储并位于正确的路径(certs文件夹)中。node.js的aws.iot SDK安装在Raspberry Pi的
~/deviceSDK'
目录下。这是代码

var awsIot = require('aws-iot-device-sdk');

var device = awsIot.device({
    keyPath: '/home/pi/deviceSDK/certs/private.pem.key',
    certPath: '/home/pi/deviceSDK/certs/certificate.pem.crt',
    caPath: '/home/pi/deviceSDK/certs/caCert.crt',
    clientId: 'Raspberry',
    region: 'us-west-2'
  });

device.on('connect', function() {
           console.log('connected');
});
运行代码时,我收到以下错误:

错误:提供的连接选项无效

我用谷歌搜索了这个问题,发现应该在连接选项下添加主机。因此,代码更新如下:

var awsIot = require('aws-iot-device-sdk');

    var device = awsIot.device({
        keyPath: '/home/pi/deviceSDK/certs/private.pem.key',
        certPath: '/home/pi/deviceSDK/certs/certificate.pem.crt',
        caPath: '/home/pi/deviceSDK/certs/caCert.crt',
        clientId: 'Raspberry',
        region: 'us-west-2',
        host:   'https://XXXXXXXXXX.iot.us-west-2.amazonaws.com'
    });


    device.on('connect', function() {
           console.log('connected');
    });
其中XXXXXXXXXX显然是由AWS提供的RESTAPI端点,用于与我帐户中的“thing”交互,如下图所示

我的设备端点

现在我得到了这个错误:

events.js:183 投掷者;//未处理的“错误”事件 ^

错误:getaddrinfo ENOTFOUND


你知道有什么问题吗?感谢您的帮助。

通过从主机上删除https解决了问题。谢谢。

如果您缺少连接到物联网设备所需的对象的任何键值对,AWS通常会抛出此错误。因此,如果缺少任何必需的字段,则会出现此错误

{
  keyPath: '',
  certPath: '',
  caPath: '',
  host: '',
  clientId: '',
  region: '',
}

确保您已正确提供了所有参数

Raspberry Pi是否可以查找其他地址?i、 例如,如果你用ssh连接到它,你能做一些类似于
nslookup www.google.com
的事情吗?