def generate_updated_cfn_parameters()

in lambda/auto-rbr-generate/cloudformation_actions.py [0:0]


def generate_updated_cfn_parameters(queryList):
    parameters = cloudformation_client.describe_stacks(
    StackName=stackName)['Stacks'][0]['Parameters']
    #Update parameter keys with values from Athena Queries if they exist, checking for min/max requirements
    print ("Update Parameters from Athena Results")
    for q in queryList.keys():
        id = queryList[q]['Id']
        r = athena_client.get_query_results(QueryExecutionId=id)
        if 'VarCharValue' in r['ResultSet']['Rows'][1]['Data'][0]:
            v = int(int(r['ResultSet']['Rows'][1]['Data'][0]['VarCharValue']) * buffer)
            if v < queryList[q]['MinValue']:
                v = queryList[q]['MinValue']
            if v > queryList[q]['MaxValue']:
                v = queryList[q]['MaxValue']
            queryList[q]['Result'] = v
    for p in parameters:
        for q in queryList.keys():
            if p['ParameterKey'] == q:
                if 'Result' in queryList[q]:
                    p['ParameterValue'] = str(queryList[q]['Result'])
    return(parameters)