NodeJS AWS Lambda节点,如何使用Secrets Manager连接到数据库

oxosxuxt  于 12个月前  发布在  Node.js
关注(0)|答案(1)|浏览(91)

我在AWS控制台中创建了一个PostgreSQL数据库示例,然后创建了一个用户名和密码,让Secrets Manager来管理PostgreSQL数据库,请告诉我在lambda Js节点中如何使用Secrets Manager来连接数据库和查询。我是一个新手,我对如何实现这个功能感到困惑。非常感谢

vohkndzv

vohkndzv1#

这里是关于如何从lambda https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-secrets-manager/classes/createsecretcommand.html创建新的secret的官方文档
以下是有关如何检索secrets manager中存储的凭据的官方文档:https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-secrets-manager/classes/getsecretvaluecommand.html
下面是截取的代码:

import {SecretsManagerClient, GetSecretValueCommand} from "@aws-sdk/client-secrets-manager";

const client = new SecretsManagerClient({
    region: 'us-west-1'
});

const command = new GetSecretValueCommand({
    SecretId: process.env.RDS_SECRET_NAME,//lambda env with the secret name
    VersionStage: "AWSCURRENT"
});
let sql;

try {
    const response = await client.send(command);
    const secrets = JSON.parse(response['SecretString']);

    // noinspection JSUnresolvedReference
    sql = postgres({
        hostname: secrets.dbhost,
        username: secrets.username,
        password: secrets.password
    });
} catch (e) {
    console.error(e);
    process.exit(1);
}

相关问题