IDC

云函数 触发器概述 - 开发指南

作者:admin 2021-10-13 我要评论

腾讯云云函数是典型的事件触发(Event-Triggered)形态的无服务器运行环境,核心组件是 SCF 函数和事件源。其中,事件源是发布事件(Event)的腾讯云服务或用户...

在说正事之前,我要推荐一个福利:你还在原价购买阿里云、腾讯云、华为云服务器吗?那太亏啦!来这里,新购、升级、续费都打折,能够为您省60%的钱呢!2核4G企业级云服务器低至69元/年,点击进去看看吧>>>)

腾讯云云函数是典型的事件触发(Event-Triggered)形态的无服务器运行环境,核心组件是 SCF 函数和事件源。其中,事件源是发布事件(Event)的腾讯云服务或用户自定义代码,SCF 函数是事件的处理者,而函数触发器就是管理函数和事件源对应关系的集合。例如以下场景:

  • 图像/视频处理:用户上传图片时将图片切割成合适的尺寸。用户使用该应用上传照片,应用将这些用户照片存储到 COS 中并且创建每个用户照片的缩略图,并在用户页面上显示这些缩略图。本场景下,您需要选择 COS 作为事件源,在文件创建时将事件(Event)发布给 SCF 函数,事件数据提供关于存储桶和文件的所有信息。
  • 数据处理:半夜12点,分析一天所收集的数据(例如 clickstream)并生成报告。本场景下,您需要选择定时器作为事件源,在一个特定时间将事件(Event)发布给 SCF 函数。
  • 自定义的应用程序:在您的某个应用程序中调用第一个图像处理 SCF 函数,作为应用程序的一个模块。本场景下,您需要该应用程序中自行调用 Invoke API 来发布事件(Event)。

这些事件源可以是以下任意之一:

  • 内部事件源:这些是经过预配置可与 SCF 一起使用的腾讯云云服务。当您配置了这些事件源触发函数时,函数将在出现事件时被自动调用。事件源和函数的关联关系(即事件源映射)将在事件源侧维护。
  • 自定义应用程序:您可以让自定义应用程序发布事件和调用 SCF 函数。

示例 1:COS发布事件并调用函数

您可以配置 COS 的事件源映射,决定 COS 在发生何种行为时触发 SCF 函数(如 PUT、DELETE 对象等)。COS 的事件源映射存储在 COS 中,使用存储桶通知功能,引导 COS 在出现特定事件类型时调用函数:

  • 创建 COS 触发器。
  • 用户在存储桶中创建/删除对象。
  • COS 检测到对象创建/删除事件。
  • COS 自动调用函数,将根据存储在 COS 配置中的事件源映射明确应该调用哪个函数。将 Bucket 及 Object 信息作为事件数据传递给函数。

示例 2:定时器发布时间并调用函数

定时器的事件源映射将保存在 SCF 函数配置中,决定何时自动触发函数:

  • 创建定时触发器。
  • 该定时器在配置时间时自动调用函数。

示例 3:自定义应用程序调用函数

如果您需要在自定义应用程序中调用某个 SCF 函数,在这种情况下您不需要配置函数触发器,也不需设置事件源映射。此时,事件源使用 Invoke API。

  • 自定义应用程序使用 Invoke API 调用函数,自行传入事件数据。
  • 函数接收到触发请求并执行。
  • 如果使用了同步调用方式,函数将向应用程序返回结果。
注意:

在此示例中,由于自定义应用程序和函数均为同一个用户生产的,可以指定用户凭证(APPID、SecretId 和 SecretKey)。

注意事项

  • 目前单个云函数支持的触发器相关限制,可见 配额及限制。
  • 由于不同云服务的限制,事件源映射关系有着特定的限制。例如:对于 COS 触发器而言,同一个 COS Bucket 的相同事件(如文件上传),不能触发多个不同的函数。

版权声明:本文转载自网络,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。本站转载出于传播更多优秀技术知识之目的,如有侵权请联系QQ/微信:153890879删除

相关文章
腾讯云代理商
精彩导读
海外云服务器
热门资讯
腾讯云代理商