AWS 콘솔을 사용하여 생성 및 배포

Lambda 함수를 생성하고 AWS 콘솔에서 동일하게 테스트 할 수 있습니다. 이 장에서는 이에 대해 자세히 설명합니다. 이를 위해 여기에 제공된 단계를 따르고 주어진 각 스크린 샷을 관찰해야합니다.

1 단계

AWS 콘솔에 로그인 https://aws.amazon.com/console/. 이제 AWS 서비스가 표시되는 화면으로 리디렉션됩니다.

2 단계

이제 Lambda위에 강조된대로 서비스. 이것은 아래와 같이 기능을 생성하도록 리디렉션됩니다-

3 단계

이제 Create function기능의 세부 사항을 입력하십시오. 그러면 아래와 같은 화면을 볼 수 있습니다.

4 단계

원하는 언어를 선택하여 코드를 작성할 수 있습니다. 선택한 옵션이 코드 인라인 편집인 경우 코드를 편집기에서 작성해야합니다. 사용 가능한 다른 옵션은 다음과 같습니다.

5 단계

완료되면 아래와 같이 오른쪽 상단 모서리에 버튼이 제공되는 변경 사항을 저장해야합니다.

6 단계

이제 Test단추. 이렇게하면 아래와 같이 Lambda 함수 실행에 대한 모든 세부 정보가 제공됩니다.

7 단계

코드 index.js 다음과 같습니다-

exports.handler = (event, context, callback) => {
   // TODO implement
   callback(null, 'Lambda test');
};

이것은 Callback function결과는 오류 또는 성공 일 수 있습니다. 성공하면Lambda test메시지; 오류가 발생하면 null을 전달합니다.

8 단계

그만큼 Role Lambda 함수에 대한 세부 정보는 구성의 일부이며 아래와 같이 표시됩니다.

9 단계

이제 필요한 경우 역할을 업데이트하고 Lambda 함수를 저장할 수 있습니다. 그런 다음 람다 함수의 메모리 및 시간 초과 세부 정보가 아래와 같이 표시됩니다.

10 단계

이제 이벤트가 발생할 때 실행되도록 Lambda 함수에 트리거를 추가해야합니다. 트리거 세부 정보는 아래와 같이 AWS Lambda 함수 화면의 시작 부분에 표시됩니다.

여기에서 Lambda 함수를 트리거 할 트리거를 선택할 수 있습니다. 트리거를 선택할 때 트리거에 대한 구성 세부 정보를 추가해야합니다.

예를 들어, S3 트리거의 경우 추가 할 구성 세부 정보는 다음과 같습니다.

11 단계

이제 트리거를 적용 할 버킷을 선택합니다. 이벤트 유형에는 다음과 같은 세부 정보가 있습니다.

12 단계

트리거의 경우 접두사 유형 파일 또는 파일 패턴을 언급 할 수도 있습니다. Lambda가 트리거되어야합니다. 세부 사항은 다음과 같습니다.

13 단계

이제 트리거에 필요한 세부 정보를 입력하고 Add 버튼. 트리거를 추가 할 Lambda 함수를 저장합니다. 함수를 저장하면 세부 정보가 배포되고 이제부터는 S3 버킷에 파일이 추가 될 때마다 Lambda가 트리거됩니다.

AWS Lambda에 추가 된 S3 트리거를 보여주는 다음 스크린 샷을 확인하십시오.

14 단계

이제 S3 샘플 이벤트를 사용하여 Lambda 함수를 테스트 해 보겠습니다. 동일한 코드가 여기에 표시됩니다.

Amazon S3 Put 샘플 이벤트

{
   "Records": [{
      "eventVersion": "2.0",
      "eventTime": "1970-01-01T00:00:00.000Z",
      "requestParameters": {
         "ExampleIPAddress": "127.0.0.1"
      },
      "s3": {
         "configurationId": "testConfigRule",
         "object": {
            "eTag": "0123456789abcdef0123456789abcdef",
            "sequencer": "0A1B2C3D4E5F678901",
            "key": "HappyFace.jpg",
            "size": 1024
         },
         "bucket": { 
            "arn": bucketarn,
            "name": "Examplebucket",
            "ownerIdentity": {
               "principalId": "Example"
            }
         },
         "s3SchemaVersion": "1.0"
      },
      "responseElements": { 
         "x-amz-id-2": "Example123/5678abcdefghijklambdaisawesome/mnopqrstuvwxyzABCDEFGH",
         "x-amz-request-id": "Example123456789"
      },
      "awsRegion": "us-east-1",
      "eventName": "ObjectCreated:Put",
      "userIdentity": {
         "principalId": "Example"
      },
      "eventSource": "aws:s3"
   }]
}

S3 put 이벤트에서 업로드 된 파일의 세부 정보를 얻으려면 다음 명령을 사용해야합니다.

event.Records[0].s3.object.key     //will display the name of the file

버킷 이름을 얻으려면 다음 명령을 사용해야합니다.

event.Records[0].s3.bucket.name    //will give the name of the bucket.

EventName을 얻으려면 다음 명령을 사용해야합니다-

event.Records[0].eventName        // will display the event name

15 단계

이제 아래와 같이 S3 세부 정보를 인쇄하도록 AWS Lambda 코드를 업데이트하겠습니다.

exports.lambdahandler = (event, context, callback) => {
   callback(null, "Bucket name: "+event.Records[0].s3.bucket.name+"  
   File name:"+event.Records[0].s3.object.key );
};

16 단계

변경 사항을 저장하십시오. 딸깍 하는 소리Test S3 샘플 이벤트를 입력하십시오-

17 단계

이제 클릭 Test 다음과 같이 출력을 볼 수 있습니다.

18 단계

S3 AWS 서비스를 사용하여 S3에서 트리거를 테스트하려면 S3 버킷에 파일을 업로드하십시오. test bucket trigger. Lambda에서 사용하는 역할을 업데이트하여 권한에 대한 S3 및 SES 정책 (메일 전송)을 가져옵니다. 그러면 트리거가 작동하는지 확인하기 위해 메일을 보내기 위해 AWS Lambda 코드가 업데이트됩니다.

업데이트 된 AWS Lambda 코드는 다음과 같습니다.

var aws = require('aws-sdk');
var ses = new aws.SES({
   region: 'us-east-1'
});
exports.lambdahandler = function(event, context, callback) {
   var eParams = {
      Destination: {
         ToAddresses: ["[email protected]"]
      },
      Message: {
         Body: {
            Text: {
               Data: "Bucket name: "+event.Records[0].s3.bucket.name+"  File name:"+event.Records[0].s3.object.key
            }
         },
         Subject: {
            Data: "S3 and AWS Lambda"
         }
      },
      Example: "[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");
         }
   });
};

해당 스크린 샷은 다음과 같습니다.

19 단계

이제 파일을 업로드하고 AWS Lambda 코드에 제공된 메일 ID를 확인하십시오.