我如何获取使用SSM执行的AWS-EC2的实时终端结果

问题描述

我有一种情况,我将通过EC2AWS-SSM(Systems Manager)上执行命令。这些是ML训练命令。因此,如果我想将时代lossaccuracy信息实时显示到前端,则只能在AWS-AnsiblePlaybook执行task之后显示task登录CloudWatch,我可以流式传输。

但是,如果我想实时显示,该如何显示?可能吗?

解决方法

此功能适用于您的用例吗?在bash脚本中,您可以为用户数据添加如下行:

exec > >(tee /var/log/user-data.log|logger -t user-data -s 2>/dev/console) 2>&1

这将导致用户数据日志发送到控制台,在其中可以通过选择实例并选择“实例设置-获取系统日志”从EC2控制台查看它们。因此,无论您在何处记录命令并将其重定向到控制台(类似于控制台),都应该可以访问实时日志。

或者将使用S3工作,如https://aws.amazon.com/blogs/mt/streaming-aws-systems-manager-run-command-output-to-amazon-cloudwatch-logs/所述?