Контекст лямбда-обработчика aws_request_id с использованием установки pytest - PullRequest
1 голос
/ 08 июля 2019

Я могу смоделировать событие в pytest , чтобы проверить lambda_handler (событие, контекст), но не смог протестировать context , и из контекста используется только aws_request_id.Я пытаюсь следовать.

context = {
            'aws_request_id': 'abcdef',
            'log_stream_name': '1f73402ad',
            'invoked_function_arn': 'arn:aws:lambda:region:1000:function:TestCFStackNam-TestLambdaFunctionResourceName-ABC-1234F',
            'client_context': None,
            'log_group_name': '/aws/lambda/TestCFStackName-TestLambdaFunctionResourceName-ABC-1234F',
            'function_name': 'TestCloudFormationStackName-TestLambdaFunctionResourceName--ABC-1234F',
            'function_version': '$LATEST',
            'identity': '<__main__.CognitoIdentity object at 0x1fb81abc00>',
            'memory_limit_in_mb': '128'
}


lambda_handler(event, context)
aws_request_id = context.aws_request_id

Error - 

  AttributeError: 'dict' object has no attribute 'aws_request_id'

1 Ответ

1 голос
/ 08 июля 2019

Это

aws_request_id = context.aws_request_id

не так, как вы получаете доступ к значениям, хранящимся в словаре в Python. Измените его на

aws_request_id = context['aws_request_id']
...