Ошибка создания службы AWS ecs «Недопустимый JSON получен» даже с синтаксисом file://

Я пытаюсь создать сервис с помощью интерфейса командной строки AWS из JSON, но получаю Invalid JSON received даже с синтаксисом file://. Я создал скелет для JSON с помощью --generate-cli-skeleton.

aws ecs create-service --cli-input-json file://test-app.json

test-app.json находится в текущем рабочем каталоге. Вот содержание:

{
  "cluster": "wf-development",
  "serviceName": "test-app-2",
  "taskDefinition": "xxxxxxxxx",
  "loadBalancers": [
    {
      "targetGroupArn": "xxxxxxxxx",
      "containerName": "test-app",
      "containerPort": 80
    }
  ],
  "serviceRegistries": [],
  "desiredCount": 1,
  "launchType": "EC2",
  "role": "AWSServiceRoleForECS",
  "deploymentConfiguration": {
    "maximumPercent": 200,
    "minimumHealthyPercent": 100
  },
  "placementConstraints": [],
  "placementStrategy": [],
  "healthCheckGracePeriodSeconds": 10,
  "schedulingStrategy": "REPLICA",
  "enableECSManagedTags": true,
  "propagateTags": "NONE",
  "enableExecuteCommand": true
}

Я новичок в AWS и только разбираюсь в этом, но вчера я сделал это на другом ПК, и все сработало отлично.

Обновлено: я использую Windows и Powershell.

вы не упомянули свою ОС. Я предполагаю Linux, и вы можете использовать jq, чтобы проверить, действительно ли ваш JSON действителен или нет. если это не так, jq сообщит часть, которая недействительна

Sharuzzaman Ahmat Raslan 22.03.2022 16:02

@SharuzzamanAhmatRaslan Извините, я в Windows с помощью Powershell. Я знаю, что JSON действителен.

chrispytoes 22.03.2022 16:03

весьма вероятно смешение новых строк. Скелет aws cli, скорее всего, является выходным текстовым файлом типа Unix, и вы редактируете его в редакторе типов Windows (например, в блокноте), который не понимает текстовый файл Unix. попробуйте отредактировать файл с помощью Notepad ++ или VS Code, которые понимают текстовый файл Unix. ссылка: jsonlint.com: разные результаты Если вы используете компьютер с Windows, вы можете получить разные результаты. Возможно, это связано с тем, как Windows обрабатывает новые строки. По сути, если у вас есть только символы новой строки (\n) в вашем JSON и вы вставляете его в JSONLint с компьютера с Windows, он может ошибочно подтвердить его как действительный.

Sharuzzaman Ahmat Raslan 22.03.2022 16:08

@SharuzzamanAhmatRaslan Мой текстовый редактор может изменить режим окончания строки, и я пробовал и Windows, и Linux, но все равно выдает ошибку.

chrispytoes 22.03.2022 16:09

тогда остается только один вариант — установить jq в Windows и запустить тест для вашего файла JSON: stedolan.github.io/jq/скачать

Sharuzzaman Ahmat Raslan 22.03.2022 16:12

@SharuzzamanAhmatRaslan Как это что-то исправит? Я вижу в своем текстовом редакторе, что JSON совершенно действителен.

chrispytoes 22.03.2022 16:13

@SharuzzamanAhmatRaslan Да, jq также подтверждает это правильно.

chrispytoes 22.03.2022 16:19
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
7
20
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Ладно, очень странно. Я просто скопировал содержимое своего файла JSON в новый файл, ничего не меняя, и теперь он работает.

Другие вопросы по теме