[Error] DynamoDB node.js query err : One or more parameter values were invalid: Type mismatch for key xyz expected: S actual: M

이경은·2022년 11월 11일
0

❌ Error

Lambda에서 DynamoDB를 쿼리하는데 문제가 발생했다.

**One or more parameter values were invalid: Type mismatch for key xyz expected: S actual: M**

📌 Solution

에러의 원인은 버전으로, 버전이 바뀌면서 문법이 변경되어서 기존에 쓰던 형식이 사용할 수 없게 되었던 것이었다. 문법을 변경해서 작성해주었다.

before

var ddb = new aws.DynamoDB({apiVersion: '2012-10-08'});

let ddbParams = {
    Item: {
        'userId': {S: event.request.userAttributes.sub},
        'userName': {S: event.request.userAttributes.name},
        'email': {S: event.request.userAttributes.email},
    },
    TableName: "test-user-tbl"
};

after

const ddb = new aws.DynamoDB.DocumentClient();

let ddbParams = {
    Item: {
        'userId': event.request.userAttributes.sub,
        'userName': event.request.userAttributes.name,
        'email': event.request.userAttributes.email,
    },
    TableName: "test-user-tbl"
};

참조

https://stackoverflow.com/questions/57139203/one-or-more-parameter-values-were-invalid-type-mismatch-for-key-xyz-expected-s

profile
Web Developer

0개의 댓글