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

用於指定調用函數時需要的環境變量,格式爲<name>=<value>,可以重複使用指定多個環境變量

--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/

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章