诚然,这是我第一次尝试使用Cognito做任何事情,但是我无法通过lambda将用户添加到用户组中。这是lambda代码:
var AWS = require('aws-sdk');
var cognitoidentityserviceprovider = new AWS.CognitoIdentityServiceProvider({apiVersion: '2016-04-18'});
exports.handler = (event, context, callback) => {
var params = {
GroupName: 'ROLE_ADMIN',
// UserPoolId: 'arn:aws:cognito-idp:us-east-1:23453453453:userpool/us-east-1_XXX',
UserPoolId: 'us-east-1_XXX',
// Username: 'user@email.com'
Username: 'ec12f604-a83c-4c76-856b-3acd9ca70562'
}
console.log('before')
cognitoidentityserviceprovider.adminAddUserToGroup(params, function(err, data) {
console.log(params)
if (err) console.log("Error");
else console.log("Success");
});
console.log('after')
console.log("Executed.");
context.succeed(event);
};
我已将AWS资源添加到lambda
Amazon CloudWatch日志 Amazon Cognito身份 Amazon Cognito同步 Amazon Cognito用户池 亚马逊SNS 身份和访问管理
这是输出:
功能日志:START RequestId:e6fb3c51-3928-40e1-b0c4-f7a2d9054ef0 版本:$ LATEST 2019-10-29T19:04:58.516Z e6fb3c51-3928-40e1-b0c4-f7a2d9054ef0之前的信息 2019-10-29T19:04:59.017Z e6fb3c51-3928-40e1-b0c4-f7a2d9054ef0之后的信息 2019-10-29T19:04:59.018Z e6fb3c51-3928-40e1-b0c4-f7a2d9054ef0 INFO已执行。 END RequestId:e6fb3c51-3928-40e1-b0c4-f7a2d9054ef0 REPORT RequestId: e6fb3c51-3928-40e1-b0c4-f7a2d9054ef0时长:657.73 ms已结算 持续时间:700 ms内存大小:128 MB使用的最大内存:37 MB初始化 持续时间:464.08 ms
我没有看到被调用cognitoidentityserviceprovider.adminAddUserToGroup
,并且测试运行了,但是看起来没有任何用途被添加到ROLE_ADMIN
组中。将用户添加到组中应该怎么做?
任何输入将不胜感激...谢谢。
答案 0 :(得分:0)
如您所见,您看不到Success
或Error
日志。
操作adminAddUserToGroup
在完成之前已被取消,因为您立即调用context.succeed(event)
来kill
函数。
如何解决,只需等到操作完成,然后kill
函数即可。一般来说,我们有2个选项:
callback
功能(建议)正确操作:var AWS = require('aws-sdk');
var cognitoidentityserviceprovider = new AWS.CognitoIdentityServiceProvider({ apiVersion: '2016-04-18' });
exports.handler = (event, context, callback) => {
var params = {
GroupName: 'ROLE_ADMIN',
// UserPoolId: 'arn:aws:cognito-idp:us-east-1:23453453453:userpool/us-east-1_XXX',
UserPoolId: 'us-east-1_XXX',
// Username: 'user@email.com'
Username: 'ec12f604-a83c-4c76-856b-3acd9ca70562'
}
console.log('before')
cognitoidentityserviceprovider.adminAddUserToGroup(params, function (err, data) {
console.log(params)
if (err) console.log("Error");
else console.log("Success");
// when the action finished
console.log('after');
console.log("Executed.");
context.succeed(event);
});
};
wait until the call stack is clear
:在函数的第一行(在声明context.callbackWaitsForEmptyEventLoop = true
变量之前)插入params