我是AWS Lambda Functions的新手,我想创建一个新函数以从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' }
,甚至没有显示函数内部的日志。 / p>
如何使此功能适用于我的Amplify Cognito用户投票中的listGroup?是否缺少任何权限?
类似的问题:
答案 0 :(得分:1)
我的经理让它正常工作:
const AWS = require('aws-sdk');
let cognito = new AWS.CognitoIdentityServiceProvider();
exports.handler = async (event) => {
const params = { UserPoolId: 'us-east-1_xxxxxxx'};
let res = { status: 'no changes' };
await cognito.listGroups(params, function(err, data) {
if (err) {
res = { error: err };
}
else {
res = { data: data };
}
}).promise();
const response = {
statusCode: 200,
body: JSON.stringify(res),
};
return response;
};
在认知通话结束时我错过了await
和.promise()
。