【发布时间】:2020-10-16 07:43:24
【问题描述】:
我是 AWS Lambda 函数的新手,我想创建一个新函数来从 Amplify 生成的 Cognito 用户池中获取用户组,我看到了很多示例,但到目前为止我的函数不起作用,我想我'我可能错过了一些许可,我不确定。这是我的功能:
const AWS = require('aws-sdk');
exports.handler = async (event) => {
let cognito = new AWS.CognitoIdentityServiceProvider();
const params = { UserPoolId: 'us-east-1_xxxxxxx'};
let res = { status: 'no changes' };
cognito.listGroups(params, function(err, data) {
console.log('inside of response')
if (err) {
res = { error: err };
}
else {
res = { data: data };
}
})
const response = {
statusCode: 200,
body: JSON.stringify(res),
};
return response;
};
我已经在this answer here之后添加了权限
我正在关注 the API docs here 调用 Cognito listGroups 方法。
我在网上做所有事情,为了测试它我只是使用测试按钮,到目前为止我得到的唯一响应是:{ status: 'no changes' },甚至没有显示函数内部的日志。
如何使此功能适用于我的 Amplify Cognito 用户投票中的 listGroups?是否缺少权限?
类似问题:
【问题讨论】:
-
将 cognito.listGroups 移至单独的函数并返回承诺。在结果处理程序中等待 cognito.listGroups
-
谢谢@Nonik。将 移动到单独的函数不是答案,但给了我一个使用
.promise()并让该函数工作的想法。
标签: javascript amazon-web-services aws-lambda amazon-cognito aws-amplify