AWS lambda 与API gateway 集成时,参数(mapping)的传递方式
一、非代理lambda(自定义lambda) 需要自己构建映射
eg:
{
"city": "$input.params('city')",
"time": "$input.params('time')",
"day": "$input.params('day')",
"name": "$inputRoot.callerName"
}
https://oq7all40u3.execute-api.cn-north-1.amazonaws.com.cn/test/test?time=123456
event 会收到您传递的数据
{
"time": "123456"
}
二、代理集成lambda
在 Lambda 代理集成中,当客户端提交 API 请求时,API Gateway 会按原样将原始请求传递给集成的 Lambda 函数,但不会保留请求参数的顺序。
eg: https://oq7all40u3.execute-api.cn-north-1.amazonaws.com.cn/test/test?time=123456
Lambda event收到的数据
{
"resource": "/test",
"path": "/test",
"httpMethod": "GET",
"headers": {
"accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3",
"accept-encoding": "gzip, deflate, br",
"accept-language": "zh-CN,zh;q=0.9,en-US;q=0.8,en;q=0.7,ja-JP;q=0.6,ja;q=0.5,zh-TW;q=0.4",
"Host": "oq7all40u3.execute-api.cn-north-1.amazonaws.com.cn",
"sec-fetch-mode": "navigate",
"sec-fetch-site": "none",
"sec-fetch-user": "?1",
"upgrade-insecure-requests": "1",
"User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36",
"X-Amzn-Trace-Id": "Root=1-5d8d8250-1f8874904764cbb8b777e598",
"X-Forwarded-For": "119.254.228.2",
"X-Forwarded-Port": "443",
"X-Forwarded-Proto": "https"
},
"multiValueHeaders": {
"accept": ["text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3"],
"accept-encoding": ["gzip, deflate, br"],
"accept-language": ["zh-CN,zh;q=0.9,en-US;q=0.8,en;q=0.7,ja-JP;q=0.6,ja;q=0.5,zh-TW;q=0.4"],
"Host": ["oq7all40u3.execute-api.cn-north-1.amazonaws.com.cn"],
"sec-fetch-mode": ["navigate"],
"sec-fetch-site": ["none"],
"sec-fetch-user": ["?1"],
"upgrade-insecure-requests": ["1"],
"User-Agent": ["Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36"],
"X-Amzn-Trace-Id": ["Root=1-5d8d8250-1f8874904764cbb8b777e598"],
"X-Forwarded-For": ["119.254.228.2"],
"X-Forwarded-Port": ["443"],
"X-Forwarded-Proto": ["https"]
},
"queryStringParameters": {
"time": "123456"
},
"multiValueQueryStringParameters": {
"time": ["123456"]
},
"pathParameters": null,
"stageVariables": null,
"requestContext": {
"resourceId": "e837yf",
"resourcePath": "/test",
"httpMethod": "GET",
"extendedRequestId": "AqFMnH2NBTIFXSQ=",
"requestTime": "27/Sep/2019:03:30:24 +0000",
"path": "/test/test",
"accountId": "936669166135",
"protocol": "HTTP/1.1",
"stage": "test",
"domainPrefix": "oq7all40u3",
"requestTimeEpoch": 1569555024662,
"requestId": "dc58012d-438c-4298-bc8d-75dd4bee8562",
"identity": {
"cognitoIdentityPoolId": null,
"accountId": null,
"cognitoIdentityId": null,
"caller": null,
"sourceIp": "119.254.228.2",
"principalOrgId": null,
"accessKey": null,
"cognitoAuthenticationType": null,
"cognitoAuthenticationProvider": null,
"userArn": null,
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36",
"user": null
},
"domainName": "oq7all40u3.execute-api.cn-north-1.amazonaws.com.cn",
"apiId": "oq7all40u3"
},
"body": null,
"isBase64Encoded": false
}
三、参数格式为路径参数
eg:传入参数123456 方式
https://oq7all40u3.execute-api.cn-north-1.amazonaws.com.cn/test/test/123456
需要使用代理资源{proxy+}
故天将降大任于是人也,必先苦其心志,劳其筋骨,饿其体肤,空乏其身,行拂乱其所为,所以动心忍性,曾益其所不能。

浙公网安备 33010602011771号