【问题标题】:aws lambda with API gateway integration - accessing api name and type of http request具有 API 网关集成的 aws lambda - 访问 api 名称和 http 请求的类型
【发布时间】:2018-05-18 08:54:51
【问题描述】:

我对亚马逊 api 网关的工作方式感到困惑。 lambda 函数如何了解正在调用的 API 以及它所代表的 HTTP 请求类型?

例如,当在本地运行 web.py 服务器时,我将输入 URL app/api/getInfo?key=foobar 并使用 web.py 我能够获取 API 名称和 GET 请求的正文即 JSON 格式的 {'key' : 'foobar'}

lambda 函数具有以下结构:

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

我需要在请求正文中传入 api 名称吗?或者有没有办法配置API网关通过事件参数获取API名称?知道它是 get 还是 post 方法的同样问题

【问题讨论】:

标签: python api amazon-web-services aws-lambda aws-api-gateway


【解决方案1】:

API Gateway 使用“Lambda 代理”集成来调用 Lambda 函数。调用函数时,Web 请求对象将作为 event 对象传递给 Lambda 函数。该对象是一个 JSON 字典,Web 请求的所有参数都在 event 对象中传递。详细参数列表见here

{
    "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"
}

【讨论】:

    猜你喜欢
    • 2021-05-28
    • 2020-01-22
    • 2017-04-24
    • 2015-10-01
    • 2019-05-02
    • 2018-09-26
    • 2020-07-26
    • 2020-09-30
    • 2023-03-08
    相关资源
    最近更新 更多