This is good place to use **module.params. You don't need to extract all the args, and pass them individually to ElasticMapReduceManager. You may want ElasticMapReduceManager(*args, **kwargs): for the constructor, so it accepts all values. Then get constructor parameters using kwargs.get('ec2_keyname')