是否可以使用实例模板中的run_instances?

时间:2018-02-05 21:18:31

标签: amazon-web-services amazon-ec2 boto3 aws-cli

我想使用具有实例细节的启动模板,然后将其与run_instances一起用于调度许多类似的实例。我有理由不使用Autoscaling。

我做了以下

 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)

这产生了以下错误:

  

raise error_class(parsed_response,operation_name)botocore.exceptions.ClientError:发生错误(InvalidParameterCombination)调用RunInstances操作时:无法在同一请求中指定启动模板ID和启动模板名称

我做错了什么?

1 个答案:

答案 0 :(得分:3)

基于API documentation

  

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

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

您应该只指定LaunchTemplateIdLaunchTemplateName

尝试将lt_specifics更改为

lt_specifics = {
    'LaunchTemplateId': launchTemplateId
}

Version不是必需的,默认情况下默认为启动模板