728x90
Dynamo DB 코드 사용법
[설치]
npm i @aws-sdk/client-dynamodb
npm i @aws-sdk/lib-dynamodb
[코드]
const { DynamoDBClient } = require('@aws-sdk/client-dynamodb');
const {
DynamoDBDocumentClient,
PutCommand,
QueryCommand,
GetCommand,
DeleteCommand,
} = require('@aws-sdk/lib-dynamodb');
const client = new DynamoDBClient({
region: '사용하는 지역',
credentials: {
accessKeyId: process.env.DYNAMODB_ACCESS_KEY,
secretAccessKey: process.env.DYNAMODB_SECRET_ACCESS_KEY,
},
});
const dynamoDB = DynamoDBDocumentClient.from(client);
// DynamoDB 테이블 이름
const tableName = '테이블이름';
//저장 함수
async function saveDynamoInfo(information) {
const params = {
TableName: tableName,
Item: {
key : Value,
key : Value,
key : Value,
key : Value,
},
};
await dynamoDB.send(new PutCommand(params));
return true;
}
// primary 키로 확인 함수
// GSI는 불가능
async function checkDynamoInfo(value) {
const params = {
TableName: tableName,
Key: {
primary Key: value,
},
};
const result = await dynamoDB.send(new GetCommand(params));
return result;
}
// 데이터 확인 함수 query (GSI 이용)
async function queryDynamoInfo(type, value) {
const params = {
TableName: tableName,
IndexName: type, // GSI 이름
KeyConditionExpression: '#name = :value', // userId 속성을 키 조건으로 사용
ExpressionAttributeNames: {
'#name': type, // 속성 이름 설정
},
ExpressionAttributeValues: {
':value': value, // 검색할 userId 값
},
};
const result = await dynamoDB.send(new QueryCommand(params));
return result;
}
// 데이터 삭제 함수
// 마찬가지로 GSI 사용 불가능
// primary 키로만 가능
async function deleteDynamoInfo(value) {
const params = {
TableName: tableName,
Key: {
name: value,
},
};
const result = await dynamoDB.send(new DeleteCommand(params));
return result.Item;
}
module.exports = {
saveDynamoInfo,
queryDynamoInfo,
checkDynamoInfo,
deleteDynamoInfo,
};
728x90
'잡다한 지식' 카테고리의 다른 글
[JS] await 과 promise (0) | 2024.07.26 |
---|---|
[JS] for와 관련된 문법 (0) | 2024.07.08 |
[AWS] Dynamo DB 생성 방법 및 설정 (0) | 2024.06.20 |
[NODE] Winston 사용 법 (0) | 2024.04.16 |
[Linux] 터미널에서 내가 사용하고 있는 브랜치 표시하기 (0) | 2024.03.04 |