in functions/source/utilities.py [0:0]
def handler(event, context):
status = cfnresponse.SUCCESS
responseData = {}
if event['RequestType'] == 'Delete':
return cfnresponse.send(event, context, status, responseData, None)
try:
length = int(event['ResourceProperties']['Length'])
except:
status = cfnresponse.FAILED
return cfnresponse.send(event, context, status, responseData, None)
try:
punctuation = event['ResourceProperties']['Punctuation']
except KeyError:
punctuation = False
try:
rds_compatible = event['ResourceProperties']['RDSCompatible']
except KeyError:
rds_compatible = False
valid_characters = string.ascii_letters+string.digits
if punctuation not in [False,'false','False']:
valid_characters = valid_characters + string.punctuation
if rds_compatible not in [False,'false','False']:
valid_characters = valid_characters.translate(None,'@/"')
random_string = ''.join(random.choice(valid_characters) for i in range(length))
responseData['RandomString'] = random_string.lower()
return cfnresponse.send(event, context, status, responseData, None)