AWS Java API - 创建 EC2 (runInstances) 并执行命令

AWS Java API - Create EC2 (runInstances) and execute command

我能够使用 AWS Java API 从我在环境中使用 runInstances(...) 创建的快照轻松创建实例。我以自动启动一组进程和其他东西的方式设置了快照,这样我就有了一个功能齐全的配置。

我想做的是让实例自动 运行 我配置并设置启动时间的命令 WITHOUT POLLING。有什么功能可以做到这一点吗?

现在我正在使用 Java Secure Channel library 轮询它何时可用;但是,我宁愿不必担心它,如果可能的话让 AWS 处理它。

命令在启动时根据 how/when 事情发生变化 运行,因此我可能需要执行如下命令:

SomeBashScript.sh -e SOME_ID some_command

用于创建实例的 API 在我用来启动数据的 RunInstancesRequest class 上有以下可用方法:

public void setUserData(String userData)

这完全涵盖了@birryee 在 User Guide 中所说的内容。

因此,我的示例应用程序使用以下 Java 代码来启动:

// create the actual request
RunInstancesRequest request = new RunInstancesRequest();
request.withMinCount(1).withMaxCount(count);
request.withKeyName("TheOwner");
request.withSecurityGroups("SSH");
request.withInstanceType(InstanceType.T2Micro);
request.withImageId("MyImageID");
request.withRegion(Region.getRegion(Regions.US_EAST_1));

// add a web hook call to notify us when the instance is launched
request.withUserData("#!/bin/bash\ncurl -X POST http://domain.com/email-me");

// launch it
RunInstancesResult awsResponse = awsClient.runInstances(request);