当前位置: 首页 > 面试题库 >

如何在Java中以编程方式启动和停止Amazon EC2实例

屈宏爽
2023-03-14
问题内容

如何使用Java中的aws-sdk以编程方式启动和停止Amazon EC2实例?

非常感谢您的帮助,因为我花了一天的时间来解决这个问题。


问题答案:

我最近已经在Bamboo
AWS插件中
实现了此功能;它是开源的,代码可在Bitbucket上找到,您可以找到一个完整的示例如何在EC2Task.java中启动/停止/重启实例(a,实际上应该是一个单独的类)。

幸运的是,这一点都不复杂,例如,可以像这样启动一个实例:

private String startInstance(final String instanceId, AmazonEC2 ec2, final BuildLogger buildLogger)
        throws AmazonServiceException, AmazonClientException, InterruptedException
{
    StartInstancesRequest startRequest = new StartInstancesRequest().withInstanceIds(instanceId);
    StartInstancesResult startResult = ec2.startInstances(startRequest);
    List<InstanceStateChange> stateChangeList = startResult.getStartingInstances();
    buildLogger.addBuildLogEntry("Starting instance '" + instanceId + "':");

    // Wait for the instance to be started
    return waitForTransitionCompletion(stateChangeList, "running", ec2, instanceId, buildLogger); }

BuildLogger是Bamboo特有的,而waitForTransitionCompletion()是特定于实现的帮助程序,用于报告过程/结果。该AmazonEC2 ec2参数通过AmazonEC2接口将引用传递给AmazonEC2Client对象,该接口定义了所有相关方法(包括许多其他方法),尤其是:

  • StartInstances()
  • StopInstances()
  • RebootInstances()


 类似资料:
  • 问题内容: 我正在开发一个Twitter应用程序,该应用程序直接从Twitter引用图像。如何防止动画gif播放? 在页面末尾使用不适用于Firefox。 是否有更好的JavaScript技巧?最好对所有浏览器都适用 问题答案: 这不是跨浏览器的解决方案,但是可以在Firefox和Opera中使用(不适用于ie8:-/)。采取从这里

  • 问题内容: 我想以编程方式在JAVA中启动tomcat服务器。请帮我 问题答案: 如果我对您的理解很好,那么您对在应用程序中运行tomcat感兴趣。如果是这样,您可以编写自己的方法来运行tomcat。 这是示例: 您必须在路径和操作系统中采用此代码。之后,您可以从必须引发tomcat的事件中调用此方法。 希望对您有所帮助。

  • 问题内容: 我很难找到一种方法来启动,停止和重新启动Java中的线程。 具体来说,我在中有一个类Task(当前实现)。我的主应用程序需要能够在线程上启动此任务,在需要时停止(杀死)该线程,有时还可以杀死并重新启动该线程… 我的第一次尝试是与,但我似乎找不到办法重新启动任务。当我使用任何将来的呼叫失败时,因为是“关机” … 那么,我该怎么做呢? 问题答案: 一旦线程停止,你将无法重新启动它。但是,没

  • 符号名ram 线程“main”组织中出现异常。奥斯基。框架BundleException:bundle ram[1]中未解析的约束:无法解析1.0:缺少需求[1.0]osgi。装电线。包裹(osgi.willing.package=android.dalvik)。阿帕奇。菲利克斯。框架菲利克斯。resolveBundleRevision(Felix.java:3826)位于org。阿帕奇。菲利克斯

  • 对不起,老问题。我已经澄清了。我如何用我可怜的线程类开始停止线程? 编辑:它在循环中,我想在代码开头再次重新启动它。我如何启动停止重新启动? 我的班级: 在主代码中,我希望:

  • 我正在寻找一种方法来启动/停止/恢复一个流程实例在流动。在文件里我什么也没找到。我所找到的只是启动/挂起部署进程的操作。 Runtimeservice没有Start/SuspendProcessByInstanceExxx,至少在我所找到的情况下是这样。有什么方法可以做到这一点吗? 我不想删除正在运行的进程然后重新启动,我想挂起它。