def get_function_for_aws_event(self, record):
        """
        Get the associated function to execute for a triggered AWS event

        Support S3, SNS, DynamoDB, kinesis and SQS events
        """
        if 's3' in record:
            if ':' in record['s3']['configurationId']:
                return record['s3']['configurationId'].split(':')[-1]

        arn = None
        if 'Sns' in record:
            try:
                message = json.loads(record['Sns']['Message'])
                if message.get('command'):
                    return message['command']
            except ValueError:
                pass
            arn = record['Sns'].get('TopicArn')
        elif 'dynamodb' in record or 'kinesis' in record:
            arn = record.get('eventSourceARN')
        elif 'eventSource' in record and record.get('eventSource') == 'aws:sqs':
            arn = record.get('eventSourceARN')
        elif 's3' in record:
            arn = record['s3']['bucket']['arn']

        if arn:
            return self.settings.AWS_EVENT_MAPPING.get(arn)

        return None
def get_function_for_aws_event ( self , record ) : if 's3' in record : if ':' in record [ 's3' ] [ 'configurationId' ] : return record [ 's3' ] [ 'configurationId' ] . split ( ':' ) [ - 1 ] arn = None if 'Sns' in record : try : message = json . loads ( record [ 'Sns' ] [ 'Message' ] ) if message . get ( 'command' ) : return message [ 'command' ] except ValueError : pass arn = record [ 'Sns' ] . get ( 'TopicArn' ) elif 'dynamodb' in record or 'kinesis' in record : arn = record . get ( 'eventSourceARN' ) elif 'eventSource' in record and record . get ( 'eventSource' ) == 'aws:sqs' : arn = record . get ( 'eventSourceARN' ) elif 's3' in record : arn = record [ 's3' ] [ 'bucket' ] [ 'arn' ] if arn : return self . settings . AWS_EVENT_MAPPING . get ( arn ) return None
Get the associated function to execute for a triggered AWS event

        Support S3, SNS, DynamoDB, kinesis and SQS events