Las*_*apa 24 aws-lambda serverless-framework aws-serverless
我正在开发一个无服务器的无需项目,需要在本地测试lambda函数.
我正在使用serverless invoke local -f {function_name}命令来测试不请求任何路径或查询参数的API调用.
我的问题是如何使用此命令将任何路径或查询参数传递给函数?
示例无服务器描述
getFoodDetails:
handler: handler.getFoodDetails
events:
- http:
method: get
path: /foods/{food_id}
cors: true
request:
parameters:
paths:
food_id: true
Run Code Online (Sandbox Code Playgroud)
max*_*igo 40
数据字符串
如上所述,您可以使用该--data选项将字符串数据作为事件传递给您的函数.
serverless invoke local -f {function_name} --data '{ "queryStringParameters": {"id":"P50WXIl6PUlonrSH"}}'
Run Code Online (Sandbox Code Playgroud)
数据文件
你还可以做的是传递一个--path带有数据的json文件event,并在"事件文件"中定义你想要的数据.
serverless invoke --function {function_name} --path event_mock.json
Run Code Online (Sandbox Code Playgroud)
您可以以某种方式从调用中返回事件并将其保存在JSON文件中或从Amazon获取一个.他们提供了一些例子:https: //docs.aws.amazon.com/lambda/latest/dg/eventsources.html
请记住,如果你同时通过--path和--data,包括在数据--path文件将覆盖你与传递的数据--data标志.
文档:https://serverless.com/framework/docs/providers/aws/cli-reference/invoke#invoke-local
Nec*_*dil 11
我已经尝试了属性的答案,--data但都不起作用。
事实上,问题在于--data将字符串值传递给框架。所以如果你在你的 javascript 文件中写:console.log(typeof(event));,你会得到String而不是Object. 这意味着无服务器框架不会正确地将输入转换为 JSON 对象。这就是为什么您收到xx 未定义错误的原因。
我的解决方案是使用-p(or --path) 属性。在您的示例中,请按照下列步骤操作:
{"pathParameters":{"food_id":"100"}}food_id,请使用event.pathParameters.food_idsls invoke local -f yourFunction -p test.jsonpaf*_*de2 10
QueryStringParameters 和pathParameters 是两种不同的输入类型。
对于前者,接受的回应对我有用。
后者几乎相同,只需将queryStringParameters替换为pathParameters
sls invoke local -f {function_name} --data '{ "pathParameters": {"id":"1"}}'
Run Code Online (Sandbox Code Playgroud)
使用--data 和传递是您要发送到本地lambda的任何数据格式。
字符串数据示例:
无服务器调用--function functionName --stage dev --region us-east-1 --data“ hello world”
JSON数据示例:
无服务器调用--function functionName --stage dev --region us-east-1 --data'{“ property1”:“ value”}'
来自文件的JSON数据:
无服务器调用--function functionName --stage dev --region us-east-1 --path lib / data.json
完整的文档可以从这里访问
希望能帮助到你。
备查。你的案子就这样解决了。感谢 Kannayans JSON Example 才弄明白了。
sls invoke local -f getFoodDetails --data '{ "queryStringParameters": {"food_id":"123"}}'
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
12833 次 |
| 最近记录: |