如何在Terraform中覆盖ASG内T3实例的CPU信用规格设置?
问题
我尝试通过Terraform在自动扩缩容组(ASG)中创建T3实例,相关配置如下:
启动模板配置:
resource "aws_launch_template" "example" { ... credit_specification { cpu_credits = "standard" } }
自动扩缩容组配置:
resource "aws_autoscaling_group" "example" { ... mixed_instances_policy { launch_template { launch_template_specification { launch_template_id = aws_launch_template.example.id version = "$Latest" } } override { instance_type = "t3a.medium" } } }
但t3a.medium实例的CPU信用规格始终被设置为unlimited。根据Terraform官方文档,我了解这是默认行为,但如何覆盖该实例的信用规格设置?
解决方案
要覆盖T3/T3a系列实例默认的unlimited CPU信用规格,需要在ASG混合实例策略的override块中,通过launch_template_override明确指定CPU信用配置,具体修改如下:
resource "aws_autoscaling_group" "example" { ... mixed_instances_policy { launch_template { launch_template_specification { launch_template_id = aws_launch_template.example.id version = "$Latest" } } override { instance_type = "t3a.medium" launch_template_override { credit_specification { cpu_credits = "standard" } } } } }
- T3/T3a系列实例的CPU信用规格默认是
unlimited,这个默认优先级高于启动模板中的配置,因此在使用混合实例策略的override时,必须在该层级明确覆盖 - 通过在
override内嵌套launch_template_override块并重定义credit_specification,可以强制实例使用指定的standard信用模式
内容的提问来源于stack exchange,提问作者Minh
相关产品推荐
相关产品推荐

