2016-01-18 5 views
2

Я использую CLI для AWS для создания кластера и использования параметров из json-файла. Вот командная строка CLI Im с помощью:AWS CLI - объект JSON не может быть декодирован

aws emr create-cluster --name "Big Matrix Re Run 1" --ami-version 3.1.0 --steps file://Segmentgroup1.json --release-label --instance-groups InstanceGroupType=MASTER,InstanceCount=1,InstanceType=m3.xlarge InstanceGroupType=CORE,InstanceCount=2,InstanceType=m3.xlarge --auto-terminate 

Мой файл в формате JSON (Segmentgroup1.json) находится в той же папке, в которой Im, выполнив команду AWS строку из, но я получаю следующее сообщение об ошибке:

No JSON object could be decoded 

Основываясь на том, что Ive обнаружил, что не нашел файл json. Есть идеи?

+2

Вы здравомыслие проверили действительность в JSON-файла, например, [jsonlint.com] (http://jsonlint.com) –

+0

выглядит так, может быть, это ... странно, что он работал на моей другой машине, но не на моем mac. – DataGuy

ответ

5

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

  • Вы должны добавить file:// протокол в качестве префикса для вашего пути
  • и использовать абсолютный путь к файлу JSON в качестве параметра

Попробуйте что-то вроде этого:

aws ecs register-task-definition --cli-input-json file://<absolute_path_to_json>/your_json.json

Если вы не хотите жестко указывать путь к файлу, вы можете использовать команду pwd сделать это:

aws ecs register-task-definition --cli-input-json file://`pwd`/your_json.json

0

Вот пример команды, которая работает на Windows, где синтаксис путь к файлу немного отличается:

aws cloudwatch put-metric-data --namespace "EC2 Memory Usage" --metric-data file://C:\Users\Joe\mycode\metric.json