函数操作
更新时间:2024-07-05
创建函数
使用以下代码可以创建一个CFC函数
Go
1arge := &api.CreateFunctionArgs{
2 // 配置函数的代码,需要上传代码的zip压缩包
3 Code: &api.CodeFile{ZipFile: zipFile},
4 // 函数名称,每个用户的函数名称不可重复,不可修改
5 FunctionName: "sdk-create",
6 // 函数调用的入口函数
7 Handler: "index.handler",
8 // 函数的runtime
9 Runtime: "nodejs8.5",
10 // 函数运行的内存大小,单位mb,必须是128的整数倍,最大可选1024
11 MemorySize: 256,
12 // 函数执行超时时间,可选1-300s
13 Timeout: 3,
14 // 函数描述信息
15 Description: "sdk create",
16 // 函数日志存放方式,可选bos,表示函数执行日志存放在bos中
17 LogType: "bos",
18 // 若LogType配置为bos,此参数设置函数执行日志在bos中的存储地址
19 LogBosDir: "bos://ashjfdklsfhlk/",
20})
21
22// 若要配置从bos bucket中上传函数代码,可以如下设置
23// 这两个参数不能和args.Code.ZipFile同时设置
24args.Code.BosBucket = "bucketName"
25args.Code.BosObject = "objectKey"
26
27// 若要直接发布函数,可以设置
28args.Code.Publish = true
29
30// 若要配置函数访问VPC网络,可以如下设置
31args.VpcConfig = &api.VpcConfig{
32 SubnetIds: []string{"subnet_id1"},
33 SecurityGroupIds: []string{"security_group_id1"},
34}
35
36// 若要配置环境变量,可以如下设置
37args.Environment = &api.Environment{
38 Variables: map[string]string{
39 "key": "value",
40 },
41},
42
43result, err := client.CreateFunction(args)
44if err != nil {
45 fmt.Println("create function failed:", err)
46} else {
47 fmt.Println("create function success: ", result)
48}
函数列表
使用以下代码可以获取CFC函数的列表
Go
1args := &api.ListFunctionArgs{}
2
3// 若想查询指定版本1的函数,可以如下设置
4args.FunctionVersion = "1"
5
6result, err := client.ListFunctions(args)
7if err != nil {
8 fmt.Println("list function failed:", err)
9} else {
10 fmt.Println("list function success: ", result)
11}
函数信息
使用以下代码可以获取特定函数的信息
Go
1args := &api.GetFunctionArgs{
2 FunctionName: "functionName"
3}
4result, err := client.GetFunction(args)
5if err != nil {
6 fmt.Println("get function failed:", err)
7} else {
8 fmt.Println("get function success: ", result)
9}
删除函数
使用以下代码可以删除一个特定的CFC函数
Go
1args := &api.DeleteFunctionArgs{
2 FunctionName: "sdk-create",
3}
4
5// 若想删除函数的某个版本,可以设置
6args.Qualifier = "1"
7
8err := client.DeleteFunction(args)
9if err != nil {
10 fmt.Println("delete function failed:", err)
11}
更新函数代码
使用以下代码可以更新特定CFC函数的代码
Go
1args := &api.UpdateFunctionCodeArgs{
2 FunctionName: "sdk-creat"
3 ZipFile: []byte(functionZipCode)
4}
5
6// 若要配置从bos bucket中上传函数代码,可以如下设置
7// 这两个参数不能和args.ZipFile同时设置
8args.BosBucket = "bucketName"
9args.BosObject = "objectKey"
10
11// 若要直接发布函数,可以设置
12args.Publish = true
13
14result, err := client.UpdateFunctionCode(args)
15if err != nil {
16 fmt.Println("update function code failed:", err)
17} else {
18 fmt.Println("update function code success: ", result)
19}
获取函数配置
使用以下代码可以获取特定CFC函数的配置
Go
1args := &api.GetFunctionConfigurationArgs{
2 FunctionName: "sdk-create",
3}
4
5// 若想查询特定版本的函数的配置,可以设置
6args.Qualifier = functionBrn
7
8if err != nil {
9 fmt.Println("get function configure failed:", err)
10} else {
11 fmt.Println("get function configure success: ", result)
12}
更新函数配置
使用以下代码可以更新特定CFC函数的配置
Go
1args := &api.UpdateFunctionConfigurationArgs{
2 FunctionName: "sdk-create",
3 Timeout: 20,
4 Description: "sdk update",
5 Runtime: "nodejs8.5",
6 MemorySize: &memorySize,
7 Environment: &api.Environment{
8 Variables: map[string]string{
9 "name": "Test",
10 },
11 },
12})
13
14result, err := client.UpdateFunctionConfiguration(args)
15if err != nil {
16 fmt.Println("update function configure failed:", err)
17} else {
18 fmt.Println("update function configure success: ", result)
19}
设置函数预留并发度
使用以下代码可以设置和更新特定CFC函数的预留并发度
Go
1args := &api.ReservedConcurrentExecutionsArgs{
2 FunctionName: "sdk-create",
3 // 预留并发度会由本函数的所有版本共享,最高能设置90
4 ReservedConcurrentExecutions: 10,
5})
6
7err := client.SetReservedConcurrentExecutions(args)
8if err != nil {
9 fmt.Println("set function reserved concurrent executions failed:", err)
10}
删除函数预留并发度设置
使用以下代码可以删除特定CFC函数的预留并发度设置
Go
1args := &api.DeleteReservedConcurrentExecutionsArgs{
2 FunctionName: "sdk-create",
3})
4
5err := client.DeleteReservedConcurrentExecutions(args)
6if err != nil {
7 fmt.Println("delete function reserved concurrent executions failed:", err)
8}