일단 바로 Lambda 함수를 만들어보도록 하겠습니다. 그런데, 기존에는 python3.9를 선택했지만, 이를 python을 통해서 하기에는 어렵지만, 이번에는 Node를 통해서 진행해 보도록 하겠습니다.
그리고 Lambda에서 DynamoDB에 접근할 수 있게끔 권한을 추가해 주겠습니다.
그리고 Node코드로 DynamoDB에 접근해서 항목을 추가하는 코드를 작성해 보도록 하겠습니다.
https://docs.aws.amazon.com/ko_kr/apigateway/latest/developerguide/http-api-dynamo-db.html
이 공식문서를 참고했습니다. 그리고 API Gateway는 활용하지 않고 그냥 테스팅 용도로 간단히 작성해 보도록 하겠습니다. Node에서 DynamoDB를 조작하려면, aws-sdk를 불러오고 코드를 작성해야 합니다.
dynamodb Function
const AWS = require('aws-sdk');
const ddb = new AWS.DynamoDB.DocumentClient({'region': 'ap-northeast-2'});
exports.handler = async (event, context, callback) => {
const requestId = context.awsRequestId;
await createMessage(requestId).then(() => {
callback(null, {
statusCode: 201,
body: '',
headers: {
'Access-Control-Allow-Origin': '*'
}
});
}).catch((err) => {
console.error(err);
});
}
function createMessage(requestId) {
const params = {
TableName: 'Orders',
Item: {
'OrderID': requestId,
'Date': '20220720'
}
}
return ddb.put(params).promise();
}
// exports.handler = async (event) => {
// // TODO implement
// const response = {
// statusCode: 200,
// body: JSON.stringify('Hello from Lambda!'),
// };
// return response;
// };
대충 이렇게 lambda function을 실행하면 이전에 만들었던 Orders테이블에 값을 임의로 하나 추가하게 작성했습니다.
그리고 Deploy -> Test를 하게 되면 아래와 같이 DynamoDB에 새 아이템이 아래와 같이 추가된 것을 확인할 수 있습니다.
다음에는 이를 Python을 통해서 진행해 보도록 하겠습니다.
'DevOps > AWS Architecture' 카테고리의 다른 글
[ DevOps ] - (부록) AWS SAM 개요 및 실습 (0) | 2022.07.20 |
---|---|
[ DevOps ] - (DynamoDB) Python으로 DynamoDB 접근 (0) | 2022.07.20 |
[ DevOps ] - (DynamoDB) DynamoDB 구성하기 (0) | 2022.07.20 |
[ DevOps ] - (DynamoDB) DynamoDB 개요와 Index 구성 (0) | 2022.07.20 |
[ DevOps ] - (DynamoDB) 데이터 아키텍처의 변화 (0) | 2022.07.20 |