Lambda 함수 빌드
AWS Lambda 함수는 호출 될 때 코드를 실행합니다. 이 장에서는 AWS Lambda 함수의 수명주기와 관련된 이러한 모든 단계에 대해 자세히 설명합니다.
Lambda 함수 빌드 단계
Lambda 함수의 수명주기에는 4 가지 필수 단계가 포함됩니다.
- Authoring
- Deploying
- Monitoring
- Troubleshooting
Lambda 코드 작성
AWS Lambda 함수 코드는 다음 언어로 작성할 수 있습니다.
- NodeJS
- Java,
- Python
- C#
- Go.
AWS 콘솔, AWS CLI, Eclipse IDE, Visual Studio IDE, 서버리스 프레임 워크 등을 사용하여 AWS Lambda 용 코드를 작성할 수 있습니다.
다음 표는 Lambda 함수를 작성하는 데 사용할 수있는 언어 목록과 다양한 도구 및 IDE를 보여줍니다.
언어 | Lambda 코드 작성을위한 IDE |
---|---|
NodeJS | AWS Lambda 콘솔 Visual Studio IDE |
자바 | 이클립스 IDE |
파이썬 | AWS Lambda 콘솔 |
씨# | Visual Studio IDE .NET 코어 |
가다 | AWS Lambda 콘솔 |
Lambda 코드 배포
Lambda 함수를 작성하려는 언어를 결정하면 코드를 배포하는 두 가지 방법이 있습니다.
- AWS 콘솔에서 직접 코드 작성
- 모든 파일 및 종속성이있는 파일을 압축하거나 jar로 만듭니다.
그러나 zip 파일에 적절한 권한을 부여해야합니다.
Lambda 코드 테스트
Lambda 코드는 AWS Lambda 콘솔 내에서 이벤트에 대해 테스트 할 수 있습니다. AWS CLI 및 서버리스 CLI에서 Lambda 함수를 테스트 할 수도 있습니다. AWS 콘솔에는 AWS Lambda 함수를 테스트하는 동안 샘플 이벤트로 사용할 수있는 이벤트 데이터도 있습니다.
Lambda 함수 모니터링
Lambda 함수 모니터링은 AWS CloudWatch를 사용하여 수행 할 수 있습니다. 선택한 언어로 필요한 로그 메시지를 추가하고 AWS CloudWatch에서 동일하게 볼 수 있습니다.
Lambda 함수 작성을 시작하려면 따라야 할 패턴이 있습니다. 다음은 Lambda 함수를 작성하기 위해 따라야 할 주요 핵심 개념입니다.
매니저
핸들러는 실행이 시작되는 AWS 람다 함수의 이름입니다. 아래와 같이 AWS 콘솔에 나타납니다.
여기서 우리는 기본 핸들러를 다른 이름으로 변경하고 핸들러에서 동일하게 업데이트했습니다.
핸들러가 호출되는 방식은 런타임으로 선택한 언어와 다릅니다.
핸들러에 전달 된 매개 변수
핸들러 함수를 관찰하면 전달 된 매개 변수는 다음과 같습니다. event, context 과 call back function 아래와 같이-
Event 매개 변수에는 사용 된 트리거에 대한 모든 세부 사항이 있습니다.
Context파라미터는 기본적으로 Lambda 함수가 실행할 런타임 세부 정보를 처리합니다. 다음을 사용하여 Lambda 함수와 상호 작용할 수 있습니다.contextparam. AWS Lambda가 함수를 종료하기 전까지 남은 시간, 즉 Lambda 함수를 생성하는 동안 지정된 시간 초과, Lambda 함수 이름, cloudwatch 그룹 이름, arn 세부 정보 등과 같은 세부 정보가 있습니다.
예
예제를 통해 AWS Lambda 컨텍스트 객체에서 얻은 세부 정보를 이해하겠습니다.
exports.lambdahandler = (event, context, callback) => {
// TODO implement
console.log("context object details");
console.log(JSON.stringify(context));
callback(null, 'Lambda test');
};
위에 표시된 Lambda 함수를 실행하면 다음 출력을 볼 수 있습니다.
산출
그만큼 context 세부 사항은 다음과 같습니다-
{
"callbackWaitsForEmptyEventLoop":true,"logGroupName":"/aws/lambda/myfirstlambdafunction",
"logStreamName":"2018/05/20/[$LATEST]04f17ee4ff7048d5bb1fedffaa807c71","functionName":
"myfirstlambdafunction","memoryLimitInMB":"128","functionVersion":"$LATEST","invokeid":
"c931e21c-5bf3-11e8-acfe-47fdbb39eee9","awsRequestId":"c931e21c-5bf3-11e8-acfe-47fdbb39eee9",
"invokedFunctionArn":"arn:aws:lambda:us-east-1:625297745038:function:myfirstlambdafunction"
}
functionName, memorylimit, requestId 등과 같은 세부 정보가 있는지 확인하십시오.
벌채 반출
Lambda 함수 내부에 추가 된 로그는 AWS 함수가 실행될 때 AWS CloudWatch에 표시됩니다. 로그 구문은 선택한 언어에 따라 다릅니다. 예를 들어nodejs, console.log입니다.
이것은 AWSCloudWatch에서 볼 수있는 출력입니다.
오류 처리
AWS Lambda 함수는 Lambda 함수에 오류 또는 성공이 발생했음을 알리는 데 사용되는 콜백 함수를 제공합니다. 여기서는 nodejs를 런타임으로 사용했습니다. 오류 처리는 선택한 언어에 따라 다릅니다.
더 나은 이해를 위해 여기에 제공된 예를 참조하십시오.
exports.lambdahandler = (event, context, callback) => {
// TODO implement
var error = new Error("There is error in code");
callback(error);
};
산출
Lambda 코드를 테스트 할 때 아래와 같이 출력을 찾을 수 있습니다.
다음과 같이 로그 세부 정보-