问题标签 [gcp-secrets-manager]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
89 浏览

javascript - 如何从函数设置 process.env?

我非常愿意学习是否有更好的“最佳实践”方法来执行此操作,但是我偶尔会运行一些脚本来编辑数据库,因此我需要为这些脚本传递数据库密码。我通过调用调用 google cloud Secrets Manager 的函数来获取密码,但我无法将其添加到 process.env。

例如,如果我把它放在我的脚本文件的顶部:

当上述运行我得到错误
SyntaxError: await is only valid in async functions and the top level bodies of modules

但是,如果我将 process.env.DB_PASS 设置移动到的 async main() 函数中,那么它具有该 main 函数的本地范围。此脚本中的函数调用的其他文件将 process.env.DB_PASS 视为未定义(但请查看文件顶部全局设置的任何 process.env 变量的值。

如何在不将文字秘密实际粘贴到代码中的情况下引入并设置该秘密?

为了表示范围界定的问题,这里是该问题的工作代码再现。这是我正在运行的脚本文件:

这是process_pull_test文件

而且,这是输出