【发布时间】:2022-08-16 20:34:49
【问题描述】:
我正在尝试使用 AWS 控制台中的示例代码从 AWS 机密管理器获取我的机密。但在函数结束时,它返回未定义的值。另一方面,当我在 getSecretValue 中记录秘密时,它会返回正确的值
const env = require(\"../SharedExternalDependencies/node_modules/dotenv\");
process.env.AWS_SDK_LOAD_CONFIG = \"true\";
var AWS = require(\"../SharedExternalDependencies/node_modules/aws-sdk\"),
region = \"eu-west-1\",
secretName = \"********\",
secret,
decodedBinarySecret;
exports.getCredentials = (event, context, callback) => {
// Create a Secrets Manager client
var client = new AWS.SecretsManager({
region: region,
});
client.getSecretValue({ SecretId: secretName }, function (err, data) {
if (err) {
throw err;
} else {
if (\"SecretString\" in data) {
secret = data.SecretString;
secret = JSON.parse(secret);
console.log(secret) // return the correct value
} else {
let buff = new Buffer(data.SecretBinary, \"base64\");
decodedBinarySecret = buff.toString(\"ascii\");
}
}
});
console.log(secret) // return undefined
};
标签: javascript node.js amazon-web-services aws-secrets-manager