Amazon web services 是否可以从实例模板使用run_实例?

Amazon web services 是否可以从实例模板使用run_实例?,amazon-web-services,amazon-ec2,boto3,aws-cli,Amazon Web Services,Amazon Ec2,Boto3,Aws Cli,我希望使用具有实例细节的启动模板,然后将其与run_实例一起使用,以分派许多类似的实例。我有理由不使用自动缩放 我做了以下几件事 ec2_client = boto3.client('ec2',aws_access_key_id = AWS_ACCESS_KEY, aws_secret_access_key = AWS_SECRET_KEY) response = ec2_client.describe_key_pairs() print(response) lt = ec2_client

我希望使用具有实例细节的启动模板,然后将其与run_实例一起使用,以分派许多类似的实例。我有理由不使用自动缩放

我做了以下几件事

 ec2_client = boto3.client('ec2',aws_access_key_id = AWS_ACCESS_KEY, aws_secret_access_key = AWS_SECRET_KEY)

response = ec2_client.describe_key_pairs()
print(response)

lt = ec2_client.create_launch_template(
LaunchTemplateName='aLaunchTemplate',  
LaunchTemplateData={ 
    'EbsOptimized': True, 
    'IamInstanceProfile': {  
        'Arn': 'arn:aws:iam::*************:instance-profile/******',  
        'Name': '*******' 
    },    
    'ImageId': 'ami-*******', 
    'InstanceType': 't2.micro', 
    'KeyName': 'FirstKeyPair', 
    'Monitoring': { 
        'Enabled': True  
    },    
    'InstanceInitiatedShutdownBehavior': 'terminate',  
    'UserData': userData,  
     'SecurityGroupIds': [ 
        'sg-********' 
    ], 
    'SecurityGroups': [  
        'sg-********'  
    ] 
    })

launchTemplateName = lt['LaunchTemplate']['LaunchTemplateName']
launchTemplateId = lt['LaunchTemplate']['LaunchTemplateId']

print " Instance Template Name : " , "<",launchTemplateName,"> with <Id : ",launchTemplateId,">"

lt_specifics = {
    'LaunchTemplateId': launchTemplateId,
    'LaunchTemplateName': launchTemplateName,
    'Version': 'default'
}

launchedInstances = ec2_client.run_instances(MaxCount=2,MinCount=1,LaunchTemplate=lt_specifics)
ec2\u client=boto3.client('ec2',aws\u access\u key\u id=aws\u access\u key,aws\u secret\u access\u key=aws\u secret\u key)
响应=ec2\u客户端。描述\u密钥对()
打印(答复)
lt=ec2\u客户端。创建\u启动\u模板(
LaunchTemplateName='aLaunchTemplate',
LaunchTemplateData={
“EbsOptimized”:正确,
'IAMSInstanceProfile':{
“Arn”:“Arn:aws:iam::*************:实例配置文件/*******”,
“名称”:“********”
},    
“ImageId”:“ami-*******”,
“InstanceType”:“t2.micro”,
“KeyName”:“FirstKeyPair”,
“监视”:
“已启用”:True
},    
'InstanceInitiatedShutdownBehavior':'terminate',
“UserData”:UserData,
“SecurityGroupId”:[
“sg-********”
], 
“安全组”:[
“sg-********”
] 
})
launchTemplateName=lt['LaunchTemplate']['launchTemplateName']
launchTemplateId=lt['LaunchTemplate']['launchTemplateId']
打印“实例模板名称:”,“带”
lt_详细信息={
“LaunchTemplateId”:LaunchTemplateId,
“LaunchTemplateName”:LaunchTemplateName,
“版本”:“默认值”
}
launchedInstances=ec2\u客户端。运行\u实例(MaxCount=2,MinCount=1,LaunchTemplate=lt\u详细信息)
这产生了以下错误:

引发错误\u类(已解析的\u响应,操作\u名称)botocore.exceptions.ClientError:调用RunInstances操作时发生错误(InvalidParameterCombination):无法在同一请求中指定启动模板ID和启动模板名称

我做错了什么

根据

必须指定启动模板ID或启动模板名称 在请求中

在您的示例中,您提供了两者

您应该只指定
LaunchTemplateId
LaunchTemplateName

尝试将
lt\u详细信息
更改为

lt_specifics = {
    'LaunchTemplateId': launchTemplateId
}
不需要
版本
,它将根据

必须指定启动模板ID或启动模板名称 在请求中

在您的示例中,您提供了两者

您应该只指定
LaunchTemplateId
LaunchTemplateName

尝试将
lt\u详细信息
更改为

lt_specifics = {
    'LaunchTemplateId': launchTemplateId
}

Version
不是必需的,它将默认启动模板默认值

您可以从运行实例调用中使用的
lt\u specifics
JSON中删除
LaunchTemplateId
LaunchTemplateName
,然后重试吗it@KrishnaKumarR它不起作用。现在的错误是:必须在请求中指定启动模板ID或启动模板名称您可以从运行实例调用中使用的
lt\u specifics
JSON中删除
LaunchTemplateId
LaunchTemplateName
,然后重试吗it@KrishnaKumarR它不起作用。现在的错误是:必须在请求中指定启动模板ID或启动模板名称