Я создаю лямбда-функцию пост-триггера с NodeJS, чтобы переместить недавно зарегистрированного пользователя в определенный пул:
const AWS = require('aws-sdk');
const cognito = new AWS.CognitoIdentityServiceProvider();
export const hello = (event, context, callback) => {
console.log(event);
const params = {
GroupName: 'ADMIN',
Username: event.userName,
UserPoolId: event.userPoolId,
};
cognito.adminAddUserToGroup(params, (err, data) => {
if (err) {
callback(err)
}
callback(null, event);
});
};
Мой serverless.yml
имеет добавленный iamRoleStatements, поэтому функция имеет необходимые разрешения (я думаю,):
provider:
name: aws
runtime: nodejs8.10
stage: dev
region: us-east-1
iamRoleStatements:
- Effect: Allow
Action:
- cognito-sync:*
- cognito-identity:*
Resource: arn:aws:cognito-identity:*:*:*
- Effect: Allow
Action:
- cognito-idp:*
Resource: arn:aws:cognito-idp:*:*:*
В настоящее время моя ошибка:
An error occurred (InvalidLambdaResponseException) when calling the AdminConfirmSignUp operation: Invalid lambda function output : Invalid JSON
ОБНОВЛЕНИЕ:
По необъяснимым причинам начал работать с тем же кодом.Пойди разберись.