AWS를 이용한 Serverless 환경 구축 2 - Lambda로 DynamoDB 쓰고 읽기
지난 번에 Lamda로 hello_world만 찍기만 하여 demo의 성격 이었다면 이번은 실제로 DynamoDB에 쓰고 읽기를 해보자.
순서는 아래와 같다.
DynamoDB table 생성 후 IAM 권한 추가(Access DynamoDB) Lambda 함수의 쓰기, 읽기를 만들 것이다.
DynamoDB table 생성
1. "Create table"을 선택한다.

2. "Table name", "Primary key"에 값을 입력한 후 "Create"를 클릭한다.(예 Table name: Page, Primary key: id)
3. DynamoDB table이 간단하게 생성 되었다.
IAM DynamoDB 접근권한 추가
기존 Role에는 DynamoDB 접근권한이 없으므로 권한을 추가해야 한다.
1. 기존에 사용하던 " lambda_basic_execution" Role에 Jason을 추가 해 주면 된다.("Statement"[]안에 추가)
Lambda 쓰기 함수 만들기
이번에는 Lambda 함수로 DynamoDB에 쓰기를 해보자.
1. 기존에 만들어 놓은 Lambda 함수를 수정해서 사용 하기로 하자.(S3에 code를 업로드 했던 Lambda 함수의 코드를 변경하여 진행 할 것이다.)
지난번에 만들었던 code.js를 아래의 코드로 변경 한다.
2. code.js 디렉토리에서 npm install dynamo-doc를 한 후 해당 module을 추가 한다. code.zip으로 통채로 압축해서 S3에 업로드 한다.(자동 배포 될 것이다.)

3. 코드가 업데이트 된 Lambda로 이동하여 "test event"(상단 그림)를 설정한다. 또한 아래와 같이 Json data를 변경 한 후 "Save and test"를 클릭한다.

4. Lambda로그에 Success가 출력 되고 DynamoDB에 기록이 잘 된 것을 볼 수 있다.


Lambda 읽기 함수 만들기
1. 쓰기 함수와 동일하게 이름을 달리 하여 생성한다. 생성과정은 여러번 언급 하였기에 생략한다.
2. 다른 부분은 아래의 코드이다.
3. 테스트 이벤트 Jason도 아래와 같이 변경 해 준 후 테스트 한다.
4. 쓰기 함수와 마찬가지로 성공 한 log를 볼 수 있다.
순서는 아래와 같다.
DynamoDB table 생성 후 IAM 권한 추가(Access DynamoDB) Lambda 함수의 쓰기, 읽기를 만들 것이다.
DynamoDB table 생성
1. "Create table"을 선택한다.

2. "Table name", "Primary key"에 값을 입력한 후 "Create"를 클릭한다.(예 Table name: Page, Primary key: id)
3. DynamoDB table이 간단하게 생성 되었다.
IAM DynamoDB 접근권한 추가
기존 Role에는 DynamoDB 접근권한이 없으므로 권한을 추가해야 한다.
1. 기존에 사용하던 " lambda_basic_execution" Role에 Jason을 추가 해 주면 된다.("Statement"[]안에 추가)
{ "Sid": "Stmt1428341300017", "Action": [ "dynamodb:DeleteItem", "dynamodb:GetItem", "dynamodb:PutItem", "dynamodb:Query", "dynamodb:Scan", "dynamodb:UpdateItem" ], "Effect": "Allow", "Resource": "*" }
Lambda 쓰기 함수 만들기
이번에는 Lambda 함수로 DynamoDB에 쓰기를 해보자.
1. 기존에 만들어 놓은 Lambda 함수를 수정해서 사용 하기로 하자.(S3에 code를 업로드 했던 Lambda 함수의 코드를 변경하여 진행 할 것이다.)
지난번에 만들었던 code.js를 아래의 코드로 변경 한다.
console.log('Loading event'); var doc = require('dynamodb-doc'); var dynamodb = new doc.DynamoDB(); exports.handler = function(event, context) { console.log("Request received:\n", JSON.stringify(event)); console.log("Context received:\n", JSON.stringify(context)); var tableName = "Page"; var datetime = new Date().getTime().toString(); var item = { "id": event.id, "timedate": datetime, "name": event.name, "email": event.email }; console.log("Item:\n", item); dynamodb.putItem({ "TableName": tableName, "Item": item }, function(err, data) { if (err) { context.fail('ERROR: Dynamo failed: ' + err); } else { console.log('Dynamo Success: ' + JSON.stringify(data, null, ' ')); context.succeed('SUCCESS'); } }); }
2. code.js 디렉토리에서 npm install dynamo-doc를 한 후 해당 module을 추가 한다. code.zip으로 통채로 압축해서 S3에 업로드 한다.(자동 배포 될 것이다.)

3. 코드가 업데이트 된 Lambda로 이동하여 "test event"(상단 그림)를 설정한다. 또한 아래와 같이 Json data를 변경 한 후 "Save and test"를 클릭한다.

{ "id": "App", "name": "Smith", "email": "test@example.com" }
4. Lambda로그에 Success가 출력 되고 DynamoDB에 기록이 잘 된 것을 볼 수 있다.


Lambda 읽기 함수 만들기
1. 쓰기 함수와 동일하게 이름을 달리 하여 생성한다. 생성과정은 여러번 언급 하였기에 생략한다.
2. 다른 부분은 아래의 코드이다.
console.log('Loading event'); var doc = require('dynamodb-doc'); var dynamodb = new doc.DynamoDB(); exports.handler = function(event, context) { console.log("Request received:\n", JSON.stringify(event)); console.log("Context received:\n", JSON.stringify(context)); var tableName = "Page"; var key = { id: event.id }; console.log("Key:\n", key); dynamodb.getItem({ "TableName": tableName, "Key": key }, function(err, data) { if (err) { context.fail('ERROR: Dynamo failed: ' + err); } else { console.log('SUCCESS'); context.succeed('Dynamo Success: '+ JSON.stringify(data, null, ' ')); } }); }
3. 테스트 이벤트 Jason도 아래와 같이 변경 해 준 후 테스트 한다.
{ "id": "App" }
4. 쓰기 함수와 마찬가지로 성공 한 log를 볼 수 있다.

It’s really interesting content and nice post AWS online Course Bangalore
답글삭제mmorpg
답글삭제INSTAGRAM TAKİPÇİ SATİN AL
tiktok jeton hilesi
tiktok jeton hilesi
antalya saç ekimi
referans kimliği nedir
instagram takipçi satın al
metin2 pvp serverlar
instagram takipçi satın al
en son çıkan perde modelleri
답글삭제yurtdışı kargo
özel ambulans
nft nasıl alınır
minecraft premium
uc satın al
en son çıkan perde modelleri
lisans satın al