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)