Я пытаюсь создать сервис с помощью интерфейса командной строки 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.
@SharuzzamanAhmatRaslan Извините, я в Windows с помощью Powershell. Я знаю, что JSON действителен.
весьма вероятно смешение новых строк. Скелет aws cli, скорее всего, является выходным текстовым файлом типа Unix, и вы редактируете его в редакторе типов Windows (например, в блокноте), который не понимает текстовый файл Unix. попробуйте отредактировать файл с помощью Notepad ++ или VS Code, которые понимают текстовый файл Unix. ссылка: jsonlint.com: разные результаты Если вы используете компьютер с Windows, вы можете получить разные результаты. Возможно, это связано с тем, как Windows обрабатывает новые строки. По сути, если у вас есть только символы новой строки (\n) в вашем JSON и вы вставляете его в JSONLint с компьютера с Windows, он может ошибочно подтвердить его как действительный.
@SharuzzamanAhmatRaslan Мой текстовый редактор может изменить режим окончания строки, и я пробовал и Windows, и Linux, но все равно выдает ошибку.
тогда остается только один вариант — установить jq в Windows и запустить тест для вашего файла JSON: stedolan.github.io/jq/скачать
@SharuzzamanAhmatRaslan Как это что-то исправит? Я вижу в своем текстовом редакторе, что JSON совершенно действителен.
@SharuzzamanAhmatRaslan Да, jq также подтверждает это правильно.
Ладно, очень странно. Я просто скопировал содержимое своего файла JSON в новый файл, ничего не меняя, и теперь он работает.
вы не упомянули свою ОС. Я предполагаю Linux, и вы можете использовать jq, чтобы проверить, действительно ли ваш JSON действителен или нет. если это не так, jq сообщит часть, которая недействительна