我最近已经在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()是特定于实现的帮助程序,用于报告过程/结果。该
AmazonEC2ec2参数通过AmazonEC2接口将引用传递给AmazonEC2Client对象,该接口定义了所有相关方法(包括许多其他方法),尤其是:
- StartInstances()
- StopInstances()
- RebootInstances()



