Node.js 함수 정보를 가져오는 Lambda 컨텍스트 객체 사용하기
Node.js 함수 정보를 가져오는 Lambda 컨텍스트 객체 사용하기
Lambda가 함수를 실행할 때 핸들러에 컨텍스트 객체를 전달해요. 이 객체는 호출, 함수, 실행 환경에 대한 정보를 제공하는 메서드와 속성을 담고 있어요.
본문
컨텍스트 메서드(Context methods)
getRemainingTimeInMillis()– 실행이 타임아웃되기까지 남은 시간(밀리초)을 반환해요.
컨텍스트 속성(Context properties)
functionName– Lambda 함수의 이름이에요.functionVersion– 함수의 버전이에요.invokedFunctionArn– 함수를 호출할 때 사용되는 Amazon Resource Name(ARN)이에요. 호출자가 버전 번호나 별칭(alias)을 지정했는지도 알려줘요.memoryLimitInMB– 함수에 할당된 메모리 용량이에요.awsRequestId– 호출 요청의 식별자예요.logGroupName– 함수의 로그 그룹이에요.logStreamName– 함수 인스턴스의 로그 스트림이에요.identity– (모바일 앱) 요청을 승인한 Amazon Cognito 자격 증명에 대한 정보예요.cognitoIdentityId– 인증된 Amazon Cognito 자격 증명이에요.cognitoIdentityPoolId– 호출을 승인한 Amazon Cognito 자격 증명 풀이에요.
clientContext– (모바일 앱) 클라이언트 애플리케이션이 Lambda에 제공한 클라이언트 컨텍스트예요.client.installation_idclient.app_titleclient.app_version_nameclient.app_version_codeclient.app_package_nameenv.platform_versionenv.platformenv.makeenv.modelenv.localecustom– 클라이언트 애플리케이션이 설정한 사용자 지정 값이에요.
callbackWaitsForEmptyEventLoop– 기본값(true)에서는 콜백 기반 함수 핸들러를 사용할 때, Lambda는 콜백이 실행된 뒤 함수 호출을 끝내기 전에 이벤트 루프가 비워질 때까지 기다려요.false로 설정하면 이벤트 루프가 비워질 때까지 기다리는 대신 콜백이 실행된 직후 응답을 보내고 호출을 끝내요. 처리되지 않은 이벤트는 다음 호출에서 계속 실행돼요. Lambda는 Node.js 22 및 이전 런타임에서만 콜백 기반 함수 핸들러를 지원한다는 점을 참고하세요.
다음 예제 함수는 컨텍스트 정보를 로깅하고 로그의 위치를 반환해요.
예제 index.js 파일
exports.handler = async function(event, context) {
console.log('Remaining time: ', context.getRemainingTimeInMillis())
console.log('Function name: ', context.functionName)
return context.logStreamName
}
더 알아보기 (Learn more)
Node.js 핸들러에 대한 자세한 내용은 Node.js 핸들러를 참고하세요.