Lambda 컨텍스트 객체로 TypeScript 함수 정보 검색

Lambda 컨텍스트 객체로 TypeScript 함수 정보 검색

Lambda가 함수를 실행할 때 핸들러에 컨텍스트 객체를 전달합니다. 이 객체는 호출, 함수, 실행 환경에 대한 정보를 제공하는 메서드와 속성을 담고 있습니다.

출처: AWS Lambda 개발자 안내서

본문

컨텍스트 객체에 대한 타입 검사(type checking)를 활성화하려면 @types/aws-lambda 패키지를 개발 의존성으로 추가하고 Context 타입을 import 해야 합니다. 자세한 내용은 'Lambda용 타입 정의(Type definitions for Lambda)' 문서를 참고하세요.

  • getRemainingTimeInMillis() – 실행이 타임아웃되기까지 남은 밀리초 수를 반환합니다.
  • functionName – Lambda 함수의 이름입니다.
  • functionVersion – 함수의 버전입니다.
  • invokedFunctionArn – 함수를 호출하는 데 사용된 Amazon Resource Name(ARN)입니다. 호출자가 버전 번호나 별칭을 지정했는지 여부를 나타냅니다.
  • memoryLimitInMB – 함수에 할당된 메모리 양입니다.
  • awsRequestId – 호출 요청의 식별자입니다.
  • logGroupName – 함수의 로그 그룹입니다.
  • logStreamName – 함수 인스턴스의 로그 스트림입니다.
  • identity – (모바일 앱) 요청을 승인한 Amazon Cognito 자격 증명에 대한 정보입니다.
  • cognitoIdentityId – 인증된 Amazon Cognito 자격 증명입니다.
  • cognitoIdentityPoolId – 호출을 승인한 Amazon Cognito 자격 증명 풀입니다.
  • clientContext – (모바일 앱) 클라이언트 애플리케이션이 Lambda에 제공하는 클라이언트 컨텍스트입니다.
    • client.installation_id
    • client.app_title
    • client.app_version_name
    • client.app_version_code
    • client.app_package_name
    • env.platform_version
    • env.platform
    • env.make
    • env.model
    • env.locale
    • Custom – 클라이언트 애플리케이션이 설정하는 사용자 지정 값입니다.
  • callbackWaitsForEmptyEventLoop – 기본값은 true로, 콜백 기반 함수 핸들러를 쓸 때 Lambda는 콜백이 실행된 뒤 함수 호출을 끝내기 전에 이벤트 루프가 비워질 때까지 기다립니다. false로 설정하면 이벤트 루프가 비워질 때까지 기다리지 않고 콜백 실행 직후 응답을 보내고 호출을 즉시 종료합니다. 미처리된 이벤트는 다음 호출 동안 계속 실행됩니다. Lambda는 Node.js 22 및 이전 런타임에서만 콜백 기반 함수 핸들러를 지원합니다.

다음 예제 함수는 컨텍스트 정보를 로그로 남기고 로그 위치를 반환합니다.

Lambda 함수에서 이 코드를 쓰기 전에 @types/aws-lambda 패키지를 개발 의존성으로 추가해야 합니다. 이 패키지에는 Lambda에 대한 타입 정의가 들어 있습니다. 자세한 내용은 'Lambda용 타입 정의'를 참고하세요.

import { Context } from 'aws-lambda';
export const lambdaHandler = async (event: string, context: Context): Promise<string> => {
  console.log('Remaining time: ', context.getRemainingTimeInMillis());
  console.log('Function name: ', context.functionName);
  return context.logStreamName;
};

더 알아보기 (Learn more)