Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/305.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
AWS Java API-创建EC2(运行实例)并执行命令_Java_Amazon Web Services_Amazon Ec2_Aws Java Sdk - Fatal编程技术网

AWS Java API-创建EC2(运行实例)并执行命令

AWS Java API-创建EC2(运行实例)并执行命令,java,amazon-web-services,amazon-ec2,aws-java-sdk,Java,Amazon Web Services,Amazon Ec2,Aws Java Sdk,我可以使用从使用runInstances(…)在环境中创建的快照轻松创建实例。我将快照设置为自动启动一组进程和其他东西,这样我就有了一个完整的功能配置 我想做的是让实例自动运行我配置的命令,并设置启动时间,而无需轮询。有什么功能可以做到这一点吗 现在,我正在使用;然而,我宁愿不必担心它,只要让AWS处理它,如果有可能的话 该命令在启动时会根据运行方式/时间发生变化,因此我可能需要执行以下命令: SomeBashScript.sh -e SOME_ID some_command 用于创建实例的A

我可以使用从使用
runInstances(…)
在环境中创建的快照轻松创建实例。我将快照设置为自动启动一组进程和其他东西,这样我就有了一个完整的功能配置

我想做的是让实例自动运行我配置的命令,并设置启动时间,而无需轮询。有什么功能可以做到这一点吗

现在,我正在使用;然而,我宁愿不必担心它,只要让AWS处理它,如果有可能的话

该命令在启动时会根据运行方式/时间发生变化,因此我可能需要执行以下命令:

SomeBashScript.sh -e SOME_ID some_command

用于创建实例的API在我用来启动数据的
runInstanceRequest
类上提供了以下方法:

这完全涵盖了@birryee在报告中所说的内容

因此,我的示例应用程序使用以下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);

听起来你想要
用户数据
?我假设“设置不带轮询的启动时间”应该改为“设置不带轮询的启动时间”。您可以在userdata中配置启动时脚本,该脚本可以从S3存储桶(或其他地方)中提取另一个脚本或某些数据,以驱动启动时脚本的操作。@Birryrree yes,这就是我所想的——我需要通读这些文档,看看如何将它们放在一起。您的用户数据脚本可能比这更复杂。例如,底层网络堆栈可能在脚本运行时未完全启动,因此您的curl尝试可能会失败。这里有一些想法:@jarmod这对于真正的发射来说有点复杂。实际上,在映像上预先部署了一个shell脚本,它可以处理所有事情,包括循环和等待网络连接,我在其中运行专门的命令。但是谢谢你!