Amazon DynamoDB에서 Lambda 함수 사용

DynamoDB는 데이터가 테이블에 추가, 업데이트 또는 삭제 될 때 AWS Lambda를 트리거 할 수 있습니다. 이 장에서는 DynamoDB 테이블 및 데이터를 읽고 추가 된 데이터와 함께 메일을 보내는 AWS Lambda에 항목을 추가하는 간단한 예제를 살펴 보겠습니다.

필수 조건

Amazon DB 및 AWS Lambda를 사용하려면 다음 단계를 따라야합니다.

  • 기본 키를 사용하여 DynamoDB에 테이블 생성

  • DynamoDB 및 AWS Lambda를 사용할 권한이있는 역할을 생성합니다.

  • AWS Lambda에서 함수 생성

  • 메일을 보내기위한 AWS Lambda 트리거

  • DynamoDB에 데이터 추가

이 단계 각각에 대해 자세히 설명하겠습니다.

DynamoDB와 AWS Lambda 간의 기본 상호 작용을 보여주는 다음 예제를 살펴 보겠습니다. 이 예는 다음 작업을 이해하는 데 도움이됩니다.

  • Dynamodb 테이블에 customer라는 테이블을 만들고 해당 테이블에 데이터를 입력하는 방법.

  • 데이터가 입력되면 AWS Lambda 함수를 트리거하고 Amazon SES 서비스를 사용하여 메일을 보냅니다.

예제의 흐름을 설명하는 기본 블록 다이어그램은 다음과 같습니다.

기본 키를 사용하여 DynamoDB에 테이블 생성

AWS 콘솔에 로그인합니다. AWS 서비스로 이동하여 아래와 같이 DynamoDB를 선택합니다. DynamoDB를 선택합니다.

DynamoDB는 아래와 같은 옵션을 보여줍니다.

이제 Create table그림과 같이 테이블을 만듭니다. 테이블 이름을 다음과 같이 지정했습니다.customer 해당 테이블의 기본 키를 cust_id. 클릭Create 버튼을 눌러 테이블을 dynamodb에 추가합니다.

생성 된 테이블은 다음과 같습니다.

다음과 같이 생성 된 테이블에 항목을 추가 할 수 있습니다.

딸깍 하는 소리 Items 클릭 Create item 버튼-

DynamoDB 및 AWS Lambda 작업 권한이있는 역할 생성

역할을 생성하려면 AWS 서비스로 이동하고 IAM을 클릭합니다.

이전에 생성 한 DynamoDB 테이블에만 사용할 정책을 생성하겠습니다.

이제 Service. 우리가 선택한 서비스가DynamoDB. 에 대한Actions 우리는 모두 가져 갔다 Dynamodb즉, 목록, 읽기 및 쓰기에 대한 액세스. 에 대한resources, 테이블 리소스 유형 작업을 선택합니다. 클릭하면 다음과 같은 화면을 볼 수 있습니다.

이제 선택 tableAdd ARN그림과 같이 그것에. 우리는 얻을 것이다ARN 세부 정보 customer table 아래와 같이 생성-

시작하다 arn 여기에 세부 사항-

딸깍 하는 소리 Add버튼을 눌러 변경 사항을 저장하십시오. 완료되면Click on Review policy. 아래와 같이 정책 이름, 설명 등을 입력하십시오-

클릭 create policy저장합니다. 생성 할 역할에 정책을 추가합니다. 고르다Role 왼쪽에서 세부 정보를 입력하십시오.

추가 된 정책이 newpolicyfordynamdb, awslambdafullaccess, cloudwatchfullaccessamazonsesfullaccess. 역할을 추가하고 AWS Lambda 함수를 생성하는 동안 사용합니다.

AWS Lambda에서 함수 생성

따라서 우리는 Lambda 함수를 생성했습니다. newlambdafordynamodb 보여진 바와 같이.

이제 생성 된 AWS Lambda에 DynamodDB 트리거를 추가하겠습니다. 우리가 사용할 런타임은 Node.js입니다.

AWS Lambda 용으로 구성 할 Dynamodb 트리거에서 다음 세부 정보를 찾을 수 있습니다.

이제 간단히 Add AWS Lambda에 트리거를 추가합니다.

메일을 보내기위한 AWS Lambda 트리거

데이터가 AWS Lambda에 삽입되면 AWS Lambda가 트리거됩니다. 이벤트 매개 변수에는 dynamodb 데이터가 삽입됩니다. 이벤트에서 데이터를 읽고 이메일을 보냅니다.

이메일 보내기

이메일을 보내려면 아래 단계를 따라야합니다.

1 단계

AWS 서비스로 이동하여 SES (단순 이메일 서비스)를 선택합니다. 다음과 같이 이메일을 보내야하는 이메일을 확인합니다.

2 단계

버튼을 클릭 Verify a New Email Address 이메일 주소를 추가합니다.

3 단계

확인을 위해 이메일 주소를 입력하십시오. 이메일 주소는 클릭해야하는 Amazon으로부터 활성화 메일을 수신합니다. 활성화가 완료되면 이메일 ID가 확인되고 AWS 서비스에서 사용할 수 있습니다.

4 단계

이벤트에서 데이터를 읽고 이메일을 보내는 AWS Lambda 코드는 다음과 같습니다.

var aws = require('aws-sdk');
var ses = new aws.SES({
   region: 'us-east-1'
});
exports.handler = function(event, context, callback) {
   console.log(event);
   let tabledetails = JSON.parse(JSON.stringify(event.Records[0].dynamodb));
   console.log(tabledetails.NewImage.address.S);
   let customerid = tabledetails.NewImage.cust_id.S;
   let name = tabledetails.NewImage.name.S;
   let address = tabledetails.NewImage.address.S;
	
   var eParams = {
      Destination: {
         ToAddresses: ["[email protected]"]
      },
      Message: {
         Body: {
            Text: {
               Data: "The data added is as follows:\n CustomerId:"+customerid+"\n Name:"+name+"\nAddress:"+address
            }
         },
         Subject: {
            Data: "Data Inserted in Dynamodb table customer"
         }
      },
      Source: "[email protected]"
   };
   console.log('===SENDING EMAIL===');
   var email = ses.sendEmail(eParams, function(err, data) {
      if (err) console.log(err);
      else {
         console.log("===EMAIL SENT===");
         console.log("EMAIL CODE END");
         console.log('EMAIL: ', email);
         context.succeed(event);
         callback(null, "email is send");
      }
   });
}

이제 Lambda 함수와 데이터를 DynamoDB 테이블에 저장합니다.

DynamoDB에 데이터 추가

다음 순서에 따라 DynamoDB에 데이터를 추가합니다.

1 단계

테이블로 이동 customer Dynamodb에서 생성되었습니다.

2 단계

딸깍 하는 소리 Create item.

3 단계

딸깍 하는 소리 Save 버튼을 클릭하고 AWS Lambda에 제공된 이메일 ID를 확인하여 메일이 AWS Lambda에서 전송되었는지 확인합니다.