Модульное тестирование макета AWS Lambda Function, Python - PullRequest
1 голос
/ 08 марта 2019

У меня есть лямбда-функция aws, которая загружает изображение dicom, находящееся в контейнере s3, на сторонний сервер и получает ответ.Как мне издеваться над лямбда-функцией, используя pytest mock?

1 Ответ

1 голос
/ 08 марта 2019

Вы можете использовать следующий объект в качестве фиктивного объекта

event = {
      "Records": [
        {
          "eventVersion": "2.0",
          "eventSource": "aws:s3",
          "awsRegion": "us-east-1",
          "eventTime": "2016-09-25T05:15:44.261Z",
          "eventName": "ObjectCreated:Put",
          "userIdentity": {
            "principalId": "AWS:AROAW5CA2KAGZPAWYRL7K:cli"
          },
          "requestParameters": {
            "sourceIPAddress": "222.24.107.21"
          },
          "responseElements": {
            "x-amz-request-id": "00093EEAA5C7G7F2",
            "x-amz-id-2": "9tTklyI/OEj4mco12PgsNksgxAV3KePn7WlNSq2rs+LXD3xFG0tlzgvtH8hClZzI963KYJgVnXw="
          },
          "s3": {
            "s3SchemaVersion": "1.0",
            "configurationId": "151dfa64-d57a-4383-85ac-620bce65f269",
            "bucket": {
              "name": "service-1474780369352-1",
              "ownerIdentity": {
                "principalId": "A3QLJ3P3P5QY05"
              },
              "arn": "arn:aws:s3:::service-1474780369352-1"
            },
            "object": {
              "key": "object",
              "size": 11,
              "eTag": "5eb63bbbe01eetd093cb22bb8f5acdc3",
              "sequencer": "0057E75D80IA35C3E0"
            }
          }
        }
      ]
    }

и затем вызовите функцию lamda с событием и нулем для контекста

lamda_function(event,null)

Вы можете найти больше шаблонов событий lamda здесь

...