티스토리 뷰
node에서 aws-sdk 사용 할 때 async / await 를 사용하려면 어떻게 해야 할까
예를 들어 DynamoDB의 Document Client 에서 update 를 하려고 하면 해당 부분 소스는 아래와 같다
update: function(params, callback) {
var operation = this.serviceClientOperationsMap['update'];
return this.makeServiceRequest(operation, params, callback);
},
여기 있는 makeServiceRequest는 무엇일까?
따라가 보면 꽤 흥미진진하다. 중요한 것은 request.d.ts에 있는 class Request를 리턴한다는 것이다.
그리고 해당 클래스의 메소드를 살펴보면 아래와 같은 메소드가 있다.
promise(): Promise<PromiseResult<D, E>>
오오 딱 봐도 Promise의 Resolve와 Reject를 리턴할 것 같이 생겼다.
즉 위의 경우에서 DDB Client의 update 메소드에서 Promise를 사용하고 싶다면 아래처럼 하면 된다.
var dynamodb = new AWS.DynamoDB.DocumentClient({region: region});
const data = await dynamodb.update(queryParams).promise();
예전에 Lambda 코드에서 DDB Client를 사용해서 CRUD 코드를 짠적이 있었는데 자꾸 리턴값에 null이 들어온적이 있다. 바로 Promise 때문이었던 것 같다.
결론 : 결국 AWS에 Request하는 메소드는 Request를 리턴하니.. Promise를 잘 쓰자
'Cloud > AWS' 카테고리의 다른 글
Amazon Pinpoint 이벤트 트리거 (0) | 2020.05.31 |
---|---|
AWS Java SDK v2 코드로 AWS Elasticsearch에 쿼리하기 (0) | 2020.05.31 |
AWS CloudFormation 안에 Lambda 코드를 포함하여 배포하기 (0) | 2020.04.19 |
AWS Code Build에서 Code Commit 코드 가져오기 (0) | 2020.03.29 |
AWS Step Functions 예제 / 람다에서 람다 호출하기 (0) | 2020.03.24 |
[AWS] EC2 EBS Root Volume으로 마운트 하기 (0) | 2020.03.11 |
AWS EC2의 sshd_config 함부로 건들지 말자 (0) | 2020.03.08 |
Amazon Kinesis Firehose 의 Convert Record Format 사용 하기 (6) | 2020.02.12 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
TAG
- 프로그래밍
- jni
- jni강좌
- algorithm
- driver
- 드라이버
- Python
- MFC
- java
- Troubleshooting
- gcc
- API
- 안드로이드
- database
- Cloud
- winapi
- 리눅스
- AWS
- android
- it
- Visual C++
- Quiz
- C++
- 음악
- db
- NDK
- C
- linux
- source
- kering
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
글 보관함