def create_and_upload()

in lambda/source/create_input_files.py [0:0]


def create_and_upload(template_s3_url, local_param_file, local_userinput_file, s3bucket):
    '''
    Main function - parse cloudformation template from S3URL and generate
    parameter.json and parameter.yaml files.
    '''
    try:
        result = cfn_client.validate_template(TemplateURL=template_s3_url)
        
        # create parameter.json structure
        param_obj = result['Parameters']
        for obj in param_obj:
            [obj.pop(k) for k in list(obj.keys()) if k != 'ParameterKey']
            obj['ParameterValue'] = "{{ "+ obj['ParameterKey'] + " }}"
        
        param_str = json.dumps(param_obj, indent=2, separators=(',', ': '))
        
        dict = { "\"{{":"{{", "}}\"":"}}" }
        cfn_params = search_and_replace(param_str, dict)
        
        userinput_content = generate_userinput_params(param_obj)
        #cfn_params = search_and_replace(json.dumps(param_obj, indent=2, separators=(',', ': ')))
        
        # generate user_input yaml parameter file and upload to s3
        utils.write_to_file('/tmp/'+local_userinput_file, userinput_content)
        utils.upload_to_s3(s3bucket, '/tmp/'+local_userinput_file, local_userinput_file)
        
        # generate parameter.json file and upload to s3
        utils.write_to_file('/tmp/'+local_param_file, cfn_params)
        utils.upload_to_s3(s3bucket, '/tmp/'+local_param_file, local_param_file)
        
    except Exception as e:
        print(e)