使用在线 decommentation 我想出了以下代码来终止当前的 EC2 实例:
public class Ec2Utility {
static private final String LOCAL_META_DATA_ENDPOINT = "http://169.254.169.254/latest/meta-data/";
static private final String LOCAL_INSTANCE_ID_SERVICE = "instance-id";
static public void terminateMe() throws Exception {
TerminateInstancesRequest terminateRequest = new TerminateInstancesRequest().withInstanceIds(getInstanceId());
AmazonEC2 ec2 = new AmazonEC2Client();
ec2.terminateInstances(terminateRequest);
}
static public String getInstanceId() throws Exception {
//SimpleRestClient, is an internal wrapper on http client.
SimpleRestClient client = new SimpleRestClient(LOCAL_META_DATA_ENDPOINT);
HttpResponse response = client.makeRequest(METHOD.GET, LOCAL_INSTANCE_ID_SERVICE);
return IOUtils.toString(response.getEntity().getContent(), "UTF-8");
}
}
我的问题是我的 EC2 实例位于 CloudFormationStack 下的 AutoScalingGroup 下,这是因为我的组织部署标准,尽管这个功能只有一个 EC2。
所以,我想从 JavaSDK 中终止整个 CloudFormationStack,请记住,我没有预先知道 CloudFormation 堆栈名称,因为我没有 EC2 实例 ID,所以我必须使用代码从代码中获取它API 调用。
如果我能做到,我该怎么做?