在 AWS lambda node.js 中获取秘密

use*_*400 3 amazon-web-services node.js aws-lambda secret-manager

任何人都可以提供一个简单、完整的 node.js lambda 函数,我可以在其中从机密管理器获取机密并使用它吗?我在异步/等待过程中挣扎。我已经尝试了其他帖子中的一些建议,但最后所有这些建议都无法真正使用 main 函数中的秘密。例如,我有一个主函数并调用第二个函数来检索秘密:

xxx =retrieve_secret('mysecret');

然后,在retrieve_secret 函数中,我可以检索秘密,我可以使用console.log 打印它,但是当我尝试在main 函数中使用它时,它显示“Promise”。

请帮忙。提前致谢!

use*_*400 6

因此,经过几天的努力,我终于能够解决它:) 以下是对我有用的代码:

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 = .....
Run Code Online (Sandbox Code Playgroud)