koa*_*aok 3 lambda http serverless
我想了解是否有用于在无服务器中定义可选路径参数的快速语法(部署在 AWS lambda 上)。
这是我的功能
职能:
MyFunc:
handler: handler.myFunc
events:
- http:
path: /getdata/{my_id}
method: get
request:
parameters:
paths:
my_id: true
Run Code Online (Sandbox Code Playgroud)
我在互联网上发现了一个定义可选参数的技巧,例如:
path: /getdata/{?my_id}
Run Code Online (Sandbox Code Playgroud)
但它不适用于无服务器。我在部署时恢复了这个错误:
Resource's path part only allow a-zA-Z0-9._- and curly braces at the beginning and the end.
Run Code Online (Sandbox Code Playgroud)
我也想知道是否改变:
my_id: false
Run Code Online (Sandbox Code Playgroud)
会是我的情况(但事实并非如此)
那么让 my_id 可选的无服务器方式是什么,所以两个 http 调用:
http://.../getdata
http://.../getdata/12345
Run Code Online (Sandbox Code Playgroud)
将由 MyFunc 管理?
希望有一个更清晰的解决方案,因为需要创建两个不同的端点/func/lambda
谢谢
定义两个事件。
MyFunc:
handler: handler.myFunc
events:
- http:
path: /getdata/
method: GET
- http:
path: /getdata/{id}
method: GET
Run Code Online (Sandbox Code Playgroud)
然后路径变量id将与 API Gateway 一起使用。在您的 lambda 代码中检查event.pathParameters.id. 小心,因为event.pathParameters如果id没有出现就不必定义。
更新:
拥有
request:
parameters:
paths:
id: false
Run Code Online (Sandbox Code Playgroud)
在无服务器 yaml 中对生成的 CloudFormation 模板没有任何影响。您可以使用sls package -p /package/dir.
| 归档时间: |
|
| 查看次数: |
3407 次 |
| 最近记录: |