#amazon-web-services #aws-ssm
#amazon-web-services #aws-ssm
Вопрос:
Ниже я aws ssm send-command
пытаюсь создать файл в экземпляре EC2, но это не работает.
aws ssm send-command --instance-ids i-XXXXXXXXXX --document-name "AWS-RunShellScript" --parameters commands="touch /home/hadoop/test2.txt" --output text
После ввода команды команда немедленно возвращается и выводит сообщение ниже. Затем я проверяю test2.txt
, что не существует в этом экземпляре EC2. Любые предложения будут оценены. Спасибо.
`КОМАНДА AAAAAAAA-ZZZZ-XXXX-ГГГГ-XXXXXXXXXXXX 0 0 AWS-RunShellScript 0 XXXXXXXXXX.91 50 0 XXXXXXXXXX.91 Ожидание отправки 1 3600 CLOUDWATCHOUTPUTCONFIG False
Идентификаторы ЭКЗЕМПЛЯРА i-XXXXXXXXXX
NOTIFICATIONCONFIG
КОМАНДЫ касаются /home/hadoop/test2.txt `
Ответ №1:
Я попытался воспроизвести проблему с помощью Amazon Linux 2. Действительно, команда завершается ошибкой. Я обнаружил, что причиной было то, что /home/hadoop/
папка не существовала. Впоследствии вы не сможете touch
сохранить файл в папке, которая не существует.
Решение было:
aws ssm send-command
--instance-ids i-0788cf54681f8bd52
--document-name "AWS-RunShellScript"
--parameters commands='["mkdir -p /home/hadoop/","touch /home/hadoop/test2.txt"]'
--output text
Ответ №2:
В случае, если кто-то сталкивается с той же pending
проблемой, и команда выполняется в EC2 с использованием ssh, согласно документам:
Если при выполнении команды отображается «Ожидание» или «Незавершенное выполнение», вы снова запускаете эту команду, чтобы просмотреть данные ответа.
поэтому вам нужно запустить это, чтобы увидеть результат:
# $sh-command-id is the command-id and you get it from output of aws ssm send-command
aws ssm list-command-invocations
--command-id $sh-command-id
--details
дополнительные сведения см. В разделе Получение информации о команде с данными ответа здесь