【发布时间】:2018-06-05 17:15:23
【问题描述】:
我正在尝试连接到我的“东西”,即使用 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');
});
其中 XXXXXXXXXXX 显然是 AWS 提供的 Rest API Endpoint 来与我账户中的“事物”进行交互,如下图所示。
我的设备端点
现在我收到此错误:
events.js:183 投掷者; // 未处理的“错误”事件 ^
错误:getaddrinfo ENOTFOUND https://xxxxxxxxx.iot.us-west-2.amazonaws.com https://xxxxxxxxxx.iot.us-west-2.amazonaws.com:8883
知道是什么问题吗?感谢您的帮助。
【问题讨论】:
-
你的树莓派能查到其他地址吗?也就是说,如果你 ssh 进入它,你可以做类似
nslookup www.google.com的事情吗?
标签: node.js amazon-web-services raspberry-pi