【问题标题】:Set environment variables from string of key/value pairs从键/值对字符串设置环境变量
【发布时间】:2019-07-28 19:01:05
【问题描述】:

我正在使用 AWS Secrets Manager 在 React CloudFront Web 应用程序的部署过程中提取一些环境变量。我还没有编写大量的 javascript - 我正在尝试找出从我的“秘密”字符串中提取值并将它们设置为环境变量的最佳方法。

在某些情况下,我可以很好地连接到 AWS-SDK 并检索我的秘密 - 它们看起来像这样:

console.log(secret)
> {"JOE":"https://joe.com","MIKE":"http://mike.com"}

当我决定检查我的秘密类型并发现 javascript 将其评估为字符串时,第一个惊喜出现了:

console.log(typeof secret);
> string

因为我现在知道我正在处理一个字符串,所以我试图找到最有效的方法来解析这个“字符串”(尽管它在我的 python 眼中看起来像一个字典)并设置每个键/对值在字符串中作为环境变量。

我尝试的第一个方法是“modules.export”方法 - 我做了类似的事情:

module.exports = secret;

if(process.env.JOE) {
    console.log('It is set!');
}
else {
    console.log('No set!');
}

当然,这太好了,令人难以置信——而且似乎没有像我希望的那样工作。

接下来我尝试简单地尝试对字符串进行索引并查看它可能返回的内容:

console.log(secret["JOE"]);
> undefined

运气不好。

我尝试了各种其他简单的内置 javascript 方法,但似乎没有取得任何进展。我是否认为我应该首先将其加载到字典中,然后可能使用 modules.export 将字典中的每个键/对设置为环境变量?

【问题讨论】:

    标签: javascript reactjs ubuntu sentry


    【解决方案1】:

    这看起来像一个 JSON 字符串。只需致电JSON.parse(secret),它就会为您提供您期望的对象。

    【讨论】:

    • 非常感谢 - 这就是我想要的
    【解决方案2】:

    来自网络服务器的数据总是以字符串形式返回,无论其格式如何。参考这个链接:https://www.w3schools.com/js/js_json_parse.asp 这应该将数据转换为 JSON,然后您可以将其视为常规 JavaScript 对象。

    希望这会有所帮助!

    【讨论】:

      猜你喜欢
      • 2013-10-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-12-17
      • 2013-06-11
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多