AWS Cognito добавить пользователя в группу из Lambda - PullRequest
0 голосов
/ 29 октября 2019

по общему признанию, это моя первая попытка что-либо сделать с Cognito, но у меня возникают проблемы при добавлении пользователя в группу пользователей через 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 в лямбду

Amazon CloudWatch Журналы Amazon Cognito Identity Amazon Cognito Sync Amazon Cognito Пользовательские пулы Amazon 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-40e54-f00000000000Выполненная. END RequestId: e6fb3c51-3928-40e1-b0c4-f7a2d9054ef0 REPORT RequestId: e6fb3c51-3928-40e1-b0c4-f7a2d9054ef0 Продолжительность: 657,73 мс Объявленная длительность: 700 мс Размер памяти: 128 МБ Макс. Объем памяти, использованный: 37 МБ Продолжительность:1011 *

то, что я не вижу, это то, что вызывается cognitoidentityserviceprovider.adminAddUserToGroup, и тест выполняется, но не похоже, что в группу ROLE_ADMIN добавляются какие-либо варианты использования. что я должен делать, чтобы добавлять пользователей в группу?

любой вклад будет принята с благодарностью ... спасибо.

1 Ответ

0 голосов
/ 30 октября 2019

Как видите, вы не можете видеть Success или Error журнал.

Действие adminAddUserToGroup было отменено до его завершения, поскольку вы вызываете context.succeed(event) на killфункция немедленно.

Как решить, просто подождите, пока действие не закончится, затем kill функция. Как правило, у нас есть 2 варианта:

  1. Правильно с функцией 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 переменной)
...