def get_all_lambda()

in Back-End/lambdas/receive_sqs_message.py [0:0]


def get_all_lambda(account_number, region, cross_account_role):

    # Init
    var_list = []

    # Change boto client
    client_lambda = create_boto_client(
        account_number, region, 'lambda', cross_account_role)

    # Page all ec2
    paginator = client_lambda.get_paginator('list_functions')

    for page in paginator.paginate():
        for i in page['Functions']:

            # clean role name out of arn
            iam_role = str(i['Role']).split(':')[5].split('/')[1]

            lambda_arn = i['FunctionArn']
            lambda_name = i['FunctionName']

            # Try Get Tags
            try:
                lambda_tag = client_lambda.list_tags(Resource=lambda_arn)['Tags']
            except ClientError as e:
                lambda_tag = 'No Tags Exist'

            var_list.append(
                {
                    'EntryType': 'lambda',
                    'Region': str(region),
                    'FunctionName': str(lambda_name),
                    'Id': str(lambda_arn),
                    'Runtime': str(i['Runtime']),
                    'AccountNumber': str(account_number),
                    'Timeout': str(i['Timeout']),
                    'RoleName': str(iam_role),
                    'Handler': str(i['Handler']),
                    'CodeSize': int(i['CodeSize']),
                    'Link': str(f'https://{region}.console.aws.amazon.com/lambda/home?region={region}#/functions/{lambda_name}'),
                    'Version': str(i['Version']),
                    'MemorySize': int(i['MemorySize']),
                    'LastModified': str(i['LastModified']),
                    'Tags': str(lambda_tag)
                })

    return var_list