从键/值对的字符串设置环境变量

时间:2019-03-07 01:02:53

标签: javascript reactjs ubuntu sentry

我正在使用AWS Secrets Manager在React CloudFront Web App的部署过程中提取一些环境变量。我还没有编写大量的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将字典中的每个键/对设置为环境变量?

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:1)

来自Web服务器的数据始终以字符串形式返回,无论其格式如何。请参阅以下链接:https://www.w3schools.com/js/js_json_parse.asp 这会将数据转换为JSON,然后您可以将其视为常规JavaScript对象。

希望这会有所帮助!