我配置了一个 Amazon Simple Storage Service(Amazon S3)事件通知调用我的 AWS Lambda 函数。但是,当 Amazon S3 事件发生时,该函数未被调用。
**注意:**如果您在运行 AWS Command Line Interface (AWS CLI) 命令时遇到错误,请确保您使用的是最新版本的 AWS CLI。
在配置 Amazon S3 事件通知时,您必须指定哪些受支持的 Amazon S3 事件类型会导致 Amazon S3 发送通知。如果 S3 存储桶中发生了您未指定的事件类型,则 Amazon S3 不会发送通知。
例如,Amazon S3 事件通知配置为使用 s3:ObjectCreated:Put 事件调用 Lambda。如果您上传的是大文件,则该文件使用分段上传进行上传。选择 s3:ObjectCreated:CompleteMultipartUpload 事件的同时也必须选择 s3:ObjectCreated:Put 事件。您还可以使用 s3:ObjectCreated:* 事件类型为用于创建对象的任何 API 请求通知。
如果您的事件通知被配置为使用对象键名称筛选,则仅针对具有特定前缀或后缀的对象发布通知。通配符(“*”)不能在筛选条件中用作前缀或后缀来表示任何字符。确保事件通知中指定的前缀或后缀筛选条件包含上传的对象键名称。
如果您的事件通知被配置为使用对象键名称筛选,则仅针对具有特定前缀或后缀的对象发布通知。
如果在前缀或后缀中使用以下任何特殊字符,您必须以 URL 编码(百分比编码)格式输入它们:
例如,要将前缀值定义为 "test=abc/",则需将其值输入为 "test%3Dabc/"。
**注意:**通配符(“*”)不能在筛选条件中用作前缀或后缀来表示任何字符。
有关更多信息,请参阅对象键命名指南。
检查您的 Lambda 函数基于资源的策略,确保其允许您的 Amazon S3 存储桶调用函数。如果不允许,请按照授予 AWS 服务的函数访问权限中的说明添加所需的权限。
有关更多信息,请参阅 AWS Lambda 权限。
**注意:**当您使用 Amazon S3 控制台添加新的事件通知时,所需权限将自动添加到函数的策略中。如果您在 AWS CLI 中使用 put-bucket-notification-configuration 操作添加事件通知,则函数的策略不会自动更新。
您的 Lambda 函数必须配置为处理来自 Amazon S3 事件通知的并发调用。如果调用请求的到达速度比您的函数扩展速度快,或者如果您的函数处于最大并发性,则 Lambda 会限制这些请求。
有关更多信息,请参阅异步调用和 Lambda 函数扩展。
如何使用 Systems Manager Automation 解决通过 Amazon S3 事件通知调用 Lambda 函数时出现的问题?
将 AWS Lambda 与 Amazon S3 事件结合使用
演练:为通知配置存储桶(SNS 主题或 SQS 队列)
教程:使用 Amazon S3 触发器调用 Lambda 函数
创建 Amazon S3 事件通知以调用 Lambda 函数时,为什么会出现 “Unable to validate the following destination configurations”(无法验证以下目标配置)错误?