2014-08-29 2 views
2

Я пытаюсь развернуть Node.js приложение на elasticbeanstalk (я следующие направления здесь http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/create_deploy_nodejs_express.html), где следующие должно быть сделано:YAML и JSON ERRor AWS static.config файл

Шаг 6 [ Обновление вашего приложения с помощью базы данных] Пункт 5. На локальном компьютере обновите узел-express/.ebextensions/static.config, чтобы добавить флаг производства в переменные среды.

option_settings: 
    - namespace: aws:elasticbeanstalk:container:nodejs:staticfiles 
    option_name: /public 
    value: /public 
    - option_name: NODE_ENV 
    value: production 

Но когда я раскрываю, я получаю сообщение об ошибке:

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. 

Я новичок в этом и не в состоянии понять, как это исправить. Пожалуйста помоги.

ответ

6

Можете ли вы указать, какой текстовый редактор вы используете для создания этого файла YAML? Вы случайно на компьютере с Windows? Мое первое предположение заключается в том, что в вашем файле конфигурации может быть какой-то недопустимый символ, который не отображается в текстовом редакторе. Если вы еще этого не сделали, вы можете проверить, нет ли в вашем файле символов ctrl и т. Д. Обычно я проверяю такие недопустимые символы в vim.

Второе, что нужно проверить: YAML чувствителен к пробелам и отстукам, так что вы можете дважды проверить, что ваш отступ правилен. Я нашел этот онлайн-сайт для проверки вашего формата YAML. Вы можете попробовать.

Вы также можете попробовать следующий JSON в своем конфигурационном файле. Просто замените содержимое файла YAML на этот JSON, и он должен работать.

{ 
    "option_settings": [ 
    { 
     "option_name": "/public", 
     "namespace": "aws:elasticbeanstalk:container:nodejs:staticfiles", 
     "value": "/public" 
    }, 
    { 
     "option_name": "NODE_ENV", 
     "value": "production" 
    } 
    ] 
} 

YAML как указано в документации, должен работать нормально, если нет недопустимых символов, а отступы правильны. На данный момент вы можете попробовать вышеупомянутый json.

+0

Ваше решение JSON хорошо работает. Благодарю. Я подозреваю, что это был отпечаток. Кстати, я использую Mac и Eclipse. –

+1

Веб-сайт Amazon не содержит примера конфигурации JSON, большое спасибо за это! –

+0

У меня была такая же проблема, пытаясь найти какие-либо примеры json, это было первое. Вкладки продолжали меня заставлять в ямле. У меня был полукомплексный файл yaml и я использовал следующий конвертер yaml для json, и он сработал! http://yamltojson.com/ +1 – Ron

1

Попытка установить пространство имен среды приложений ->aws:elasticbeanstalk:application:environment

.yaml более человек дружелюбный

option_settings: 
    - namespace: aws:elasticbeanstalk:container:nodejs:staticfiles 
    option_name: /public 
    value: /public 
    - namespace: aws:elasticbeanstalk:application:environment 
    option_name: NODE_ENV 
    value: productio