2017-09-27 1 views
2

DynamoDb에서 변경된 데이터 트리거 람다 함수를 보내려고합니다. 그런 다음이 변경된 데이터를 다른 DynamoDb 테이블에 저장하려고합니다.

프로그래밍 언어 : NodeJs

DynomaDb는
스트림이 활성화 : 예
보기 유형 : 신규 및 기존 이미지람다 함수를 트리거하는 데이터를 보내는 방법은 무엇입니까?

람다 기능

'use strict'; 

console.log('Loading function'); 

exports.handler = (event, context, callback) => { 
    //console.log('Received event:', JSON.stringify(event, null, 2)); 
    event.Records.forEach((record) => { 
     console.log(record.eventID); 
     console.log(record.eventName); 
     console.log('DynamoDB Record: %j', record.dynamodb); 
    }); 
    callback(null, `Successfully processed ${event.Records.length} records.`); 
}; 

가 작동하지 않습니다 .

+0

에서 삭제되었습니다? –

+0

@VijayanathViswanathan '엄격한 사용'; console.log ('로드 기능'); exports.handler = (이벤트, 컨텍스트, 콜백) => { //console.log('Received event : ', JSON.stringify (event, null, 2)); console.log (record.eventID); console.log (record.eventName); console.log ('DynamoDB 레코드 : % j', record.dynamodb) ; }}); 콜백 (null,'Successfully processed $ {event.Records.length} records.'); }; –

+0

하지만 오류가 발생했습니다 @VijayanathViswanathan –

답변

2

위의 사용 사례에는 DynamoDB 스트림과 람다를 사용할 수 있습니다.

1)에 DynamoDB의 데이터

2) 스트림을 소비하는 다른 DynamoDB의 테이블을 작성하는 람다 함수 만들기를 스트리밍 DynamoDB의 테이블 스트림 활성화. 람다 함수는 많은 프로그래밍 언어 (API)로 생성 될 수 있습니다. AWS SDK을 사용하여 람다 함수를 만들 수 있습니다.

자세한 내용은 아래 링크를 참조하십시오.

Full documentation

Enable Streams and Lambda - Cross region replication use case

스트림보기 유형 : -

StreamViewType - 지정 테이블의 데이터가 수정 될 때마다 스트림에 기록됩니다 정보 :

KEYS_ONLY-m의 키 속성 만 odified 항목.

NEW_IMAGE- 수정 된 이후의 전체 항목입니다.

OLD_IMAGE- 전체 항목으로 수정되기 전에 나타납니다.

NEW_AND_OLD_IMAGES- 항목의 새 이미지와 이전 이미지 모두.

이벤트 이름 : - 데이터가 DynamoDB의 테이블에 업데이트 될 때

record.eventNameMODIFY이 있어야합니다.

record.dynamodb에는 스트림보기 유형에 따른 값이 있어야합니다. NEW_AND_OLD_IMAGES을 선택한 경우 이전 값과 새 값을 모두 가져야합니다.

EVENTNAME - (문자열)를 DynamoDB의 테이블 을 수행 하였다 데이터 수정의 유형 :

INSERT - 새로운 아이템이 테이블에 추가한다.

MODIFY - 기존 항목의 속성 중 하나 이상이 수정되었습니다.

REMOVE은 - 항목은 지금까지 시도 것을 테이블

+0

ı 노드를 사용하여 js. 스트림이 사용 가능하며 스트림보기 유형이 new_and_old_images입니다. 그러나 l 람다 함수가 어떻게 변경된 데이터를 잡는 지 이해하지 못합니까? @notionquest –

+0

@ BurhanYılmaz 세부 정보를 업데이트하여 이벤트 이름을 식별합니다 (INSERT, MODIFY 또는 REMOVE). – notionquest

+0

감사합니다. @notionquest –