因此创建了 EC2,但
user-data
失败了,例如。语法错误,某些命令失败等
如果
user-data
运行不成功,如何自动终止此类实例?
如果我想出一个在用户数据脚本失败时自动终止 EC2 实例的解决方案,我将在用户数据脚本中添加错误处理,以便在任何命令失败时使用 AWS CLI 终止实例。像这样的东西:
#!/bin/bash
set -e # to stop script execution on any error
# Example command that might fail
let’s-assume-your-command-is-here || {
echo "Command failed";
aws ec2 terminate-instances --instance-ids $(curl http://169.254.169.254/latest/meta-data/instance-id) --region $(curl http://169.254.169.254/latest/meta-data/placement/region);
exit 1;
}
如果您想探索此方法,请确保 EC2 实例具有有权终止自身的 IAM 角色。它需要这样的政策:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": "ec2:TerminateInstances",
"Resource": "*" # you can make this more specific
}
]
}
我还建议您通过模拟故障进行测试,以确保它按预期终止。
这就是我处理这个场景的方法。希望有帮助。