首页 > 解决方案 > 从 (python) lambda 在 EC2 上运行批处理文件

问题描述

我可以在Start and Stop Instances at Scheduled Intervals Using Lambda and CloudWatch中看到从 lambda 启动 EC2 的通用方法。

假设我使用该方法启动 EC2,并假设 AMI 是定制的 Windows Server 2019 .bat,在桌面上有一个文件,并且假设我使用的是 python lambda。

如何从 lambda 执行此批处理文件?(即就像有人将 RDP 放入实例并双击它一样)

注意:要非常清楚,基本上我想使用 AWS 文档(上面)中给出的方法启动 EC2,并在实例启动后立即运行将位于实例桌面上的批处理文件

标签: amazon-web-servicesamazon-ec2aws-lambda

解决方案


我认为你有几个概念混合在一起。

AWS Lambda 函数在 Lambda 服务上运行,无需使用 Amazon EC2 实例。这就是使它们“无服务器”的原因。

如果您在 Amazon EC2 实例上有一个批处理文件,您可能希望在 EC2 实例本身上运行该批处理文件,而不涉及 Lambda(因为您一个服务器)。

如果您希望在 EC2 实例首次启动时在其上运行脚本,您可以通过用户数据字段提供 PowerShell 或命令行脚本。AMI 上的软件将在实例第一次启动时自动执行此脚本。

该脚本可以自己完成所有工作,也可以简单地调用存储在磁盘上的另一个脚本。有些人使用脚本从存储库(例如 Amazon S3 或 GitHub)下载另一个脚本,然后执行下载的脚本。

有关更多信息,请参阅:启动时在您的 Windows 实例上运行命令 - Amazon Elastic Compute Cloud

如果 Amazon EC2 实例已经在运行并且您希望触发脚本执行,您可以使用AWS Systems Manager Run Command。这是通过在实例上安装一个可以远程触发的代理来实现的,从而运行脚本而无需登录到实例。


推荐阅读