Node.js AWS IoT与JavaScript SDK和Raspberry Pi连接错误
我正在尝试连接到我的“东西”,即使用node.js在我的AWS帐户中注册的Raspberry Pi。所有凭证文件都存储并位于正确的路径(certs文件夹)中。node.js的aws.iot 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
~/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
的事情吗?