我正在使用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将字典中的每个键/对设置为环境变量?
答案 0 :(得分:1)
看起来像一个JSON字符串。只需致电JSON.parse(secret)
,它就会为您提供所需的对象。
答案 1 :(得分:1)
来自Web服务器的数据始终以字符串形式返回,无论其格式如何。请参阅以下链接:https://www.w3schools.com/js/js_json_parse.asp 这会将数据转换为JSON,然后您可以将其视为常规JavaScript对象。
希望这会有所帮助!