代码之家  ›  专栏  ›  技术社区  ›  IgorAlves

物联网。createKeysAndCertificate未按照AWS的建议正常工作。如何修复它?

  •  0
  • IgorAlves  · 技术社区  · 4 年前

    我在NodeJs12(AWS lambda)中有以下代码,可以很好地与 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 })
    ...
    

    遵循 documentation 在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') .这意味着 很多。createKeysAndCertificate 没有被触发。

    我搞不懂怎么了。我使用的是AWS的相同建议。

    0 回复  |  直到 4 年前
    推荐文章