【发布时间】:2020-06-24 12:29:31
【问题描述】:
我有一个在 AWS Lambda 上运行的 Java 程序和一个带有 jar 文件的 EC2 实例。
为了执行 jar,我使用 ssh 手动连接到实例:
ssh -i "key.pem" user@instanceDNS
java -cp myJar.jar com.example.Main
是否有任何解决方案可以直接从 Lambda 以编程方式执行此 jar?
另外,如果是每次实例启动后自动执行这个 jar 的解决方案,它也会有所帮助,因为我必须每天启动实例,然后运行这个 jar,然后停止实例。
这就是我启动实例的方式。启动后,我必须执行jar:
StartInstancesRequest startInstancesRequest = new StartInstancesRequest()
.withInstanceIds(INSTANCE_ID);
ec2Client.startInstances(startInstancesRequest);
它启动后,我必须执行jar。
【问题讨论】:
-
代码真的必须在这个 EC2 实例上运行吗?它可以在 Lambda 中运行吗?
-
很遗憾,是的,这部分代码无法在Lambda中运行。
-
可能会在启动时触发脚本从 EC2 实例本身内部运行,例如如果是 Linux(或您的操作系统上的等效版本),则通过 rc.local。设置一个脚本,在实例启动时执行您的 JAR 文件(甚至可能在完成时自动停止实例)。或者考虑将 SSM 运行命令作为从 Lambda 在 EC2 实例上执行脚本的一种方式。
标签: java amazon-web-services amazon-ec2 aws-lambda