本文介绍fcli中函数相关的命令。

前提条件

在可执行文件所在文件夹下执行fcli shell,进入交互模式。

创建函数(mkf)

  • -b string--code-bucket string:指定代码所在的OSS Bucket。
  • -o string--code-object string:指定代码所在的Bucket中的Object Key。
  • -d string--code-dir string:指定代码所在的目录。
  • -f string--code-file string:指定压缩的代码文件。
  • -h string--handler string:设置函数handler,handler的格式为“文件名.函数名”。例如hello_world.handler指定了函数的调用入口为hello_world.js文件中的handler函数。
  • -e int32--initializationTimeout int32:设置初始化函数超时时间(默认30s)。
  • -i string--initializer string:设置初始化函数。
  • -m int32--memory int32:设置函数执行的内存大小。
  • -t string--runtime string:指定运行环境。
  • --timeout int32:设置函数超时时间(默认30s)。
// 在相应service目录下
>>> mkf myFunction -t nodejs6 -h myFunction.handler -b ossBucketName -o objectKey //代码存储在OSS上,-t指定Runtime为Node.js6,-h指定函数入口,-b指定代码所在的OSS Bucket,-o指定了代码在Bucket中的Object Key。
>>> mkf myFunction -t nodejs6 -h myFunction.handler -d codeDir/myFunction -m 512 //代码存储在本地,-d指定了代码所在目录,-m设置函数执行的内存大小。
>>> mkf myFunction -h myFunction.handler -f code.zip -t nodejs6 //代码在本地的code.zip中

更新函数(upf)

  • -b string--code-bucket string:指定代码所在的OSS Bucket。
  • -o string--code-object string:指定代码所在的Bucket中的Object Key。
  • -d string--code-dir string:指定代码所在的目录。
  • -f string--code-file string:指定压缩的代码文件。
  • -h string--handler string:设置函数handler,handler的格式为“文件名.函数名”。例如hello_world.handler指定了函数的调用入口为hello_world.js文件中的handler函数。
  • -m int32--memory int32:设置函数执行的内存大小。
  • -t string--runtime string:指定运行环境。
// 在相应service目录下
>>> upf myFunction -t nodejs6 -h myFunction.handler -b ossBucketName -o objectKey //代码存储在OSS上,-t指定Runtime为Node.js6,-b指定代码所在的OSS Bucket,-o指定了代码在Bucket中的Object Key。
>>> upf myFunction -t nodejs6 -h myFunction.handler -d codeDir/myFunction -m 512 //代码存储在本地,-d指定了代码所在目录,-m设置函数执行的内存大小。
>>> upf myFunction -h myFunction.handler -f code.zip -t nodejs6 //代码在本地的code.zip中。
>>> upf myFunction -t nodejs6 -i myFunction.newInitializer -e 30  -b ossBucketName -o objectKey // 将initializer从myFunction.initializer更新至myFunction.newInitializer。代码存储在OSS上且包含initializer函数,-t指定Runtime,-i指定initializer入口,-e指定initializer超时时间,-b指定代码所在的OSS Bucket,-o指定了代码在Bucket中的Object Key。
>>> upf myFunction -t nodejs6  -i  "" -b ossBucketName -o objectKey // 将initializer从myFunction.newInitializer更新至空,即关闭函数initializer功能。
>>> upf myFunction -t nodejs6 -i  myFunction.newInitializer -e 30 -b ossBucketName -o objectKey // 将initializer从空更新至myFunction.newInitializer。

执行函数(invk)

  • -e--encode:对函数的返回值进行base64编码。
  • -f string--event-file string:从文件中读取触发事件内容。
  • -s string--event-str string:从字符串中读取触发事件内容。
  • -o string--output-file string:将返回结果写入文件的文件名称。
  • -t string--type string:触发类型,取值:
    • Sync:同步触发(默认值)
    • Async:异步触发
>>> invk myFunction //如果不需要输入参数,不需要触发事件的话,则直接调用。
>>> invk myFunction -e //对函数的返回值进行base64编码。
>>> invk myFunction -s 'hello,world'//从字符串中读取触发事件内容。
>>> invk myFunction -f event.json //从文件中读取触发事件内容。
>>> invk myFunction -o code/result.txt //将返回结果写入result.txt文件中。
>>> invk myFunction -t Async //设置触发类型为异步触发。

更多信息