首页 文章

aws lambda与API网关集成 - 访问api名称和http请求的类型

提问于
浏览
0

我对亚马逊api网关如何工作感到困惑 . lambda函数如何查看所调用的API以及它所代表的HTTP请求的类型?

例如,在本地运行web.py服务器时,我能够获取GET请求的API名称和主体,即JSON中的 {'key' : 'foobar'} .

lambda函数具有以下结构:

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

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

1 回答

  • 1

    API网关使用"Lambda Proxy" Integration来调用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"
    }
    

相关问题