У меня есть следующий код в NodeJs12 (AWS лямбда), который хорошо работает с функцией iot.createKeysAndCertificate
:
const createCertificates = (params) =>
new Promise((resolve, reject) =>
iot.createKeysAndCertificate(params, (err, res) => resolve(res)))
...
module.exports.createThing = async (event, context, callback) => {
...
const { certificateArn, certificateId, certificatePem, keyPair } = await createCertificates({ setAsActive: true })
...
Следуя документации в AWS, которую они предлагают использовать следующий подход:
var params = {
setAsActive: true || false
};
iot.createKeysAndCertificate(params, function(err, data) {
if (err) console.log(err, err.stack); // an error occurred
else console.log(data); // successful response
});
И это то, что я сделал в своем коде:
async function test (params) {
console.log('Inside createKeysAndCertificate')
const res = iot.createKeysAndCertificate(params, function (err, data) {
console.log('inside iot.createKeysAndCertificate')
if (err) {
console.log('err, err.stack')
console.log(err, err.stack)
}
else {
console.log('data')
console.log(data)
}
})
console.log('res')
console.log(res)
return res
}
...
const { certificateArn, certificateId, certificatePem, keyPair } = await test({ setAsActive: true })
...
Предыдущий код не работает. В сеансе отладки я не вижу сообщение console.log('inside iot.createKeysAndCertificate')
. Это означает, что функция iot.createKeysAndCertificate
не запускается.
Я не могу понять, что не так. Я использую то же предложение от AWS.