You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Lambda未出现在用户迁移及Pre-Token generation触发器下拉列表中

AWS Cognito User Migration/Pre-Token Generation触发器无法找到对应Lambda函数的问题排查与解决

问题诱因

  • Lambda架构兼容性问题:User Migration和Pre-Token Generation两类触发器暂不兼容ARM64(Graviton2)架构的Lambda函数,其余大部分Cognito触发器已完成ARM架构适配,所以会出现其余触发器可选、仅这两类找不到的情况。
  • Lambda运行时版本限制:这两类触发器对Lambda运行时的版本要求比其余触发器更严格,例如低于Node.js 14.x、Python 3.8的已废弃运行时版本,以及自定义运行时(Custom Runtime)的部分版本,会被这两类触发器的检索逻辑直接过滤。
  • Lambda资源权限前置校验:其余Cognito触发器仅在绑定完成后才校验Lambda调用权限,而这两类触发器会在下拉列表加载阶段就提前校验Lambda的资源策略是否允许Cognito服务调用,若未配置对应权限则不会展示。
  • 旧版Cognito用户池兼容问题:2021年之前创建且未升级功能版本的Cognito用户池,存在部分触发器兼容缺陷,也会导致符合要求的Lambda无法展示。

解决方案

  • 切换Lambda架构为x86_64:进入Lambda函数配置页,在「运行时设置」中修改架构为x86_64,保存后等待1-2分钟再刷新Cognito触发器页面即可看到对应Lambda。
  • 升级Lambda运行时到官方推荐稳定版:例如将Node.js升级到16.x/18.x,Python升级到3.9/3.10,避免使用已标记为废弃的运行时版本。
  • 给Lambda配置Cognito调用权限:在Lambda函数的「权限」-「基于资源的策略」中添加如下权限配置,替换占位符为你的实际资源参数即可:
{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "Service": "cognito-idp.amazonaws.com"
      },
      "Action": "lambda:InvokeFunction",
      "Resource": "arn:aws:lambda:<区域ID>:<账号ID>:function:<Lambda函数名>",
      "Condition": {
        "StringEquals": {
          "AWS:SourceArn": "arn:aws:cognito-idp:<区域ID>:<账号ID>:userpool/<用户池ID>"
        }
      }
    }
  ]
}
  • 升级Cognito用户池到最新功能版本:进入Cognito用户池的「属性」页面,找到功能版本选项升级到最新版后重试即可。
  • 控制台仍无法展示时可通过CLI直接绑定:执行如下命令即可跳过控制台下拉选择步骤直接完成触发器绑定,替换对应占位符即可:
    aws cognito-idp update-user-pool --region <区域ID> --user-pool-id <用户池ID> --lambda-config UserMigration=<LambdaARN>,PreTokenGeneration=<LambdaARN>

内容的提问来源于stack exchange,提问作者Kurnal saini

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 19:18:01