現在の 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 全体を終了したいのですが、EC2 インスタンス ID を持っていなかったため、事前に CloudFormation スタック名を持っていないことに注意してください。 API 呼び出し。
できるとしたら、どうすればいいですか?