반응형
에러 원인
DynamoDB TABLE 의 컬럼명과 DynamoDB 의 예약어가 충돌이 나서 발생하는 에러입니다
해결방법
TABLE 의 컬럼명을 사용할 때 (select 나 update 를 할 때) ExpressionAttributeNames 을 사용합니다
TABLE 컬럼명으로 Data 를 썼더니 사용할 때 마다 reserved keyword 라고 에러가 발생해서
SET 부분에서 Data 를 바로 쓰지 않고
ExpressionAttributeNames 으로 #push_data 라고 변경해서 사용하고
ExpressionAttributeNames 에서 #push_data 는 Data 컬럼이야 라고 지정해주니 잘 되네요
근본적으로는 예약어를 피해서 컬럼명을 만드는 게 좋겠지만
https://docs.aws.amazon.com/ko_kr/amazondynamodb/latest/developerguide/ReservedWords.html
예약어를 사용했을 경우에는 ExpressionAttributeNames 을 사용하세요
그외에 ExpressionAttributeNames 를 사용해야 하는 경우는
- 점이 포함된 속성 이름을 사용할 때
- 중첩 속성
- 속성이름을 반복적으로 사용할 때 단축어로 사용
예시는 링크에서 찾아볼 수 있습니다
반응형
'IT > Serverless' 카테고리의 다른 글
서버리스 api gateway 도메인 적용 (0) | 2019.08.14 |
---|---|
서버리스 사이트 스크린샷 찍기 (예전방식) (0) | 2019.08.12 |
서버리스 웹브라우저 한글폰트 적용하기 (0) | 2019.08.12 |
서버리스 네이버 검색어 가져오기 (serverless) (0) | 2019.08.09 |
서버리스 AWS IAM Key 수명관리 (0) | 2019.08.07 |
DeletionPolicy 옵션 사용시 주의사항 (0) | 2019.07.31 |
CloudFormation / Serverless Framework 삭제시 리소스 유지 (0) | 2019.07.30 |
네이버 블로그 파워링크 클릭 (0) | 2019.07.30 |