def create_launch_configuration( name, ami_id, key_name=None, security_groups=None, instance_type="t2.micro", public_ip=False, role_profile=None, user_data=None, user_data_file=None): """Create a launch configuration.""" client = get_client("autoscaling") params = {} params["LaunchConfigurationName"] = name params["ImageId"] = ami_id if key_name: params["KeyName"] = key_name if security_groups: params["SecurityGroups"] = security_groups params["InstanceType"] = instance_type params["InstanceMonitoring"] = {"Enabled": False} if role_profile: params["IamInstanceProfile"] = role_profile params["AssociatePublicIpAddress"] = public_ip if user_data: params["UserData"] = user_data elif user_data_file: params["UserData"] = get_file_contents(user_data_file) response = client.create_launch_configuration(**params) return response
def create_instance( ami_id, security_group_id, key_name=None, instance_type="t2.micro", user_data=None, user_data_file=None): """Create an EC2 instance.""" client = get_client("ec2") params = {} params["ImageId"] = ami_id params["MinCount"] = 1 params["MaxCount"] = 1 params["SecurityGroupIds"] = [security_group_id] if key_name: params["KeyName"] = key_name params["InstanceType"] = instance_type if user_data: params["UserData"] = user_data elif user_data_file: params["UserData"] = get_file_contents(user_data_file) response = client.run_instances(**params) return response