Iot.createKeysAndCertificate не работает должным образом, как предложено AWS. Как это исправить? - PullRequest
1 голос
/ 21 февраля 2020

У меня есть следующий код в 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.

...