我想了解是否有一种快速的语法来定义无服务器(在AWS lambda上部署)中的可选pathParameter。
这就是我的功能
功能:
MyFunc:
handler: handler.myFunc
events:
- http:
path: /getdata/{my_id}
method: get
request:
parameters:
paths:
my_id: true
我在互联网上发现了一种定义可选参数的技巧,例如:
path: /getdata/{?my_id}
,但不适用于无服务器。 而且我在部署时又遇到了这个错误:
Resource's path part only allow a-zA-Z0-9._- and curly braces at the beginning and the end.
我还想知道是否要更改:
my_id: false
会是我的情况(但事实并非如此)
那么什么是无服务器方式来使my_id可选,所以这两个http都调用:
http://.../getdata
http://.../getdata/12345
将由MyFunc管理吗?
希望有一个更清洁的解决方案,因为它不需要创建两个不同的端点/ func / lambda
谢谢
答案 0 :(得分:4)
定义两个事件。
MyFunc:
handler: handler.myFunc
events:
- http:
path: /getdata/
method: GET
- http:
path: /getdata/{id}
method: GET
然后,路径变量id
将与API Gateway一起使用。在您的Lambda代码中检查event.pathParameters.id
。请注意,因为如果未显示event.pathParameters
,则不必定义id
。
更新:
拥有
request:
parameters:
paths:
id: false
无服务器yaml中的对生成的CloudFormation模板没有任何影响。您可以使用sls package -p /package/dir
自己检查它。