запуск aws-завершение сеанса с ** Не удается выполнить запуск сеанса: EOF**

#aws-systems-manager #aws-session-manager

#aws-systems-manager #aws-session-manager

Вопрос:

Я пытаюсь использовать диспетчер сеансов в своем CI (с ванильной конфигурацией, так что ничего особенного).

Все входные данные (ключи и т. Д.) И конфигурации (пользователь / стратегия / ключ) Действительны. Мне удается запустить сеанс на моем собственном ноутбуке.

Но на моем конвейере я получил следующее сообщение

 Starting session with SessionId: xxxx-xxxxxxx
$ **Cannot perform start session: EOF**
 

Связана ли эта оболочка?

Для справки, инструменты, используемые в CI :

  • Плагин менеджера сеансов: 1.2.30.0
  • Интерфейс командной строки AWS: aws-cli / 1.18.223 Python / 2.7.17 Linux/5.4.0-1039- azure botocore/1.19.63

Комментарии:

1. Вы нашли решение? У меня такая же проблема. В моем случае я запускаю aws ecs execute-command действие github.

2. @BenjaminHao Да, это просто связано с TTY. В конце мы зарезервировали start-session для SSHing через ноутбуки. Для нашего компакт-диска мы используем aws ssm send-command --document-name "AWS-RunShellScript" и скрипт, выполняемый удаленно (в нашем случае на EC2, а не на ECS). С уважением

3. Спасибо! Я попробую ваше решение. Я нашел еще один, который сработал для меня. Я установил expect sudo apt-get install expect и запустил команду с помощью unbuffer aws ecs execute-command ....

4. @BenjaminHao Это умно, поскольку unbuffer позволяет обойти интерактивное поведение 😉

Ответ №1:

Если вы столкнулись с этой ошибкой, как я:

 Cannot perform start session: EOF
 

и вот, используя информацию из комментария Бенджамина Хао, вот шаги, которые я предпринял, чтобы заставить его наконец работать:

Ожидаемая установка, в моем случае мне пришлось установить его на размещенный на Github runner, который устанавливается с Ubuntu:

 apt install -y expect
 

Затем добавьте «unbuffer» перед командой, которую вы пытаетесь выполнить, например:

 unbuffer aws ecs execute-command --region $REGION --cluster $ecs_cluster_name --task $ecs_task_id --container ops-machine --command 'clitool env start --confirm' --interactive