详情页标题前

腾讯云云函数(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折活动,限时活动,即将结束,速速收藏
同尘科技为腾讯云授权服务中心。
购买腾讯云产品享受折上折,更有现金返利。同意关联立享优惠

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

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

相关推荐

  • 腾讯云云函数(SCF)通用问题-云淘科技

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

    腾讯云 2023年12月9日
  • 腾讯云云函数(SCF)步骤 2. 创建 Thumbnail 函数并测试-云淘科技

    创建 Thumbnail 函数 1. 登录 Serverless 控制台,选择左侧导航栏中的函数服务。2. 在“函数服务”页面上方选择广州地域,并单击新建进入新建函数页面,根据页面相关信息提示进行配置。如下图所示: n 创建方式:选择模板创建。模板搜索:输入“压缩”进行搜索,并进行搜索,本文以运行环境 Python 2.7 为例。n单击模板中的查看详情,…

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

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

    腾讯云 2023年12月9日
  • 腾讯云云函数(SCF)产品概述-云淘科技

    腾讯云云函数(Serverless Cloud Function,SCF)是腾讯云为企业和开发者们提供的无服务器执行环境,帮助您在无需购买和管理服务器的情况下运行代码, 是实时文件处理和数据处理等场景下理想的计算平台。您只需使用 SCF 平台支持的语言编写核心代码并设置代码运行的条件,即可在腾讯云基础设施上弹性、安全地运行代码。以下视频将为您介绍云函数 SC…

    2023年12月9日
  • 腾讯云云函数(SCF)步骤 2. 创建 Mapper 和 Reducer 函数-云淘科技

    创建 Mapper 函数 通过控制台模板函数创建 1. 登录 Serverless 控制台,进入函数服务页面。2. 在“函数服务”页面上方选择北京地域,并单击新建进入新建函数页面。根据页面相关信息进行配置。如下图所示: n 创建方式:选择模板创建。模糊搜索:输入 “map_function”,并进行搜索,选择 “map_function” 模板。n单击模…

    2023年12月9日

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

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

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