【发布时间】:2019-01-03 23:22:29
【问题描述】:
我有许多需要在 AWS Lambda 函数中解密的加密环境变量。他们给出了一个示例代码,但我不想为我需要解密的每个值运行一大块:
const AWS = require('aws-sdk');
const encrypted = process.env['my_password'];
let decrypted;
function processEvent(event, context, callback) {
// TODO handle the event here
}
exports.handler = (event, context, callback) => {
if (decrypted) {
processEvent(event, context, callback);
} else {
// Decrypt code should run once and variables stored outside of the function
// handler so that these are decrypted once per container
const kms = new AWS.KMS();
kms.decrypt({ CiphertextBlob: new Buffer(encrypted, 'base64') }, (err, data) => {
if (err) {
console.log('Decrypt error:', err);
return callback(err);
}
decrypted = data.Plaintext.toString('ascii');
processEvent(event, context, callback);
});
}
};
我想知道 AWS 开发工具包是否包含一个可以让我一次解密多个值的函数。如果做不到这一点,有没有办法优雅地将这些调用链接在一起,这样它们就不会占用我原本简单的函数的大约 75 行?
【问题讨论】:
标签: node.js amazon-web-services