详情页标题前

腾讯云云函数(SCF)COS 触发器说明-云淘科技

详情页1

用户可以编写 SCF 函数来处理 COS Bucket 中的对象创建和对象删除事件。COS 可将事件发布给 SCF 函数并将事件数据作为参数来调用该函数。用户可以在 COS Bucket 中添加存储桶通知配置,该配置可标识触发函数的事件类型和希望调用的函数名称等信息。COS 触发器具有以下特点:Push 模型
COS 会监控指定的 Bucket 动作(事件类型)并调用相关函数,将事件数据推送给 SCF 函数。在推模型中使用 Bucket 通知来保存 COS 的事件源映射。异步调用
COS 始终使用异步调用类型来调用函数,结果不会返回给调用方。有关调用类型的更多信息,请参阅 调用类型。

COS 触发器属性

COS Bucket(必选):配置的 COS Bucket,仅支持选择同地域下的 COS 存储桶。事件类型(必选):支持 “文件上传” 和 “文件删除”、以及更细粒度的上传和删除事件,具体事件类型见下表。事件类型决定了触发器何时触发云函数,例如选择 “文件上传” 时,会在该 COS Bucket 中有文件上传时触发该函数。

事件类型 描述
cos:ObjectCreated:* 以下提到的所有上传事件均可触发云函数。
cos:ObjectCreated:Put 使用 Put Object 接口创建文件时触发云函数。
cos:ObjectCreated:Post 使用 Post Object 接口创建文件时触发云函数。
cos:ObjectCreated:Copy 使用 Put Object – Copy 接口创建文件时触发云函数。
cos:ObjectCreated:CompleteMultipartUpload 使用 CompleteMultipartUpload 接口创建文件时触发云函数。
cos:ObjectCreated:Origin 通过 COS 回源 创建对象时触发云函数。
cos:ObjectCreated:Replication 通过跨区域复制创建对象时触发云函数。
cos:ObjectRemove:* 以下提到的所有删除事件均可触发云函数。
cos:ObjectRemove:Delete 在未开启版本管理的 Bucket 下使用 Delete Object 接口删除的 Object,或者使用 versionid 删除指定版本的 Object 时触发云函数。
cos:ObjectRemove:DeleteMarkerCreated 在开启或者暂停版本管理的 Bucket 下使用 Delete Object 接口删除的 Object 时触发云函数。
cos:ObjectRestore:Post 创建了归档恢复的任务时触发云函数。
cos:ObjectRestore:Completed 完成归档恢复任务时触发云函数。

前缀过滤(可选):前缀过滤通常用于过滤指定目录下的文件事件。例如,前缀过滤为 test/,则仅 test/ 目录下的文件事件才可以触发函数,hello/ 目录下的文件事件不触发函数。后缀过滤(可选):后缀过滤通常用于过滤指定类型或后缀的文件事件。例如,后缀过滤为 .jpg,则仅 .jpg 结尾的文件的事件才可以触发函数,.png 结尾的文件事件不触发函数。

COS 触发器使用限制

为了避免 COS 的事件生产投递出现错误,COS 针对每个 Bucket 的每个事件(如文件上传/文件删除等)和前后缀过滤的组合,限制同一组规则只能绑定一个可触发的函数。因此,在您创建 COS 触发器时,请不要针对同一个 COS Bucket 配置相同的规则。例如,您可以为函数 A 配置 test Bucket 的 “Created: * ” 事件触发(未配置过滤规则),那么该 test Bucket 的上传事件不能再绑定到其他函数,这些事件包含(Created:Put、Created:Post等),但是您可以为函数 B 配置 test Bucket 的 “ObjectRemove” 事件触发。当使用前后缀过滤规则时,为了保证同一个 Bucket 触发事件的唯一性,需要注意同一 Bucket 无法使用重叠前缀、重叠后缀或前缀和后缀的重叠组合为相同的事件类型定义筛选规则。例如,当您给函数 A 配置了 test Bucket 的 “Created: * ” 和前缀过滤为 “Log” 的事件触发,那么该 test Bucket下就不能再创建 “Created: * ” 和前缀过滤为 “Log” 的事件触发。目前 COS 触发器仅支持同地域 COS Bucket 事件触发,即广州区创建的 SCF 函数,在配置 COS 触发器时,仅支持选择广州区(华南)的 COS Bucket。如果您想要使用特定地域的 COS Bucket 事件来触发 SCF 函数,可以通过在对应地域下创建函数来实现。COS 触发器有 SCF 侧和 COS 侧两个维度限制:SCF 侧限制:云函数单函数最多可关联10个 COS 触发器。 COS 侧限制:单个 COS 存储桶最多支持关联10个触发器。

COS 触发器的事件消息结构

在指定的 COS Bucket 发生对象创建或对象删除事件时,会将类似以下的 JSON 格式事件数据发送给绑定的 SCF 函数。

