我的lambda主要在运行,并且可以响应查询变量,例如?zip_code=90210
使用查询字符串变量检查,它对于一个邮政编码来说可以正常工作
event["queryStringParameters"] && event["queryStringParameters"]['zip_code']
一个邮政编码作为查询参数。
我在让它响应路径时遇到问题,例如/zips
在尝试检查路径/zips
是否从实际的API网关传递时,我陷入了困境。
我已经创建了该路径。我可以使用带有pathStringParameters['zips']
但是当我从APIgateway调用lambda时,无法识别数据结构。
代码:
zip_code = ''
p event["pathStringParameters"] # This gives {zips => true}
p "---"
if event["pathStringParameters"]
if event["pathStringParameters"]['zips'] == 'true' # Works in testing but not from API
zip_code = "10000,20000,30000"
end
end
if zip_code == ''
if event["queryStringParameters"] && event["queryStringParameters"]['zip_code']
zip_code = event["queryStringParameters"]['zip_code']
else
p "fail through default values"
zip_code = "88888,77777,66666" # So the API /zips ends up returning these
end
end
如何获取lambda以“ 10000,20000,30000”响应来响应API网关(数字无关紧要,我的意思是那段代码)。
测试一个zip的事件数据(可以通过api和api正常运行):
{
"queryStringParameters": {
"zip_code": "40505"
}
}
所有zip的测试数据(在测试事件中有效,但在API中无效)
{
"pathStringParameters": {
"zips": "true"
}
}
日志显示:
Sun Sep 15 00:16:32 UTC 2019 : HTTP Method: GET, Resource Path: /zips
Sun Sep 15 00:16:32 UTC 2019 : Method request path: {}
Sun Sep 15 00:16:32 UTC 2019 : Method request query string: {}
Sun Sep 15 00:16:32 UTC 2019 : Method request headers: {}
不确定我是否混淆了路径/资源/ URL。毕竟,我不需要像/zip/02130/
这样的资源,我只想要端点/zips
的所有zip