Amazon web services AWS Cognito从Lambda向组添加用户
诚然,这是我第一次尝试用Cognito做任何事情,但是我在通过lambda向用户组添加用户时遇到了麻烦。以下是lambda代码:Amazon web services AWS Cognito从Lambda向组添加用户,amazon-web-services,aws-lambda,amazon-cognito,Amazon Web Services,Aws Lambda,Amazon Cognito,诚然,这是我第一次尝试用Cognito做任何事情,但是我在通过lambda向用户组添加用户时遇到了麻烦。以下是lambda代码: var AWS = require('aws-sdk'); var cognitoidentityserviceprovider = new AWS.CognitoIdentityServiceProvider({apiVersion: '2016-04-18'}); exports.handler = (event, context, 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");
});
console.log('after')
console.log("Executed.");
context.succeed(event);
};
我已将AWS资源添加到lambda
Amazon CloudWatch日志
亚马逊认知身份
亚马逊Cognito同步
amazoncognito用户池
亚马逊社交网站
身份和访问管理
以下是输出:
功能日志:启动请求ID:e6fb3c51-3928-40e1-b0c4-f7a2d9054ef0
版本:$最新
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信息已执行。
结束请求ID:e6fb3c51-3928-40e1-b0c4-f7a2d9054ef0报告请求ID:
e6fb3c51-3928-40e1-b0c4-f7a2d9054ef0持续时间:657.73毫秒计费
持续时间:700毫秒内存大小:128 MB最大使用内存:37 MB初始
持续时间:464.08毫秒
我没有看到的是调用了cognitoidentityserviceprovider.adminAddUserToGroup
,并运行了测试,但看起来没有向ROLE\u ADMIN
组添加任何用法。要将用户添加到组中,我应该做什么
任何意见都将不胜感激。。。谢谢。正如您所看到的,您无法看到
成功
或错误
日志
操作adminAddUserToGroup
在完成之前已被取消,因为您调用了context.success(event)
以立即杀死该函数
如何解决,只需等待操作完成,然后kill
函数。一般来说,我们有两种选择:
回调
功能(推荐):等待调用堆栈清除
:在函数的第一行插入context.callbackaitsforeptyeventloop=true
(在声明参数
变量之前)不要太迂腐,但你能明确说明哪一个是选项一,哪一个是选项二吗?我假设文本框中的代码都是第一个选项,告诉函数等待调用堆栈清除是选项2?@StillLearningToCode ohh,你说得对,我更新了答案!谢谢
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);
});
};