用于调用已部署的lambda函数,可以给lambda函数发送event数据,读取log或者显示其他调用信息。
serverless invoke --function functionName
--function
缩写为-f
用于指定调用的lambda函数的名称
--stage
缩写为-s
用于指定部署的stage
--region
缩写为-r
用于指定部署的region
--qualifier
缩写为
-q
用于指定调用函数的版本号或者别名,默认为
$LATEST
--data
缩写为
-d
用于作为函数event的字符串数据,默认从标准输入中进行读取
--raw
将数据作为string event来调用lambda函数,即便数据是json格式,最终传递给函数的也是string,如果不设置,json数据会被解析为object,最终传递给函数的是对象
--path
缩写为
-p
用于指定作为lambda函数输入数据的json文件路径,路径为service的根目录的相对路径
--type
缩写为
-t
指定调用类型,可选值为RequestResponse
, Event
或者DryRun,默认为
RequestResponse
.
--log
缩写为
-l
如果设置为true且调用类型为
RequestResponse
, 会输出调用的log数据,默认值为false.
serverless invoke --function functionName --stage dev --region us-east-1
serverless invoke --function functionName --stage dev --region us-east-1 --data "hello world"
node dataGenerator.js | serverless invoke --function functionName --stage dev --region us-east-1
serverless invoke --function functionName --stage dev --region us-east-1 --log
serverless invoke --function functionName --stage dev --region us-east-1 --path lib/data.json
data.json
{
"resource": "/",
"path": "/",
"httpMethod": "GET"
// etc. //
}
本地调用lambda函数用于测试和日志输出,context只能使用简单mock data
只支持ptyhon和nodejs运行时
serverless invoke local --function functionName
--function
缩写为-f
用于指定调用的lambda函数的名称
--path
缩写为
-p
用于指定作为lambda函数输入数据的json文件路径,路径为service的根目录的相对路径
--data
缩写为
-d
用于作为函数event的字符串数据,默认从标准输入中进行读取
--raw
将数据作为string event来调用lambda函数,即便数据是json格式,最终传递给函数的也是string,如果不设置,json数据会被解析为object,最终传递给函数的是对象
--contextPath
缩写为
-x
用于指定作为lambda函数输入context的json文件的路径,路径为service的根目录的相对路径
--context
缩写为
-c
用于指定作为lambda函数输入context的string data,与--data作用相同,--contextPath指定的context会覆盖该参数指定的string data。
--env
缩写为-e
用于指定调用函数时需要的环境变量,格式为
为NodeJS/Python/Ruby/Java运行时启动docker支持,其他运行时默认启用
与--docker参数合用,用于给docker启动命令指定额外的参数,比如 --docker-arg '-p 9229:9229' --docker-arg '-v /var:/host_var'
--skip-package
使用.serverless
文件夹中的文件,避免在每次调用时重新打包已节省调用时间
serverless invoke local --function functionName --data "hello world"
serverless invoke local --function functionName --data '{"a":"bar"}'
serverless invoke local --function functionName --path lib/data.json
serverless invoke local --function functionName --context "hello world"
serverless invoke local --function functionName --contextPath lib/context.json
serverless invoke local -f functionName -e VAR1=value1
# Or more than one variable
serverless invoke local -f functionName -e VAR1=value1 -e VAR2=value2
https://www.serverless.com/framework/docs/providers/aws/cli-reference/invoke/
https://www.serverless.com/framework/docs/providers/aws/cli-reference/invoke-local/