获取 AWS lambda 中的秘密 node.js
Get secrets in AWS lambda node.js
任何人都可以提供一个简单、完整的 node.js lambda 函数,我可以从 secrets manager 中获取 secret 并使用它吗?我正在努力处理 async/await 过程。我已经尝试了其他帖子的一些建议,但最后,所有这些建议都无法真正在 main 函数中使用 secret。
例如,我有一个主函数并调用第二个函数来检索秘密:
xxx = retrieve_secret('mysecret');
然后,在 retrieve_secret 函数中我能够检索到秘密,我可以使用 console.log 打印它,但是当我尝试在主函数中使用它时,它显示 "Promise ".
请帮忙。
提前致谢!
查看您的问题,您似乎无法读取您提到的 retrieve_secret('mysecret') 方法的响应 return 保证,您可以使用 . then() 在承诺之后。尝试这样做 -
xxx.then(res => {
console.log(res)
})
或者这里是调用获取您的秘密详细信息的代码:
import AWS from "aws-sdk";
getSecretValue(secretName: string): Promise<string> {
const client = new AWS.SecretsManager({
region: '',
accessKeyId: '',
secretAccessKey: '',
});
const secretId = "secretName";
return new Promise((resolve, reject) =>
client.getSecretValue({ SecretId: secretId }, (err, data) => {
if (err) {
reject(err);
} else {
resolve(data.SecretString);
}
})
);
}
所以,经过几天的努力,我终于能够解决它:)
这是对我有用的代码:
exports.handler = async (event, context, callback) => {
// Get Secret
var AWS = require('aws-sdk');
var MyPromise = new AWS.SecretsManager();
var Vsecret = await MyPromise.getSecretValue({
SecretId: 'enter-the-secret-id-here'
}).promise();
var MyOpenSecret = JSON.parse(Vsecret.SecretString);
// From here, we can use the secret:
var Vhost = MyOpenSecret.host;
var Vuser = MyOpenSecret.username;
var Vpassword = MyOpenSecret.password;
var Vdatabase = .....
任何人都可以提供一个简单、完整的 node.js lambda 函数,我可以从 secrets manager 中获取 secret 并使用它吗?我正在努力处理 async/await 过程。我已经尝试了其他帖子的一些建议,但最后,所有这些建议都无法真正在 main 函数中使用 secret。 例如,我有一个主函数并调用第二个函数来检索秘密:
xxx = retrieve_secret('mysecret');
然后,在 retrieve_secret 函数中我能够检索到秘密,我可以使用 console.log 打印它,但是当我尝试在主函数中使用它时,它显示 "Promise ".
请帮忙。 提前致谢!
查看您的问题,您似乎无法读取您提到的 retrieve_secret('mysecret') 方法的响应 return 保证,您可以使用 . then() 在承诺之后。尝试这样做 -
xxx.then(res => {
console.log(res)
})
或者这里是调用获取您的秘密详细信息的代码:
import AWS from "aws-sdk";
getSecretValue(secretName: string): Promise<string> {
const client = new AWS.SecretsManager({
region: '',
accessKeyId: '',
secretAccessKey: '',
});
const secretId = "secretName";
return new Promise((resolve, reject) =>
client.getSecretValue({ SecretId: secretId }, (err, data) => {
if (err) {
reject(err);
} else {
resolve(data.SecretString);
}
})
);
}
所以,经过几天的努力,我终于能够解决它:) 这是对我有用的代码:
exports.handler = async (event, context, callback) => {
// Get Secret
var AWS = require('aws-sdk');
var MyPromise = new AWS.SecretsManager();
var Vsecret = await MyPromise.getSecretValue({
SecretId: 'enter-the-secret-id-here'
}).promise();
var MyOpenSecret = JSON.parse(Vsecret.SecretString);
// From here, we can use the secret:
var Vhost = MyOpenSecret.host;
var Vuser = MyOpenSecret.username;
var Vpassword = MyOpenSecret.password;
var Vdatabase = .....