赛尔校园公共服务平台 Logo
平台使用
阿里云
百度云
移动云
智算服务
教育生态
登录 →
赛尔校园公共服务平台 Logo
平台使用 阿里云 百度云 移动云 智算服务 教育生态
登录
  1. 首页
  2. 阿里云
  3. 函数计算 FC 2.0
  4. 常见问题
  5. 事件触发FAQ
  6. 触发器不能正常触发函数执行怎么办?

触发器不能正常触发函数执行怎么办?

  • 事件触发FAQ
  • 发布于 2025-04-16
  • 0 次阅读
文档编辑
文档编辑

问题现象

触发器无法调用函数执行。

问题原因

可能存在的原因如下。

  • 没有成功生成触发事件。

  • 不满足触发规则。

  • 触发器配置的角色不正确。

解决方案

方案一:确认是否成功生成触发事件

  • OSS触发器

    例如您的场景是将文件上传到OSS后触发函数执行,那么您要排查的步骤如下:

    您需要确认文件是否已上传到对应的Bucket中。

    • 如果文件已上传完成,需要确认函数计算是否有运行日志。

      • 如果有运行日志说明函数被触发了,只是函数运行失败了,需要根据日志调试代码逻辑。

      • 如果没有运行日志说明函数没有被触发,需要排查是否满足触发规则,具体见方案二:确认是否满足触发器的触发规则。

    • 如果文件没有上传完成,则需要确保先把文件上传完成。

  • SLS触发器

    如果SLS触发器未触发函数执行,您可以从以下两个方面排查。

    • 确认在SLS触发器配置的Logstore是否有数据增量修改,当Shard数据有变化时会触发函数运行。

    • 查看函数运行日志是否有异常。

方案二:确认是否满足触发器的触发规则

常见触发器的触发规则示例如下。

  • 定时触发器

    请排查定时触发器设置的触发方式及对应的时间。如果您设置的触发方式为自定义CRON 表达式,默认是UTC时间,请确认触发时间是否正确。更多信息,请参见步骤一:创建定时触发器。

    • 如果您设置的CRON表达式为0 0 4 * * *,表示UTC时间为每天04:00触发函数执行,转化为北京时间即每天12:00触发函数执行。

    • 如果您设置的CRON表达式为CRON_TZ=Asia/Shanghai 0 0 4 1 * *,表示北京时间每月1号的04:00触发函数执行。

  • OSS触发器

    • OSS的Bucket和函数必须在同一个地域。

    • 上传的文件前缀或者文件后缀必须和触发器设置的文件前缀或文件后缀一致。

      例如,您为触发器设置的文件前缀为ab,您分别上传文件a/b.zip、ab.zip和abc.zip,只有上传文件ab.zip和abc.zip能触发器函数执行。

    • OSS事件必须和触发器的触发事件完全一致。以下几种情况会被认为OSS事件与触发事件不匹配,无法触发函数执行。

      • 您使用OSS Browser工具分片上传文件,上传完成后的事件为oss:ObjectCreated:CompleteMultipartUpload。如果您为触发器设置的触发事件为oss:ObjectCreated:PutObject或者oss:ObjectCreated:PostObject,将不能触发函数执行。

      • 您使用控制台上传文件的事件为oss:ObjectCreated:PostObject,而您为触发器设置的触发事件为oss:ObjectCreated:PutObject。或者您调用oss:ObjectCreated:PutObjectAPI接口上传文件的事件为oss:ObjectCreated:PutObject,而您为触发器设置的触发器事件为oss:ObjectCreated:PostObject。

    • OSS中开启版本控制的Bucket,删除Object时必须指定版本ID。

      使用OSS Browser工具删除Object时如果不指定版本ID,将不会触发oss:ObjectRemoved:DeleteObject或oss:ObjectRemoved:DeleteObjects事件。当前版本Object会被转为历史版本Object,并添加删除标记。更多信息,请参见常见问题。

    • EventBridge类别的OSS触发器创建成功后不会立即生效,需要等待30s后才能触发函数。

  • Tablestore触发器

    必须为Tablestore实例的数据表开启Stream信息。具体步骤,请参见步骤一:为数据表开启Stream功能。

方案三:确认触发器的角色是否正确

请确认您为触发器配置的角色是否被删除,或者角色权限是否不足,建议您为触发器配置标准的角色。

  • OSS触发器:配置AliyunOSSEventNotificationRole角色。具体信息,请参见配置原生OSS触发器。

  • Tablestore触发器:配置AliyunTableStoreStreamNotificationRole角色。具体信息,请参见步骤二:创建Tablestore触发器。

相关文档

如果您上传文件到OSS触发函数执行了多次,需要重新设置触发事件,具体请参见文件上传到OSS触发函数执行多次,要如何处理?。

相关文章

触发器不能正常触发函数执行怎么办? 2025-04-16 14:21

问题现象 触发器无法调用函数执行。

文件上传到OSS触发函数执行多次,要如何处理? 2025-04-16 14:21

将文件上传到OSS后发现OSS触发器被多次触发,您需要查看OSS触发器设置的触发事件是否符合预期。 问题原因 OSS触发器被多次触发,可能原因是设置的触发事件在文件上传过程中被多次触发。 例如,您通过分片上传功能上传文件到OSS,这

大量事件同时触发函数调用,要如何保证函数可以正常响应? 2025-04-16 14:21

当配置的触发器被大量事件同时触发时,可以通过设置实例并发度及提前预留实例的方式,应对突发流量。 问题背景 例如,您在函数计算配置了OSS触发器,当同时上传N个文件到OSS时,会触发函数执行,需要确保函数可以正常响应。 解决方案

为什么SLS触发器触发函数执行的频次有时高于预期? 2025-04-16 14:21

日志服务SLS的每个Shard在有新的数据写入的情况下都会触发函数执行,所以您看到的触发频次是一个Logstore整体的触发次数。同时当触发发生延迟时触发器会追赶数据,可能会缩短触发间隔。 问题现象 SLS触发器触发函数执行的频次有时高于预期的触发频次。

目录
Copyright © 2025 your company All Rights Reserved. Powered by 赛尔网络.
京ICP备14022346号-15
gongan beian 京公网安备11010802041014号