存储在AWS EB环境variables中的JSON将不带引号地进行检索
我正在运行一个node.js EB容器,并试图将JSON存储在一个环境variables中。 JSON存储正确,但是通过process.env.MYVARIABLE检索时,将返回所有双引号删除。
例如MYVARIABLE看起来像这样:
{ "prop": "value" }
当我通过process.env.MYVARIABLE检索它的值是actualy { prop: value}
这是无效的JSON。 我尝试用'\'(例如{\“prop \”:\“value \”}来避免引号,只是在string回到{\ \"prop\\":\ \"value\\" }
。 我也尝试用单引号把整个东西包装起来,例如'{ "prop": "value" }'
,但是它似乎也把它们去掉了。
任何人都知道如何将JSON存储在环境variables中?
编辑:一些更多的信息,当你设置一个环境variables时,会出现某些字符被双重转义。 例如,如果我用单引号包装对象。 当我使用sdk获取它的值变成:
\'{ "prop": "value"}\'
另外,如果我把引号留下来,反斜杠会被转义,所以如果对象看起来像{"url": "http://..."}
那么当我通过sdk查询的结果是{"url": "http:\\/\\/..."}
这不仅会损坏文本,还会重新排列JSON属性,所以属性的显示顺序与我设置的顺序不同。
UPDATE
所以我想说这似乎是AWS中的一个错误,因为它似乎正在损坏提交的值。 无论我使用node.js sdk还是Web控制台,都会发生这种情况。 作为一个解决方法,我已经采取在部署过程中用json对象上的单引号replace双引号,然后再在应用程序中。
- 使用弹性beanstalk部署复杂的node.js项目
- Elastic Beanstalk CLI错误:此目录尚未使用EB CLI进行设置您必须首先运行“eb init”
- Node.js错误:Elastic Beanstalk主机上的EADDRINUSE
- AWS弹性beanstalk部署因ENOMEM错误而失败
- 将yeoman node.js应用程序部署到Elastic Beanstalk
- 编译更less的文件并缩小AWS Elastic Beanstalk上的node.js项目中的js文件
- 如何为Node.js WebSocket服务器configurationAWS Elastic Beanstalk?
- 如何在AWS Elastic Beanstalk上安装Deployd
- 在node.js中将http转发到https使用EBS和ELB环境表示应用程序