Я создал приложение, которое позволяет пользователям регистрироваться, которое добавляет их в мой AWS пул пользователей Cognito. Это было сделано с использованием AWS -SDK для PHP, в частности методом signUp. Я попытался создать функцию Lambda, которая запускается после PostConfirmation, которая добавляет данные пользователя в мою таблицу DynamoDB, и она работает, когда я использую функцию Test, но когда я настраиваю ее для развертывания в реальном времени, она не добавляет пользователей в таблицу и не дает мне никаких ошибок.
Вот параметры моего метода:
$this->client->signUp([
'ClientId' => $this->client_id,
'Username' => $username,
'Password' => $password,
'UserAttributes' => [
[
'Name' => 'name',
'Value' => $name
],
[
'Name' => 'email',
'Value' => $email
],
]
]);
Это моя лямбда-функция:
var aws = require('aws-sdk');
const ddb = new aws.DynamoDB({apiVersion: '2012-10-08'});
aws.config.update({region: 'us-east-1'});
exports.handler = function(event, context, callback) {
var params = {
TableName: 'RecipeUsersDB',
Item: {
'username': {S: event.request.userName},
'name': {S: event.request.userAttributes.name},
'email': {S: event.request.userAttributes.email}
}
}
ddb.putItem(params, function(err, data) {
if (err) {
console.log("Error", err);
} else {
console.log("Exit", data);
}
});
callback(null);
};
Это параметры тестового события, которые работа:
{
"request": {
"userName": "hrefrlo",
"userAttributes": {
"sub": "e1feer",
"name": "2srhserrh",
"email": "3srwergthgsrg"
}
},
"response": {}
}
Я дал функции несколько разных политик разрешений:
AmazonDynamoDBFullAccess
AmazonCognitoDeveloperAuthenticatedIdentities
AmazonCognitoPowerUser
AWSLambdaBasicExecutionRole
AWSLambdaInvocation-DynamoDB
Это только для унифицированного назначения, поэтому приложение (веб-сайт) будет использоваться только для демонстрации и будет развернут на Бобовом стебле. Любая помощь приветствуется, спасибо!