如何在Terraform中将AWS启动模板版本设为最新默认版?
解决方案
要实现启动模板更新时自动创建新版本并设为默认,你可以结合Terraform的aws_launch_template和aws_launch_template_default_version两个原生资源来实现,无需依赖外部CLI命令,完全适配AWS provider 4.14版本。
具体配置示例
# 定义启动模板,修改核心属性时自动创建新版本 resource "aws_launch_template" "app_server" { name = "app-server-launch-template" image_id = "ami-0abcdef1234567890" # 替换为你的目标AMI instance_type = "t3.small" # 按需添加其他配置:安全组、密钥对、用户数据等 vpc_security_group_ids = [aws_security_group.app_server.id] key_name = "your-key-pair" } # 自动将启动模板的最新版本设为默认 resource "aws_launch_template_default_version" "app_server" { launch_template_name = aws_launch_template.app_server.name version_number = aws_launch_template.app_server.latest_version }
工作原理
- 当你修改
aws_launch_template的核心属性(如AMI、实例类型、安全组等)时,Terraform会自动创建新的启动模板版本,原版本不会被覆盖。 aws_launch_template资源的latest_version属性会自动同步为新创建版本的编号。aws_launch_template_default_version资源会监听latest_version的变化,一旦更新就会调用AWS API将对应版本设为启动模板的默认版本。
注意事项
- 确保你的AWS身份凭证拥有
ModifyLaunchTemplate权限,否则无法完成默认版本的设置。 - 如果启动模板使用
name_prefix而非固定name,直接引用aws_launch_template.app_server.name即可,Terraform会自动解析生成的实际名称。
内容的提问来源于stack exchange,提问作者milakay
相关产品推荐
相关产品推荐

