amazon-web-services - 从 (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,并在实例启动后立即运行将位于实例桌面上的批处理文件
解决方案
我认为你有几个概念混合在一起。
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。这是通过在实例上安装一个可以远程触发的代理来实现的,从而运行脚本而无需登录到实例。
推荐阅读
- reporting-services - SSRS 报告从 rdl 运行时未返回所有记录
- reactjs - Reactstrap 模态窗口未显示
- python - Django 在远程服务器中找不到文件
- java - TableView 不会返回 sqlite 数据
- android - 已连接网络上的活动 Internet 连接
- mysql - 带有 WHERE 语句的 SQL SELECT MIN 值
- c - 大数组导致分段错误
- android - 通过 Gluon-Mobile 使用依赖蓝牙低功耗的 iOS Swift 和 Android 库
- wordpress - 无法将类别链接添加到 wordpress 菜单
- javascript - 在javascript中将数值四舍五入到小数点后2位