try:
args = {
'ImageId': self.image_ami,
'InstanceType': self.platform.instance_type,
'KeyName': self.platform.key_name,
'MaxCount': 1,
'MinCount': 1,
'SecurityGroupIds': [self.platform.security_group.id],
'SubnetId': self.platform.subnet.id,
'TagSpecifications': [{
'ResourceType': 'instance',
'Tags': [{'Key': 'Name', 'Value': self.platform.tag}]
}],
}
if self.user_data:
args['UserData'] = self.user_data
instances = self.platform.ec2_resource.create_instances(args)
self.instance = instances[0]
except botocore.exceptions.ClientError as error:
error_msg = error.response['Error']['Message']
raise util.PlatformError('start', error_msg)