AWS javascript sdk предоставление ресурсов флота не найдено исключения

#amazon-web-services #aws-lambda #aws-iot

#amazon-веб-сервисы #aws-лямбда #aws-iot

Вопрос:

Я пытаюсь реализовать подготовку автопарка в функции AWS Lambda. В качестве отправной точки у меня есть этот код:

 'use strict';
var AWS = require('aws-sdk');
var iot = new AWS.Iot({ 
    endpoint: 'apiendpoint',
    accessKeyId: "AAAABBBBBCCCCDDDDD",
    secretAccessKey: "AAAAABBBBCCCDD/1234122311222",
    region: 'ap-south-1'
});


exports.handler = async (event, context) => {
    var params = {
        setAsActive: true
    };
    return {
        statusCode: 200,
        body:JSON.stringify(await createCertAndKey(params))
    }       
    
}

const createCertAndKey = async (params) => {
    return new Promise((resolve, reject) => {
        iot.createKeysAndCertificate(params, function(err, data){
            if(err){
                console.log(err);
                reject(err)
            }
            else{
                console.log("success?");
                resolve(data)
            }
        })
    })
}
 

Я получаю ResourceNotFound исключение для вызова createKeysAndCertificate . Я также попытался вызвать другие функции интернета вещей, но это дает то же самое исключение.

Что я здесь делаю не так?

Комментарии:

1. нам не нужно проходить endpoint мимо, попробуйте снять его.

2. Да, это сработало, когда я удалил конечную точку. Спасибо @BaluVyamajala

Ответ №1:

конечная точка, передаваемая при инициализации объекта, должна иметь формат общего сервиса AWS https://{service}.{region}.amazonaws.com . нам не нужно передавать его, AWS будет предполагать, основываясь на регионе и объекте, который мы инициализируем.

 var iot = new AWS.Iot({ 
    endpoint: 'iot.ap-south-1.amazonaws.com',
    accessKeyId: "AAAABBBBBCCCCDDDDD",
    secretAccessKey: "AAAAABBBBCCCDD/1234122311222",
    region: 'ap-south-1'
});