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를 확인하십시오.