AWS Cognito预认证Lambda触发器CloudWatch无event日志问题排查
核心原因
你已经找到了最核心的问题:AWS Lambda 网页控制台仅修改代码后点击保存不会生效,必须点击「部署」按钮才会将代码更新到线上执行环境。你添加的console.log日志语句在未部署的情况下从未实际执行,因此CloudWatch中不会出现对应日志。
额外注意事项
1. 代码写法优化
你当前的handler同时使用了async声明和callback回调,属于不推荐的混用写法:
对于async类型的Lambda handler,Lambda运行时会优先处理返回值,忽略传入的callback回调,可能出现日志缓冲区未完成写入就提前终止执行的问题,导致日志丢失。你可以将代码简化为如下形式:
exports.handler = async (event) => { console.log(JSON.stringify(event)); return event; };
2. 日志组匹配校验
你提供的执行角色权限中开放的日志组路径为/aws/lambda/signoutUserFromAllSessions,请确认你查看的CloudWatch日志组和Cognito预认证触发器绑定的Lambda函数名称完全一致,避免找错日志位置。
你当前已经配置了AWSLambdaBasicExecutionRole托管策略,日志写入权限是正常的,不需要额外调整权限配置。
验证方法
部署修改后的代码后,可以直接在Lambda控制台的「测试」功能页构造Cognito预认证触发器的测试事件运行,确认控制台输出正常后再对接Cognito触发器即可。
内容的提问来源于stack exchange,提问作者user3873617
相关产品推荐
相关产品推荐