{    "Records": [{        "cos": {            "cosSchemaVersion": "1.0",            "cosObject": {                "url": "http://testpic-1253970026.cos.ap-chengdu.myqcloud.com/testfile",                "meta": {                    "x-cos-request-id": "NWMxOWY4MGFfMjViMjU4NjRfMTUyMVxxxxxxxxx=",                    "Content-Type": "",                    "x-cos-meta-mykey": "myvalue"                },                "vid": "",                "key": "/1253970026/testpic/testfile",                "size": 1029            },            "cosBucket": {                "region": "cd",                "name": "testpic",                "appid": "1253970026"            },            "cosNotificationId": "unkown"        },        "event": {            "eventName": "cos:ObjectCreated:*",            "eventVersion": "1.0",            "eventTime": 1545205770,            "eventSource": "qcs::cos",            "requestParameters": {                "requestSourceIP": "192.168.15.101",                "requestHeaders": {                    "Authorization": "q-sign-algorithm=sha1&q-ak=xxxxxxxxxxxxxx&q-sign-time=1545205709;1545215769&q-key-time=1545205709;1545215769&q-header-list=host;x-cos-storage-class&q-url-param-list=&q-signature=xxxxxxxxxxxxxxx"                }            },            "eventQueue": "qcs:0:scf:cd:appid/1253970026:default.printevent.$LATEST",            "reservedInfo": "",            "reqid": 179398952        }    }]}

数据结构内容详细说明如下:

结构名 内容
Records 列表结构,可能有多条消息合并在列表中。
event 记录事件信息,包括事件版本、事件源、事件名称、时间、队列信息、请求参数、请求 ID。
cos 记录事件对应的 COS 信息。
cosBucket 记录具体事件发生的 Bucket,包含 Bucket 名称、地域、所属用户 APPID。APPID 可前往 账号信息 页面获取。
cosObject 记录具体事件发生的对象,包含对象文件路径、大小、自定义元数据、访问 URL。

相关示例

以下为 Java 语言的 COS 触发器示例,您可参考示例进行使用:

https://github.com/tencentyun/scf-demo-java/blob/master/src/main/java/example/Cos.java



官网1折活动,限时活动,即将结束,速速收藏
同尘科技为腾讯云授权服务中心。
购买腾讯云产品享受折上折,更有现金返利。同意关联立享优惠

转转请注明出处:http://www.yunxiaoer.com/149530.html

(0)
上一篇 2023年12月9日
下一篇 2023年12月9日
详情页2

相关推荐

  • 腾讯云云函数(SCF)云函数基本能力产品定价-云淘科技

    云函数 SCF 各计费项定价如下表所示。您可通过 云函数价格计算器 估算费用。 事件型函数 计费项 单位 定价 资源使用量 GBs 0.00011108元/GBs 调用次数 万次 0.0133元/万次 外网出流量 GB 见下表,各地域均有不同定价 预置并发闲置量 GBs 0.00005471元/GBs 基础套餐 天 0.41元/天 Web 函数 计费项 单位…

    腾讯云 2023年12月9日
  • 腾讯云云函数(SCF)常见示例-云淘科技

    操作场景 通过使用 POJO 类型参数,您可以处理除简单事件入参外更复杂的数据结构。在本文档中,将使用一组示例说明在 SCF 中如何使用 POJO 参数,并能支持何种格式的入参。 前提条件 已登录 Serverless 控制台。 操作步骤 事件入参和 POJO 本文使用的事件入参如下所示: { “person”: {“firstName”:”bob”,”la…

    腾讯云 2023年12月9日
  • 腾讯云云函数(SCF)部署方法-云淘科技

    本文介绍如何 使用 Gradle 创建 zip 部署包 和 使用 Maven 创建 jar 部署包 这两种方式来创建 zip 或 jar 包。创建完成后,可通过控制台页面直接上传包(小于 50MB),或通过把部署包上传至 COS Bucket 后,在 SCF 控制台上通过指定部署包的 Bucket 和 Object 信息,完成代码包提交。 使用 Gradle…

    腾讯云 2023年12月9日
  • 腾讯云云函数(SCF)工作原理-云淘科技

    函数运行时的实例模型 云函数 SCF 将在函数接收到触发请求时为您执行函数。SCF 执行请求的资源为实例,根据函数的配置信息(如内存大小等)进行资源分配,并启动一个或多个实例处理函数请求。SCF 平台负责所有函数运行实例的创建、管理和删除清理操作,用户没有权限对其进行管理。实例的生命周期如下图所示:  实例启动 如果请求到来时没有正在运行的实例,请求会触…

    2023年12月9日
  • 信息流广告,信息流部分建议宽度830px,只针对默认列表样式,顺序随机
  • 腾讯云云函数(SCF)通用问题-云淘科技

    函数运行报错 “Cannot find module”、“No module named”、找不到依赖怎么处理?如何进行依赖安装? 该问题通常是由于代码执行的依赖文件没有上传到云上环境导致的,可按照如下方法进行检查:1. 请核对代码中引用的依赖文件路径是否准确,如果采用相对路径,依赖文件需要与函数代码文件在同一个根目录下,并与函数代码一起打包上传至云端;如果…

    腾讯云 2023年12月9日

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信
本站为广大会员提供阿里云、腾讯云、华为云、百度云等一线大厂的购买,续费优惠,保证底价,买贵退差。