検索で引っかかるように書いておきます。
ECS Exec (ecspresso exec, ecsta exec, aws ecs execute-commandなど)を端末以外の環境 (例えばJenkinsやGitHub ActionsなどのCI/CD環境) から実行すると、session-manager-pluginが "Cannot perform start session: EOF" でエラーになります。
これは session-manager-plugin が端末(tty)を割り当てられていることを期待しているためです。
expect パッケージに含まれる unbuffer
コマンドでwrapして実行して疑似端末を与えると、端末以外からも実行できるようになります。
$ unbuffer aws ecs excute-command ...
ECS Execを端末じゃないところから実行して Cannot perform start session: EOF といわれて死ぬやつ、これかあ。expectを入れてunbufferコマンドでwrapしてやるとよい https://t.co/TL1SQLOCY6
— fujiwara (@fujiwara) 2021年6月24日