AWS лямбда с интеграцией API-шлюза - доступ к имени API и тип HTTP-запроса - PullRequest
0 голосов
/ 18 мая 2018

Я не понимаю, как работает шлюз Amazon API.Как лямбда-функция может видеть, какой API вызывается и какой тип HTTP-запроса она представляет?

Например, при локальном запуске сервера web.py я бы вводил URL-приложение / api /getInfo? key = foobar и используя web.py, я смогу получить имя API и тело GET-запроса, например {'key' : 'foobar'} в JSON.

Лямбда-функция имеет следующую структуру:

def test(event, context):
    # do something
    return response

Нужно ли указывать имя API в теле запроса?Или есть способ настроить шлюз API для получения имени API через параметр события?Тот же вопрос, чтобы узнать, метод get или post

1 Ответ

0 голосов
/ 23 мая 2018

API-шлюз использует интеграцию Lambda Proxy для вызова функции Lambda.Когда функция вызывается, объект веб-запроса передается в Лямбда-функцию как объект event .Этот объект представляет собой словарь JSON, и все параметры веб-запроса передаются в объекте event .Подробный список параметров можно найти здесь .

{
    "resource": "Resource path",
    "path": "Path parameter",
    "httpMethod": "Incoming request's method name"
    "headers": {Incoming request headers}
    "queryStringParameters": {query string parameters }
    "pathParameters":  {path parameters}
    "stageVariables": {Applicable stage variables}
    "requestContext": {Request context, including authorizer-returned key-value pairs}
    "body": "A JSON string of the request payload."
    "isBase64Encoded": "A boolean flag to indicate if the applicable request payload is Base64-encode"
}
...