首先,我想说这个问题似乎被问了很多次,但是在问题的答案中没有一个能解决我所遇到的问题。
我正在使用NodeJS编写lambda函数。它的所有内容都很好,除了尝试解密加密的环境变量。
为了让它正常工作,我已经将Lambda的其他部分注释掉了,但仍然没有结果。这是我现在正在使用的代码:
const aws = require('aws-sdk')
exports.handler = async (event, context, callback) => {
const kms = new aws.KMS()
let params = {
//CiphertextBlob: Buffer.from(process.env.SECRET_KEY, 'base64')
CiphertextBlob: process.env.SECRET_KEY
}
console.log('before decrypt')
console.log('SECRET_KEY', process.env.SECRET_KEY)
kms.decrypt(params, function (err, data) {
console.log('decrypt')
if (err) console.log(err, err.stack) // an error occurred
else console.log(data) // successful response
})
console.log('after decrypt')
}
Lambda运行成功,没有遇到错误。这是代码的输出结果:
START RequestId: c3a83ca7-0f7a-11e9-84f1-a5f7503df368 Version: $LATEST
2019-01-03T17:12:36.726Z c3a83ca7-0f7a-11e9-84f1-a5f7503df368 before decrypt
2019-01-03T17:12:36.763Z c3a83ca7-0f7a-11e9-84f1-a5f7503df368 SECRET_KEY Encoded key string that I'm not putting in here
2019-01-03T17:12:36.765Z c3a83ca7-0f7a-11e9-84f1-a5f7503df368 after decrypt
END RequestId: c3a83ca7-0f7a-11e9-84f1-a5f7503df368
REPORT RequestId: c3a83ca7-0f7a-11e9-84f1-a5f7503df368 Duration: 699.51 ms Billed Duration: 700 ms Memory Size: 128 MB Max Memory Used: 40 MB
正如你所看到的,解密回调函数中的所有控制台日志都没有显示出来,我不知道为什么。
使用密钥缓冲区版本(第6行)而不是明文版本的密钥(第7行)对输出没有任何影响。
请有人帮助我找出我错过了什么?
kms.decrypt(params, function (err, data) { console.log('decrypt') if (err) { console.log(err, err.stack) callback.done('error', error) } else { console.log(data) callback.success() } })
- Lisa