我想(远程)发出命令来重新启动 EC2 实例,并在成功重新启动后 - 需要确认其是否成功。如何实现这一目标?
如何(以编程方式)知道 EC2 实例已重新启动?
需要捕获的信息(如果可能的话,类似于带有时间戳的信息):
- 重新启动尝试
- 重新启动开始
- 正在进行重启
- 重启完成
- 就基础设施而言,重启成功
谢谢。
您可以轮询实例的状态来查看结果。这是一些可以帮助您的伪代码。这是使用 AWS Java SDK。其他语言 SDK 的流程类似。
// Call the AWS Ec2 Describe Instance API.
DescribeInstancesRequest describeRequest = new DescribeInstancesRequest().withInstanceIds("yourInstanceId");
DescribeInstancesResult result = ec2Client.describeInstances(describeRequest);
// Fetch the required instance's status.
InstanceState status = result.getReservations().get(0).getInstances().get(0).getState();
// Check if instance status is Running.
Objects.equals(status.getName(), InstanceStateName.Running.toString());
// Continue the loop until instance is started running.
希望这有帮助。
如果您在 EC2 中为该区域启用了 cloudtrail。创建指标过滤器并订阅通知。每次重新启动时您都会收到通知。
可以使用 AWS CLI 检查实例状态,如下所示。请务必替换下面的 YOUR_INSTANCE_ID 和 YOUR_REGION。
aws ec2 describe-instance-status \
--instance-ids=YOUR_INSTANCE_ID \
--query='InstanceStatuses[0].InstanceStatus.Status' \
--region=YOUR_REGION