如何通过Python/Boto3移除组件创建AWS启动模板版本?
用Boto3创建移除KeyName的启动模板新版本
要实现保留原启动模板所有配置但移除KeyName的新版本,不能直接给KeyName设None或空值——这不符合AWS EC2 API的要求。正确的做法是利用API提供的删除属性专用参数,具体操作如下:
- 调用
create_launch_template_version时,指定基于原模板的目标版本(比如最新版本$Latest)创建新版本 - 在
LaunchTemplateData参数中设置DeleteKeyName=True,这个参数会告诉AWS移除原模板中的KeyName配置,其余属性自动继承原版本的设置
示例代码
import boto3 # 初始化EC2客户端 ec2_client = boto3.client('ec2') # 创建移除KeyName的启动模板新版本 response = ec2_client.create_launch_template_version( LaunchTemplateName='你的启动模板名称', SourceVersion='$Latest', # 可替换为具体版本号,比如'1' LaunchTemplateData={ 'DeleteKeyName': True }, VersionDescription='移除KeyName的新版本' ) # 验证结果,打印新版本详情 print(response['LaunchTemplateVersion'])
补充说明
- 该逻辑适用于移除启动模板中的其他属性,比如要移除
IamInstanceProfile,就设置DeleteIamInstanceProfile=True,以此类推 SourceVersion必须指定,否则会创建一个全新的空模板版本,而非基于原版本修改
内容的提问来源于stack exchange,提问作者Boris Trukhnov
相关产品推荐
相关产品推荐

