【问题标题】:AWS IOT node sdk gives ResourceNotFoundException for listThings and createThingAWS IOT 节点 sdk 为 listThings 和 createThing 提供 ResourceNotFoundException
【发布时间】:2017-08-25 03:36:40
【问题描述】:

我正在尝试获取已注册事物的详细信息并创建新事物。我得到了他们两个的 ResourceNotFoundException。

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

var iot = new AWS.Iot({
    endpoint: "https://XXXXXXXXXX.iot.us-east-1.amazonaws.com",
    region: "us-east-1",
    accessKeyId: "XXXXXXXXXX",
    secretAccessKey: "XXXXXXXXXX"
});

var params = {
    thingName: 'D02',
    attributePayload: {
        attributes: {
            'Org': 'Org2'
        },
        merge: false
    },
    thingTypeName: 'thing1'
};
iot.createThing(params, function(err, data) {
    if (err) console.log(err, err.stack); // an error occurred
    else     console.log(data);           // successful response
});

 iot.listThings({}, function(err, data) {
     if (err) console.log(err, err.stack); // an error occurred
     else     console.log(data);           // successful response
 });

至于凭证,我在 IAM 中创建了一个新用户。将 Programmatic access 设置为 Access Type 并附加 AWSIoTFullAccess 权限。

这里有什么问题吗?这可能是什么原因?

【问题讨论】:

    标签: node.js amazon-web-services aws-sdk aws-iot


    【解决方案1】:

    解决了。

    它给出 404 或引发 ResourceNotFoundException 因为端点不正确。物联网构造函数必须是这样的。端点应该只是iot.us-east-1.amazonaws.com

    var iot = new AWS.Iot({
        endpoint: "iot.us-east-1.amazonaws.com",
        region: "us-east-1",
        accessKeyId: "XXXXXXXXXX",
        secretAccessKey: "XXXXXXXXXX"
    });
    

    【讨论】:

    • 同样的问题困扰了我2个小时!您在哪里发现端点应该是 WITHOUT 前缀?在所有 AWS 文档中,它都说端点是使用前缀 :/ 创建的
    • @errata 你好。抱歉耽搁了。是的,当文档本身具有误导性时,很难进行故障排除。从这里找到端点。 docs.aws.amazon.com/general/latest/gr/rande.html#iot_region
    • 感谢您的链接!
    猜你喜欢
    • 2020-07-24
    • 2017-03-10
    • 2019-01-20
    • 2019-03-30
    • 2018-05-04
    • 2018-09-26
    • 2015-07-20
    • 1970-01-01
    • 2023-03-12
    相关资源
    最近更新 更多