Возврат кода состояния HTTP из Lambda через шлюз API

У меня есть настройка Lambda с обработчиком Python, для которого я создал конечную точку API для получения только методов POST. Чего я не могу понять, так это того, как моя лямбда должна сообщать шлюзу API, что все успешно завершено, и возвращать код состояния HTTP 200. Кто-нибудь решился на этот путь?


person Ethan    schedule 28.10.2015    source источник


Ответы (3)


В Python lambda просто сделайте

raise Exception('notfound')

Вместо notfound используйте любое другое ключевое слово.

Затем в apigateway вам нужно сопоставить 'notfound' с некоторым кодом состояния ответа. Я использую для этого чванство, вот пример того, как отслеживать 'notfound':

       "/tags/getById": {
          "get": {
            "summary": "Find the tag by it's ID",
            "produces": [
              "application/json"
            ],
            "responses": {
              "200": {
                "description": "successful operation",
                "schema": {
                  "$ref": "#/definitions/Tag"
                }
              },
              "404": {
                "description": "No tag found"
              }
            },
            "parameters": [xxxxxxx],
            "x-amazon-apigateway-integration": {
              "requestTemplates": {xxxxx},
              "uri": {xxxxxx},
              "responses": {
                "default": {
                  "statusCode": "200"
                },
                "notfound": {
                  "statusCode": "404"
                }

              },
              "httpMethod": "POST",
              "type": "aws"
            }
          }
       }
person Ivan Borshchov    schedule 19.01.2017

Вы должны быть в состоянии достичь своей цели, используя возвращаемое значение вашего обработчика. См. официальные Типы обработчиков моделей AWS Lambda Python< /а>.

Вам также необходимо правильно настроить API Gateway для вашего Integration Response. Дополнительную информацию о том, как это делается, можно найти в официальном Вводный пост в блоге API Gateway, наиболее важным из которых является раздел Integration Response.

person adamkonrad    schedule 30.10.2015

Мне нужны были и другие коды ошибок http, такие как 400 и 500, поэтому я написал ответ здесь. Смотрите его для получения дополнительной информации:

https://stackoverflow.com/a/41343990/984471

person Manohar Reddy Poreddy    schedule 27.12.2016