곧 AWS SDK for JavaScript(v2)에 대한 지원이 종료될 예정임을 알려드립니다
DynamoDB 문서 클라이언트 사용
이 Node.js 코드 예제는 다음을 보여 줍니다.
문서 클라이언트를 사용하여 DynamoDB 테이블에 액세스하는 방법
시나리오
DynamoDB 문서 클라이언트는 속성 값의 개념을 추상화하여 항목 작업을 간소화합니다. 이 추상화는 입력 파라미터로 제공되는 기본 JavaScript 유형에 주석을 달고, 주석이 달린 응답 데이터를 기본 JavaScript 유형으로 변환합니다.
DynamoDB 문서 클라이언트 클래스에 대한 자세한 내용은 API 참조의 AWS.DynamoDB.DocumentClient
섹션을 참조하세요. Amazon DynamoDB를 사용한 프로그래밍에 관한 자세한 내용은 Amazon DynamoDB 개발자 안내서의 DynamoDB를 사용한 프로그래밍을 참조하세요.
이 예제에서는 일련의 Node.js 모듈에서 문서 클라이언트를 사용하여 DynamoDB 테이블에 대한 기본 작업을 수행합니다. 이 코드는 SDK for JavaScript에서 DynamoDB 문서 클라이언트 클래스의 다음 메서드를 사용하여 테이블을 쿼리하고 스캔합니다.
사전 필수 작업
이 예제를 설정하고 실행하려면 먼저 다음 작업을 완료합니다.
Node.js를 설치합니다. 자세한 내용은 Node.js
웹 사이트를 참조하세요. 사용자 자격 증명을 사용하여 공유 구성 파일을 생성합니다. 공유 자격 증명 파일 제공에 대한 자세한 내용은 공유 인증 자격 증명 파일에서 Node.js에 인증 자격 증명 로드 섹션을 참조하세요.
액세스할 수 있는 항목이 포함된 DynamoDB 테이블을 생성합니다. SDK for JavaScript를 사용하여 DynamoDB 테이블을 생성하는 방법에 관한 자세한 내용은 DynamoDB에서 테이블 생성 및 사용 단원을 참조하세요. DynamoDB 콘솔
을 사용하여 테이블을 생성할 수도 있습니다.
테이블에서 항목 가져오기
파일 이름이 ddbdoc_get.js
인 Node.js 모듈을 생성합니다. 위와 같이 SDK를 구성해야 합니다. DynamoDB에 액세스하려면 AWS.DynamoDB.DocumentClient
객체를 생성합니다. 테이블에서 항목을 가져오는 데 필요한 파라미터를 포함하는 JSON 객체를 생성합니다. 이 예제에서는 테이블의 이름, 해당 테이블에 있는 해시 키의 이름, 가져올 항목에 대한 해시 키의 값이 포함됩니다. DynamoDB 문서 클라이언트의 get
메서드를 직접 호출합니다.
// Load the AWS SDK for Node.js var AWS = require("aws-sdk"); // Set the region AWS.config.update({ region: "REGION" }); // Create DynamoDB document client var docClient = new AWS.DynamoDB.DocumentClient({ apiVersion: "2012-08-10" }); var params = { TableName: "EPISODES_TABLE", Key: { KEY_NAME: VALUE }, }; docClient.get(params, function (err, data) { if (err) { console.log("Error", err); } else { console.log("Success", data.Item); } });
예제를 실행하려면 명령줄에서 다음을 입력합니다.
node ddbdoc_get.js
이 샘플 코드는 GitHub
테이블에 항목 넣기
파일 이름이 ddbdoc_put.js
인 Node.js 모듈을 생성합니다. 위와 같이 SDK를 구성해야 합니다. DynamoDB에 액세스하려면 AWS.DynamoDB.DocumentClient
객체를 생성합니다. 항목을 테이블에 쓰는 데 필요한 파라미터를 포함하는 JSON 객체를 생성합니다. 이 예제에서는 테이블의 이름, 해시 키 및 값을 포함하여 추가하거나 업데이트할 항목에 대한 설명, 항목에서 설정할 속성의 이름과 값이 포함됩니다. DynamoDB 문서 클라이언트의 put
메서드를 직접 호출합니다.
// Load the AWS SDK for Node.js var AWS = require("aws-sdk"); // Set the region AWS.config.update({ region: "REGION" }); // Create DynamoDB document client var docClient = new AWS.DynamoDB.DocumentClient({ apiVersion: "2012-08-10" }); var params = { TableName: "TABLE", Item: { HASHKEY: VALUE, ATTRIBUTE_1: "STRING_VALUE", ATTRIBUTE_2: VALUE_2, }, }; docClient.put(params, function (err, data) { if (err) { console.log("Error", err); } else { console.log("Success", data); } });
예제를 실행하려면 명령줄에서 다음을 입력합니다.
node ddbdoc_put.js
이 샘플 코드는 GitHub
테이블에서 항목 업데이트
파일 이름이 ddbdoc_update.js
인 Node.js 모듈을 생성합니다. 위와 같이 SDK를 구성해야 합니다. DynamoDB에 액세스하려면 AWS.DynamoDB.DocumentClient
객체를 생성합니다. 항목을 테이블에 쓰는 데 필요한 파라미터를 포함하는 JSON 객체를 생성합니다. 이 예제에서는 테이블의 이름, 업데이트할 항목의 키, ExpressionAttributeValues
파라미터에서 값을 할당하는 토큰을 사용하여 업데이트할 항목의 속성을 정의하는 UpdateExpressions
집합이 포함됩니다. DynamoDB 문서 클라이언트의 update
메서드를 직접 호출합니다.
// Load the AWS SDK for Node.js var AWS = require("aws-sdk"); // Set the region AWS.config.update({ region: "REGION" }); // Create DynamoDB document client var docClient = new AWS.DynamoDB.DocumentClient({ apiVersion: "2012-08-10" }); // Create variables to hold numeric key values var season = SEASON_NUMBER; var episode = EPISODES_NUMBER; var params = { TableName: "EPISODES_TABLE", Key: { Season: season, Episode: episode, }, UpdateExpression: "set Title = :t, Subtitle = :s", ExpressionAttributeValues: { ":t": "NEW_TITLE", ":s": "NEW_SUBTITLE", }, }; docClient.update(params, function (err, data) { if (err) { console.log("Error", err); } else { console.log("Success", data); } });
예제를 실행하려면 명령줄에서 다음을 입력합니다.
node ddbdoc_update.js
이 샘플 코드는 GitHub
테이블 쿼리
이 예제에서는 비디오 시리즈에 대한 에피소드 정보가 포함된 테이블을 쿼리하여 지정된 어구가 자막에 포함되어 있는 에피소드 9 이후 두 번째 시즌 에피소드의 에피소드 제목과 자막을 반환합니다.
파일 이름이 ddbdoc_query.js
인 Node.js 모듈을 생성합니다. 위와 같이 SDK를 구성해야 합니다. DynamoDB에 액세스하려면 AWS.DynamoDB.DocumentClient
객체를 생성합니다. 테이블을 쿼리하는 데 필요한 파라미터를 포함하는 JSON 객체를 생성합니다. 이 예제에서는 테이블 이름, 쿼리에 필요한 ExpressionAttributeValues
, 해당 값을 사용하여 쿼리에서 반환되는 항목을 정의하는 KeyConditionExpression
이 포함됩니다. DynamoDB 문서 클라이언트의 query
메서드를 직접 호출합니다.
// Load the AWS SDK for Node.js var AWS = require("aws-sdk"); // Set the region AWS.config.update({ region: "REGION" }); // Create DynamoDB document client var docClient = new AWS.DynamoDB.DocumentClient({ apiVersion: "2012-08-10" }); var params = { ExpressionAttributeValues: { ":s": 2, ":e": 9, ":topic": "PHRASE", }, KeyConditionExpression: "Season = :s and Episode > :e", FilterExpression: "contains (Subtitle, :topic)", TableName: "EPISODES_TABLE", }; docClient.query(params, function (err, data) { if (err) { console.log("Error", err); } else { console.log("Success", data.Items); } });
예제를 실행하려면 명령줄에서 다음을 입력합니다.
node ddbdoc_query.js
이 샘플 코드는 GitHub
테이블에서 항목 삭제
파일 이름이 ddbdoc_delete.js
인 Node.js 모듈을 생성합니다. 위와 같이 SDK를 구성해야 합니다. DynamoDB에 액세스하려면 AWS.DynamoDB.DocumentClient
객체를 생성합니다. 테이블에서 항목을 삭제하는 데 필요한 파라미터를 포함하는 JSON 객체를 생성합니다. 이 예제에서는 테이블의 이름, 삭제할 항목에 대한 해시 키의 이름과 값이 포함됩니다. DynamoDB 문서 클라이언트의 delete
메서드를 직접 호출합니다.
// Load the AWS SDK for Node.js var AWS = require("aws-sdk"); // Set the region AWS.config.update({ region: "REGION" }); // Create DynamoDB document client var docClient = new AWS.DynamoDB.DocumentClient({ apiVersion: "2012-08-10" }); var params = { Key: { HASH_KEY: VALUE, }, TableName: "TABLE", }; docClient.delete(params, function (err, data) { if (err) { console.log("Error", err); } else { console.log("Success", data); } });
예제를 실행하려면 명령줄에서 다음을 입력합니다.
node ddbdoc_delete.js
이 샘플 코드는 GitHub