Las sesiones de pantalla de AWS SSM no persisten

Estoy haciendo un script con Javascript AWS-SDK que envía comandos a una instancia EC2 para crear una pantalla y luego ejecutar un proceso en dicha pantalla. Después de un tiempo, se supone que SSM restaurará la pantalla creada anteriormente y detendrá el proceso. Sin embargo, después de algunas pruebas, las pantallas no parecen persistir al usar la siguiente secuencia de comandos.

// First command batch

cd /home/ec2-user/
screen -S server
run process

// Second command batch

cd /home/ec2-user/
screen -S server -X "stop process"

Al usar el segundo lote de comandos, SSM devuelve un error que dice que no hay pantallas o "Debe estar conectado a una terminal". Estoy perdido. ¿Por qué no puedo usar una pantalla?

Answer

AWS Systems Manager Session Manager utiliza un 'Agente' para conectarse a la instancia. Los comandos que escribe se envían al agente, que ejecuta los comandos y devuelve la respuesta.

No está usando una conexión SSH normal o un 'terminal'; es un poco engañoso, pero un truco muy útil porque permite conexiones a una instancia EC2 en una subred privada e incluso puede conectarse a instancias que bloquean todas las conexiones entrantes ( porque el agente se conecta a través de una conexión Saliente).

Si necesita hacer cosas más sofisticadas, puede usar Port Forwarding usando AWS System Manager Session Manager , que le permite establecer otras conexiones a través de la conexión SSM (p. ej., una sesión SSH o un servicio web de reenvío de puertos). Esto le permitiría conectarse usando la funcionalidad normal de tipo 'terminal'.