函数计算CFC

    函数操作

    创建函数

    使用以下代码可以创建一个CFC函数

    arge := &api.CreateFunctionArgs{
        // 配置函数的代码,需要上传代码的zip压缩包
    	Code:         &api.CodeFile{ZipFile: zipFile},
        // 函数名称,每个用户的函数名称不可重复,不可修改
    	FunctionName: "sdk-create",
        // 函数调用的入口函数
    	Handler:      "index.handler",
        // 函数的runtime
    	Runtime:      "nodejs8.5",
        // 函数运行的内存大小,单位mb,必须是128的整数倍,最大可选1024
    	MemorySize:   256,
        // 函数执行超时时间,可选1-300s
    	Timeout:      3,
        // 函数描述信息
    	Description:  "sdk create",
        // 函数日志存放方式,可选bos,表示函数执行日志存放在bos中
    	LogType:      "bos",
        // 若LogType配置为bos,此参数设置函数执行日志在bos中的存储地址
    	LogBosDir:    "bos://ashjfdklsfhlk/",
    })
    
    // 若要配置从bos bucket中上传函数代码,可以如下设置
    // 这两个参数不能和args.Code.ZipFile同时设置
    args.Code.BosBucket = "bucketName"
    args.Code.BosObject = "objectKey"
    
    // 若要直接发布函数,可以设置
    args.Code.Publish = true
    
    // 若要配置函数访问VPC网络,可以如下设置
    args.VpcConfig = &api.VpcConfig{
        SubnetIds:        []string{"subnet_id1"},
        SecurityGroupIds: []string{"security_group_id1"},
    }
    
    // 若要配置环境变量,可以如下设置
    args.Environment = &api.Environment{
        Variables: map[string]string{
            "key": "value",
        },
    },
    
    result, err := client.CreateFunction(args)
    if err != nil {
        fmt.Println("create function failed:", err)
    } else {
        fmt.Println("create function success: ", result)
    }

    函数列表

    使用以下代码可以获取CFC函数的列表

    args := &api.ListFunctionArgs{}
    
    // 若想查询指定版本1的函数,可以如下设置
    args.FunctionVersion = "1"
    
    result, err := client.ListFunctions(args)
    if err != nil {
        fmt.Println("list function failed:", err)
    } else {
        fmt.Println("list function success: ", result)
    }

    函数信息

    使用以下代码可以获取特定函数的信息

    args := &api.GetFunctionArgs{
        FunctionName: "functionName"
    }
    result, err := client.GetFunction(args)
    if err != nil {
        fmt.Println("get function failed:", err)
    } else {
        fmt.Println("get function success: ", result)
    }

    删除函数

    使用以下代码可以删除一个特定的CFC函数

    args := &api.DeleteFunctionArgs{
        FunctionName: "sdk-create",
    }
    
    // 若想删除函数的某个版本,可以设置
    args.Qualifier = "1"
    
    err := client.DeleteFunction(args)
    if err != nil {
        fmt.Println("delete function failed:", err)
    } 

    更新函数代码

    使用以下代码可以更新特定CFC函数的代码

    args := &api.UpdateFunctionCodeArgs{
    	FunctionName: "sdk-creat"
    	ZipFile:      []byte(functionZipCode)
    }
    
    // 若要配置从bos bucket中上传函数代码,可以如下设置
    // 这两个参数不能和args.ZipFile同时设置
    args.BosBucket = "bucketName"
    args.BosObject = "objectKey"
    
    // 若要直接发布函数,可以设置
    args.Publish = true
    
    result, err := client.UpdateFunctionCode(args)
    if err != nil {
        fmt.Println("update function code failed:", err)
    } else {
        fmt.Println("update function code success: ", result)
    }

    获取函数配置

    使用以下代码可以获取特定CFC函数的配置

    args := &api.GetFunctionConfigurationArgs{
        FunctionName: "sdk-create",
    }
    
    // 若想查询特定版本的函数的配置,可以设置
    args.Qualifier = functionBrn
    
    if err != nil {
        fmt.Println("get function configure failed:", err)
    } else {
        fmt.Println("get function configure success: ", result)
    }

    更新函数配置

    使用以下代码可以更新特定CFC函数的配置

    args := &api.UpdateFunctionConfigurationArgs{
    	FunctionName: "sdk-create",
    	Timeout:      20,
    	Description:  "sdk update",
    	Runtime:      "nodejs8.5",
    	MemorySize:   &memorySize,
    	Environment:  &api.Environment{
    		Variables: map[string]string{
    			"name": "Test",
    		},
    	},
    })
    
    result, err := client.UpdateFunctionConfiguration(args)
    if err != nil {
        fmt.Println("update function configure failed:", err)
    } else {
        fmt.Println("update function configure success: ", result)
    }

    设置函数预留并发度

    使用以下代码可以设置和更新特定CFC函数的预留并发度

    args := &api.ReservedConcurrentExecutionsArgs{
        FunctionName: "sdk-create",
        // 预留并发度会由本函数的所有版本共享,最高能设置90
    	ReservedConcurrentExecutions: 10,
    })
    
    err := client.SetReservedConcurrentExecutions(args)
    if err != nil {
        fmt.Println("set function reserved concurrent executions failed:", err)
    }

    删除函数预留并发度设置

    使用以下代码可以删除特定CFC函数的预留并发度设置

    args := &api.DeleteReservedConcurrentExecutionsArgs{
        FunctionName: "sdk-create",
    })
    
    err := client.DeleteReservedConcurrentExecutions(args)
    if err != nil {
        fmt.Println("delete function reserved concurrent executions failed:", err)
    }
    上一篇
    函数调用
    下一篇
    版本操作