一个 Lambda 函数由 S3 事件触发,并且必须在新对象或修改对象出现在特定存储桶中时运行。该函数从事件中读取 S3 存储桶名称和对象键,以获取对象内容、解析它们并将结果写入 DynamoDB 表。该函数的执行角色具有读取存储桶和写入 DynamoDB 的权限,但在测试期间,当添加或修改对象时,该函数不运行。什么可以解决这个问题?
选择一个答案
点击一个选项来检查您的答案。
正确答案: 为 Lambda 函数添加基于资源的策略,授予 Amazon S3 调用指定 S3 存储桶的函数的权限。.
为什么这是答案
当 Lambda 函数由 S3 事件触发时,S3 服务需要权限来调用该 Lambda 函数。如果没有这个权限,即使 Lambda 函数本身有正确的执行角色权限,S3 也无法启动它。因此,为 Lambda 函数添加基于资源的策略,明确授予 Amazon S3 调用该函数的权限,是解决此问题的关键。 其他选项不解决根本问题: 增加 Lambda 函数的内存或预置更多 /tmp 空间是为了处理大文件或复杂计算,与函数未被触发无关。 将 Amazon SQS 队列配置为函数的 OnFailure 目标是为了处理函数执行失败的情况,而不是解决函数未被触发的问题。
通过考试 — 无需无休止地寻找答案
将本次考试的所有验证问题和解释集中在一处,节省数小时的准备时间。1,000+ 认证 · 20+ 语言 · 免费开始。
更快通过考试 → 无需银行卡