def load_settings(self, settings_file="zappa_settings.json", session=None): """ Load the local zappa_settings.json file. Returns the loaded Zappa object. """ # Ensure we're passesd a valid settings file. if not os.path.isfile(settings_file): print("Please configure your zappa_settings file.") quit() # pragma: no cover # Load up file try: with open(settings_file) as json_file: self.zappa_settings = json.load(json_file) except Exception as e: # pragma: no cover print("Problem parsing settings file.") print(e) quit() # pragma: no cover # Make sure that this environment is our settings if self.api_stage not in self.zappa_settings.keys(): print("Please define '%s' in your Zappa settings." % self.api_stage) quit() # pragma: no cover # We need a working title for this project. Use one if supplied, else cwd dirname. if 'project_name' in self.zappa_settings[ self.api_stage]: # pragma: no cover self.project_name = self.zappa_settings[ self.api_stage]['project_name'] else: self.project_name = self.slugify(os.getcwd().split(os.sep)[-1]) # The name of the actual AWS Lambda function, ex, 'helloworld-dev' self.lambda_name = self.project_name + '-' + self.api_stage # Load environment-specific settings self.s3_bucket_name = self.zappa_settings[self.api_stage]['s3_bucket'] self.vpc_config = self.zappa_settings[self.api_stage].get( 'vpc_config', {}) self.memory_size = self.zappa_settings[self.api_stage].get( 'memory_size', 512) self.app_function = self.zappa_settings[self.api_stage].get( 'app_function', None) self.aws_region = self.zappa_settings[self.api_stage].get( 'aws_region', 'us-east-1') self.debug = self.zappa_settings[self.api_stage].get('debug', True) self.prebuild_script = self.zappa_settings[self.api_stage].get( 'prebuild_script', None) # Create an Zappa object.. self.zappa = Zappa(session) self.zappa.aws_region = self.aws_region # Load your AWS credentials from ~/.aws/credentials self.zappa.load_credentials(session) # ..and configure it for setting in CUSTOM_SETTINGS: if self.zappa_settings[self.api_stage].has_key(setting): setattr(self.zappa, setting, self.zappa_settings[self.api_stage][setting]) return self.zappa
def load_settings(self, settings_file="zappa_settings.json", session=None): """ Load the local zappa_settings.json file. An existing boto session can be supplied, though this is likely for testing purposes. Returns the loaded Zappa object. """ # Ensure we're passed a valid settings file. if not os.path.isfile(settings_file): print("Please configure your zappa_settings file.") quit() # pragma: no cover # Load up file self.load_settings_file(settings_file) # Make sure that this environment is our settings if self.api_stage not in self.zappa_settings.keys(): print("Please define '{0!s}' in your Zappa settings.".format( self.api_stage)) quit() # pragma: no cover # We need a working title for this project. Use one if supplied, else cwd dirname. if 'project_name' in self.zappa_settings[ self.api_stage]: # pragma: no cover self.project_name = self.zappa_settings[ self.api_stage]['project_name'] else: self.project_name = slugify.slugify(os.getcwd().split(os.sep)[-1]) # The name of the actual AWS Lambda function, ex, 'helloworld-dev' # Django's slugify doesn't replace _, but this does. self.lambda_name = slugify.slugify(self.project_name + '-' + self.api_stage) # Load environment-specific settings self.s3_bucket_name = self.zappa_settings[self.api_stage]['s3_bucket'] self.vpc_config = self.zappa_settings[self.api_stage].get( 'vpc_config', {}) self.memory_size = self.zappa_settings[self.api_stage].get( 'memory_size', 512) self.app_function = self.zappa_settings[self.api_stage].get( 'app_function', None) self.aws_region = self.zappa_settings[self.api_stage].get( 'aws_region', 'us-east-1') self.debug = self.zappa_settings[self.api_stage].get('debug', True) self.prebuild_script = self.zappa_settings[self.api_stage].get( 'prebuild_script', None) self.profile_name = self.zappa_settings[self.api_stage].get( 'profile_name', None) self.log_level = self.zappa_settings[self.api_stage].get( 'log_level', "DEBUG") self.domain = self.zappa_settings[self.api_stage].get('domain', None) self.timeout_seconds = self.zappa_settings[self.api_stage].get( 'timeout_seconds', 30) self.use_apigateway = self.zappa_settings[self.api_stage].get( 'use_apigateway', True) self.lambda_handler = self.zappa_settings[self.api_stage].get( 'lambda_handler', 'handler.lambda_handler') self.remote_env_bucket = self.zappa_settings[self.api_stage].get( 'remote_env_bucket', None) self.remote_env_file = self.zappa_settings[self.api_stage].get( 'remote_env_file', None) self.zappa = Zappa(boto_session=session, profile_name=self.profile_name, aws_region=self.aws_region) for setting in CUSTOM_SETTINGS: if setting in self.zappa_settings[self.api_stage]: setattr(self.zappa, setting, self.zappa_settings[self.api_stage][setting]) return self.zappa
def load_settings(self, settings_file="zappa_settings.json", session=None): """ Load the local zappa_settings.json file. An existing boto session can be supplied, though this is likely for testing purposes. Returns the loaded Zappa object. """ # Ensure we're passesd a valid settings file. if not os.path.isfile(settings_file): print("Please configure your zappa_settings file.") quit() # pragma: no cover # Load up file self.load_settings_file(settings_file) # Make sure that this environment is our settings if self.api_stage not in self.zappa_settings.keys(): print("Please define '%s' in your Zappa settings." % self.api_stage) quit() # pragma: no cover # We need a working title for this project. Use one if supplied, else cwd dirname. if 'project_name' in self.zappa_settings[self.api_stage]: # pragma: no cover self.project_name = self.zappa_settings[self.api_stage]['project_name'] else: self.project_name = slugify.slugify(os.getcwd().split(os.sep)[-1]) # The name of the actual AWS Lambda function, ex, 'helloworld-dev' # Django's slugify doesn't replace _, but this does. self.lambda_name = slugify.slugify(self.project_name + '-' + self.api_stage) # Load environment-specific settings self.s3_bucket_name = self.zappa_settings[self.api_stage]['s3_bucket'] self.vpc_config = self.zappa_settings[ self.api_stage].get('vpc_config', {}) self.memory_size = self.zappa_settings[ self.api_stage].get('memory_size', 512) self.app_function = self.zappa_settings[ self.api_stage].get('app_function', None) self.aws_region = self.zappa_settings[ self.api_stage].get('aws_region', 'us-east-1') self.debug = self.zappa_settings[ self.api_stage].get('debug', True) self.prebuild_script = self.zappa_settings[ self.api_stage].get('prebuild_script', None) self.profile_name = self.zappa_settings[ self.api_stage].get('profile_name', None) self.log_level = self.zappa_settings[ self.api_stage].get('log_level', "DEBUG") self.domain = self.zappa_settings[ self.api_stage].get('domain', None) # Create an Zappa object.. self.zappa = Zappa(session) # Explicitly set our AWS Region self.zappa.aws_region = self.aws_region # Load your AWS credentials from ~/.aws/credentials self.zappa.load_credentials(session, self.profile_name) # ..and configure it for setting in CUSTOM_SETTINGS: if self.zappa_settings[self.api_stage].has_key(setting): setattr(self.zappa, setting, self.zappa_settings[ self.api_stage][setting]) return self.zappa