AWS Serverless CLI命令参考4--invoke

invoke

用于调用已部署的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

指定调用类型,可选值为RequestResponseEvent或者DryRun,默认为 RequestResponse.

--log

缩写为-l

如果设置为true且调用类型为RequestResponse, 会输出调用的log数据,默认值为false.

示例

调用指定阶段和区域的已部署的函数

serverless invoke --function functionName --stage dev --region us-east-1

以string data作为输入调用lambda函数

serverless invoke --function functionName --stage dev --region us-east-1 --data "hello world"

以标准输入作为输入调用lambda函数

node dataGenerator.js | serverless invoke --function functionName --stage dev --region us-east-1

显示调用函数的log信息

serverless invoke --function functionName --stage dev --region us-east-1 --log

以json data作为输入调用lambda函数

serverless invoke --function functionName --stage dev --region us-east-1 --path lib/data.json

 data.json

{
  "resource": "/",
  "path": "/",
  "httpMethod": "GET"
  //  etc. //
}

invoke local

本地调用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

用于指定调用函数时需要的环境变量,格式为=,可以重复使用指定多个环境变量

--docker

为NodeJS/Python/Ruby/Java运行时启动docker支持,其他运行时默认启用

--docker-arg

与--docker参数合用,用于给docker启动命令指定额外的参数,比如 --docker-arg '-p 9229:9229' --docker-arg '-v /var:/host_var'

--skip-package

 使用.serverless文件夹中的文件,避免在每次调用时重新打包已节省调用时间

示例

自定义data作为输入调用本地函数

serverless invoke local --function functionName --data "hello world"
serverless invoke local --function functionName --data '{"a":"bar"}'

自定义json文件作为输入调用本地函数

serverless invoke local --function functionName --path lib/data.json

自定义context作为输入调用本地函数

serverless invoke local --function functionName --context "hello world"

自定义contextPath作为输入调用本地函数

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/

你可能感兴趣的:(serverless,aws)