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

在AWS Lambda中能否通过Username查询AWS Cognito用户?

问题解答

你的理解没有错误,GetUserCommand确实不支持Username作为入参:

  • GetUserCommand的设计定位是供已登录的终端用户查询自身的账户信息,仅接受AccessToken作为唯一必填入参,入参结构中自然不会包含Username字段,无法满足你通过用户名检索指定用户的需求。

如果你需要在AWS Lambda(服务端可信场景)中通过Username查询Cognito用户池中的用户信息,可使用AdminGetUserCommand接口,使用说明如下:

  • 该接口属于Cognito服务端管理类接口,必填入参为UserPoolId(目标Cognito用户池ID)和Username(待查询的用户名)
  • 你需要先为Lambda的执行角色配置cognito-idp:AdminGetUser操作权限,关联对应用户池资源,否则会触发权限报错

代码示例(AWS JS SDK v3)

import { CognitoIdentityProviderClient, AdminGetUserCommand } from "@aws-sdk/client-cognito-identity-provider";

// 初始化Cognito客户端,区域替换为你的用户池所属AWS区域
const cognitoClient = new CognitoIdentityProviderClient({ region: "cn-north-1" });

async function queryCognitoUserByUsername(username) {
  const command = new AdminGetUserCommand({
    UserPoolId: "你的用户池ID,格式类似cn-north-1_XXXXXX",
    Username: username
  });
  try {
    const userInfo = await cognitoClient.send(command);
    // userInfo中包含用户的所有属性、账户状态、注册时间等完整信息
    return userInfo;
  } catch (error) {
    console.error("用户查询失败:", error);
    throw error;
  }
}

如果需要同时匹配用户名以外的其他属性、或者批量查询用户,可以使用ListUsersCommand接口,通过Filter参数设置过滤条件实现。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 00:57:04