我在模块中有方法“ DB_Update” 。
此方法需要几个参数作为输入(InputA,InputB和InputC)
module.exports.DB_Update = async (event) =>
{
//extract Parameters from event
InputA= event.pathParameters.InputA
InputB= event.pathParameters.InputB
InputC= event.pathParameters.InputC
// Update Items in DB based on Input
//...
}
我想使用 serverless 和 AWS API网关
通过API请求调用该功能因此在我的无服务器yml文件中,我添加了该功能
DB_Update:
handler: ../DB_Update
events:
- http:
path: DB_Update/{InputA, InputB, InputB}
method: get
最后,我使用参数通过邮递员调用了端点
http://localhost:3000/dev/DB_Update/InputA=9783404163809&InputB=111&InputC=BB
但是,无论我尝试哪种轮换方式,我都无法正常工作。 yml不接受输入参数的组合,或者我没有得到事件对象。
因此,如果您能给我一个提示如何完成这项工作,那就太好了。谢谢!
答案 0 :(得分:1)
您需要确定是否要将参数作为路径参数(例如baseurl/{varA}/{varB}/{varC}
)或查询参数(例如baseurl?varA=x&varB=y&varC=z
)进行传递。 This answer提供了有关不同模式的更多见解。
根据您决定的模式,请求参数应以以下格式包含在serverless.yml
文件中(如果需要,请将字段设置为true
,如果需要则将字段设置为false
) :
路径参数
DB_Update:
handler: ../DB_Update
events:
- http:
path: DB_Update/{InputA}/{InputB}/{InputC}
method: get
request:
parameters:
paths:
InputA: true
InputB: true
InputC: true
查询参数:
DB_Update:
handler: ../DB_Update
events:
- http:
path: DB_Update
method: get
request:
parameters:
querystrings:
InputA: true
InputB: true
InputC: true
访问无服务器框架文档的this section,以获取更多信息。
答案 1 :(得分:1)
以上答案很好。请注意,您实际上不必在请求路径参数的情况下指定参数。像这样的东西就足够了:
services-container
您还可以混合使用路径和查询参数,因此可以得到以下内容:
company-container