我对亚马逊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名称?同样的问题是要知道它是获取还是后期方法
答案 0 :(得分:1)
API网关使用“Lambda代理”集成来调用Lambda函数。调用该函数时,Web请求对象将作为事件对象传递给Lambda函数。此对象是JSON字典,Web请求的所有参数都在事件对象中传递。可以找到详细的参数列表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"
}