函数操作
所有文档

          函数计算 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)
          }
          上一篇
          函数调用
          下一篇
          版本操作