Problemas de AWS SDK con DynamoDB y putItem

Estoy tratando de usar el aws-sdk para interactuar con dynamodb de AWS

Aquí está mi código:

 DynamoDB.putItem({ "TableName": tblName, "Item": { "UserId": { "N": obj.user_id.toString() }, "Identifier": { "S": obj.identifier }, "ReferralToken": { "S": obj.referral_token }, "CampaignId": { "N": obj.campaign_id.toString() }, "FirstName": { "S": obj.first_name }, "LastName": { "S": obj.last_name }, "Gender": { "S": obj.gender }, "BirthDate": { "S": obj.birthdate }, "Username": { "S": obj.username }, "MobileNumber": { "S": obj.mobile_number }, "PostalCodeText": { "S": obj.postal_code_text }, "Classification": { "S": obj.classification }, "DeliveryEmail": { "S": obj.delivery_email.toString() }, "DeliverySMS": { "S": obj.delivery_sms.toString() } } }, function (err, data) { console.log(err); console.log(data); }); 

El error que estoy recibiendo es

 { [ValidationException: Supplied AttributeValue is empty, must contain exactly one of the supported datatypes] message: 'Supplied AttributeValue is empty, must contain exactly one of the supported datatypes', code: 'ValidationException', time: Fri Oct 10 2014 10:15:25 GMT-0500 (CDT), statusCode: 400, retryable: false } 

No estoy seguro de lo que estoy haciendo mal

De acuerdo con la documentación de Put Item ,

Cuando agrega un elemento, los atributos de clave principal son los únicos atributos necesarios. Los valores de atributo no pueden ser nulos. Los atributos de tipo cadena y binario deben tener longitudes mayores que cero. Los atributos de tipo de conjunto no pueden estar vacíos. Las solicitudes con valores vacíos se rechazarán con una excepción ValidationException .

Así que asegúrese de que todos los valores no sean nulos y que todas las longitudes de cadena sean mayores que cero.

En mi caso, tengo el mismo problema debido a que los parámetros no válidos se envían desde la plantilla de asignación.

 #set($inputRoot = $input.path('$')) { "userId": "$input.params('userId')", "userEmail": "$input.params('userEmail')", "userName": "$input.params('userName')", "userPassword": "$input.params('userPassword')" } 

Aquí envié un parámetro extra userId, por eso ocurrió el error. Así que por favor revisa tu plantilla de mapeo, puede ser posible que hagas lo mismo.