要使用AWS Lambda来获取AWS Cognito用户列表,可以按照以下步骤进行操作:
创建一个Lambda函数:
添加所需的IAM权限:
编写Lambda函数代码:
const AWS = require('aws-sdk');
const cognito = new AWS.CognitoIdentityServiceProvider();
exports.handler = async (event, context) => {
try {
const params = {
UserPoolId: 'YOUR_USER_POOL_ID',
AttributesToGet: ['email', 'name'] // 可以根据需要选择要获取的用户属性
};
const data = await cognito.listUsers(params).promise();
const userList = data.Users.map(user => {
return {
Username: user.Username,
Email: user.Attributes.find(attr => attr.Name === 'email').Value,
Name: user.Attributes.find(attr => attr.Name === 'name').Value
};
});
console.log(userList);
return {
statusCode: 200,
body: JSON.stringify(userList)
};
} catch (error) {
console.error(error);
return {
statusCode: 500,
body: JSON.stringify({ message: 'Internal server error' })
};
}
};
YOUR_USER_POOL_ID替换为您的Cognito用户池ID。AttributesToGet数组,以获取不同的用户属性。配置Lambda函数:
测试Lambda函数:
请注意,此代码示例假定您已为Lambda函数的执行角色配置了适当的Cognito权限。如果您的执行角色不具备访问Cognito的权限,您将需要相应地更新执行角色的策略。