Serverless

Data workflow serverless function for object storage processing, the main container mirroring is:

  • ghcr.io/weplanx/fn:latest

  • registry.cn-shenzhen.aliyuncs.com/weplanx/fn:latest

  • ccr.ccs.tencentyun.com/weplanx/fn:latest

Environement

ADDRESS

  • Listening address, default :9000

PROCESS *required

  • process

    • tencent-cos-excel Tencent Cloud COS Excel Processing

COS_URL

  • Tencent Cloud COS Address

COS_SECRETID

  • Secret ID

COS_SECRETKEY

  • Secret Key

腾讯云示例

云函数为例:

  • 选择使用容器镜像,*工作流方式函数服务需要在 COS 命名空间创建

  • 函数类型:事件函数

  • 函数名称:自定

  • 镜像:ccr.ccs.tencentyun.com/weplanx/fn:[version]

  • 镜像类型:Web Server 镜像

  • 内存:按情况需求

  • 环境变量:

    • PROCESS=tencent-cos-excel

    • 配置私有的 COS_URL COS_SECRETID COS_SECRETKEY

  • 执行配置:*工作流方式必须启用异步执行、状态追踪

方式一:COS 触发

部署完成后,至该函数的【触发管理】

  • 触发方式:COS 触发

  • COS Bucket:选择对应 Bucket

  • 事件类型:全部创建

  • 后缀过滤:.excel

方式二:工作流

适合多重处理需自定回调的复杂场景,到对应的 COS 存储桶中,先确认【数据处理】->【媒体处理】是否开启(需要开启)

再跳转至【任务与工作流】->【工作流管理】,创建工作流

  • 工作流名称:自定

  • 匹配规则:自定义规则

    • 自定义后缀:excel

  • 增加一个自定义函数输入,选择刚才建立的云函数,如图

  • 回调方式:启用并自定义处理事件

创建完成后启用上传触发执行

Client

For applications to perform related functions

go get github.com/weplanx/fn

Initialize

// Create the fn client
x, err = fn.New(
    fn.SetCos(values.Cos.Url, values.Cos.SecretId, values.Cos.SecretKey),
)

Upload pack to COS and asynchronous conversion Excel

data := [][]interface{}{
    {"Name", "CCType", "CCNumber", "Century", "Currency", "Date", "Email", "URL"},
}
for n := 0; n < 10; n++ {
    data = append(data, []interface{}{
        faker.Name(), faker.CCType(), faker.CCNumber(), faker.Century(), faker.Currency(), faker.Date(), faker.Email(), faker.URL(),
    })
}
ctx := context.TODO()
err := x.TencentCosExcel(ctx, "test", map[string][][]interface{}{
    "Sheet1": data,
})

License

BSD-3-Clause License

Last updated