本文介绍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 //设置触发类型为异步触发。