AWS Lambda
개발자 가이드

AWS Lambda 런타임 인터페이스

AWS Lambda은 사용자 지정 런타임에 HTTP API를 제공하여 Lambda에서 호출 이벤트를 수신하고 Lambda 실행 환경내에서 응답 데이터를 다시 전송합니다.

런타임 API 버전 2018-06-01에 대한 OpenAPI 사양은 runtime-api.zip에서 사용할 수 있습니다.

런타임은 AWS_LAMBDA_RUNTIME_API 환경 변수에서 엔드포인트를 가져와 API 버전을 추가하고 다음의 리소스 경로를 사용하여 API와 상호 작용합니다.

예 요청

curl "http://${AWS_LAMBDA_RUNTIME_API}/2018-06-01/runtime/invocation/next"

다음 호출

경로/runtime/invocation/next

메서드GET

호출 이벤트를 검색합니다. 응답 본문에는 호출의 페이로드가 포함되어 있습니다. 이 페이로드는 함수 트리거의 이벤트 데이터를 포함하는 JSON 문서입니다. 응답 헤더에는 호출에 대한 추가 데이터가 포함되어 있습니다.

응답 헤더

  • Lambda-Runtime-Aws-Request-Id – 함수 호출을 트리거한 요청을 식별하는 요청 ID입니다.

    예: 8476a536-e9f4-11e8-9739-2dfe598c3fcd.

  • Lambda-Runtime-Deadline-Ms – 함수가 Unix 시간 형식에 따른 밀리초 단위의 시간 제한에 도달하는 날짜입니다.

    예: 1542409706888.

  • Lambda-Runtime-Invoked-Function-Arn – 호출에 지정된 Lambda 함수, 버전 또는 별칭의 ARN입니다.

    예: arn:aws:lambda:us-east-2:123456789012:function:custom-runtime.

  • Lambda-Runtime-Trace-IdAWS X-Ray 트레이스 헤더입니다.

    예: Root=1-5bef4de7-ad49b0e87f6ef6c87fc2e700;Parent=9a9197af755a6419;Sampled=1.

  • Lambda-Runtime-Client-Context – AWS Mobile SDK 호출에서 클라이언트 애플리케이션 및 디바이스에 관한 데이터입니다.

  • Lambda-Runtime-Cognito-Identity – AWS Mobile SDK 호출에서 Amazon Cognito 자격 증명 공급자에 관한 데이터입니다.

요청 ID는 Lambda 내에서 호출을 추적합니다. 응답을 전송할 때에는 이 ID를 사용하여 호출을 지정합니다.

트레이스 헤더에는 추적 ID, 상위 ID 및 샘플링 결정이 포함되어 있습니다. 요청이 샘플링될 경우, 이 요청은 Lambda 또는 업스트림 서비스에 의해 샘플링된 것입니다. 런타임은 헤더의 값을 사용해 _X_AMZN_TRACE_ID을 설정해야 합니다. X-Ray SDK는 이 값을 판독하여 ID를 가져온 다음, 요청을 추적할지 여부를 결정합니다.

호출 응답

경로/runtime/invocation/AwsRequestId/response

메서드POST

Lambda으로 호출 응답을 전송합니다. 런타임은 함수 핸들러를 호출한 후 함수의 응답을 호출 응답 경로에 게시합니다. 동기식 호출의 경우, Lambda은 응답을 클라이언트로 다시 보냅니다.

예 성공 요청

REQUEST_ID=156cb537-e2d4-11e8-9b34-d36013741fb9 curl -X POST "http://${AWS_LAMBDA_RUNTIME_API}/2018-06-01/runtime/invocation/$REQUEST_ID/response" -d "SUCCESS"

호출 오류

경로/runtime/invocation/AwsRequestId/error

메서드POST

함수가 오류를 반환하면 런타임은 JSON 문서로 오류를 포맷하고 호출 오류 경로에 게시합니다.

예 요청 본문

{ "errorMessage" : "Error parsing event data.", "errorType" : "InvalidEventDataException" }

예 오류 요청

REQUEST_ID=156cb537-e2d4-11e8-9b34-d36013741fb9 ERROR="{\"errorMessage\" : \"Error parsing event data.\", \"errorType\" : \"InvalidEventDataException\"}" curl -X POST "http://${AWS_LAMBDA_RUNTIME_API}/2018-06-01/runtime/invocation/$REQUEST_ID/error" -d "$ERROR" --header "Lambda-Runtime-Function-Error-Type: Unhandled"

초기화 오류

경로/runtime/init/error

메서드POST

런타임에서 초기화 도중에 오류가 발생하면 초기화 오류 경로에 오류 메시지가 게시됩니다.

예 초기화 오류 요청

ERROR="{\"errorMessage\" : \"Failed to load function.\", \"errorType\" : \"InvalidFunctionException\"}" curl -X POST "http://${AWS_LAMBDA_RUNTIME_API}/2018-06-01/runtime/init/error" -d "$ERROR" --header "Lambda-Runtime-Function-Error-Type: Unhandled"