YAML和JSON错误aws static.config文件

Kay*_*ast 2 json yaml amazon-web-services node.js amazon-elastic-beanstalk

我正在尝试在elasticbeanstalk上部署node.js应用程序(我在这里按照指示http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/create_deploy_nodejs_express.html),其中需要完成以下操作:

步骤6 [使用数据库更新应用程序]要点5.在本地计算机上,更新node-express/.ebextensions/static.config以向环境变量添加生产标志.

option_settings:
  - namespace: aws:elasticbeanstalk:container:nodejs:staticfiles
    option_name: /public
    value: /public
  - option_name: NODE_ENV
    value: production
Run Code Online (Sandbox Code Playgroud)

但是当我部署时,我收到错误:

2014-08-29 10:15:11     ERROR   The configuration file .ebextensions/static.config in application version git-5376bdbd807e9f181e6a907f996068b4075dffe0-1409278503377 contains invalid YAML or JSON. YAML exception: while parsing a block mapping
 in "<reader>", line 1, column 1:
    option_settings:
    ^
expected <block end>, but found BlockEntry
 in "<reader>", line 5, column 1:
    - option_name: NODE_ENV
    ^
, JSON exception: Unexpected character (o) at position 0.. Update the configuration file.
Run Code Online (Sandbox Code Playgroud)

我是新手,无法弄清楚如何纠正它.请帮忙.

Roh*_*nga 6

您能指定用于创建此YAML文件的文本编辑器吗?你有机会在Windows机器上吗?我的第一个猜测是,配置文件中可能存在一些在文本编辑器中不可见的无效字符.如果您还没有这样做,可以仔细检查文件中是否有ctrl字符等.我通常在vim中检查这样的无效字符.

要检查的第二件事:YAML对空格和缩进很敏感,所以你能仔细检查你的缩进是否正确.我找到了这个在线网站来验证您的YAML格式.你可以尝试一下.

您也可以在配置文件中尝试以下JSON.只需用这个JSON替换YAML文件的内容就可以了.

{
  "option_settings": [
    {
      "option_name": "/public", 
      "namespace": "aws:elasticbeanstalk:container:nodejs:staticfiles", 
      "value": "/public"
    }, 
    {
      "option_name": "NODE_ENV", 
      "value": "production"
    }
  ]
}
Run Code Online (Sandbox Code Playgroud)

如果没有无效字符且缩进正确,则文档中指定的YAML应该可以正常工作.现在你可以试试上面的json.