node.js - 如何在模块加载到 NodeJS 之前获取和使用 Secret Manager 值

我有一个 Node JS 项目,它有处理程序、服务和模型。 作为应用程序的一部分,我们曾经从配置 js 文件中读取 env 变量,该文件因环境而异。 最近我们尝试将那些 config js 信息移动到 AWS Secret Manager 中。现在我们能够从通用模块中的 Secret Manager 获取所有值。 我们有将近 15 个模块,每个模块都有自己的环境变量。 (每个模块都是一个微服务)。 我如何实现以获取每个环境的所有 secret 值(从公共(public)模块启动时的负载类型。 现在我在我的处理程序中使用以下方法。

已使用以下方法从公共(public)模块获取值到工作模块。(处理程序)

const utils = require('common-module');
((err, response) => {
    utils.getAllEnvValues({ secretValue: 'SEARCH-SECRET' }, (err, result) => {
        if (err) {
            console.log(err)
        }
        console.log('Getting the value from AWS Secrets!!!!');
        console.log('Limit Size:', process.env.SEARCH_LIMIT);
    });
})();

但有时并不需要加载所有模块。即使是那些模块也应该获得它们的 env 值? 如何获得这些?什么样的实现会有所帮助?

最佳答案

检查这个包:https://github.com/jwerre/secrets

它将像这样同步加载(或不)特定命名空间内的所有 secret :

const config = require('@jwerre/secrets').configSync({
    region: 'us-east-1',
    env: 'production',
    namespace: 'SEARCH-SECRET',
});

关于node.js - 如何在模块加载到 NodeJS 之前获取和使用 Secret Manager 值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57186272/

相关文章:

firebase - 我应该使用 Firebase 动态链接而不是通用链接和应用链接吗?

java - 如何使用 .p8 文件签署 json 网络 token

node.js - TransferHttpCacheModule 不会阻止 Angular 8 中

php - 在电子邮件中添加 PhpSpreadsheet 附件

npm - 在私有(private)网络上托管 github 发布

node.js - 如何在 node 中集成 swagger 和 fastify 框架

json - 将选定的内容模型及其内容导出到 Contentful 中的另一个空间

reactjs - 使用 React Router V4 时如何防止组件立即卸载

spring-boot - Spring Boot 可执行 jar 通过 Azure devops

reactjs - 添加具有 Material 表的组件会更改 Material-UI AppBar