интерфейс командной строки отправки aws ssm не работает для создания файла

#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
  

дополнительные сведения см. В разделе Получение информации о команде с данными ответа здесь