Lambda 함수를 비동기 호출합니다.
Amazon Simple Storage Service(S3), Amazon Simple Notification Service(SNS)와 같은 여러 AWS 서비스에서 함수를 비동기적으로 호출하여 이벤트를 처리합니다. AWS Command Line Interface(AWS CLI) 또는 AWS SDK 중 하나를 사용하여 Lambda 함수를 비동기적으로 호출할 수도 있습니다. 비동기적으로 함수를 호출하면 함수 코드에서 응답을 기다리지 않습니다. 이벤트를 Lambda에 전달하면 Lambda가 나머지를 처리합니다. Lambda가 오류를 처리하는 방법을 구성하고, 호출 레코드를 Amazon Simple Queue Service(Amazon SQS) 또는 Amazon EventBridge(EventBridge)와 같은 다운스트림 리소스로 전송하여 애플리케이션의 구성 요소를 하나로 연결할 수 있습니다.
다음 다이어그램은 Lambda 함수를 비동기적으로 호출하는 클라이언트를 보여줍니다. Lambda는 이벤트를 함수로 보내기 전에 대기열에 넣습니다.
비동기식 호출의 경우 Lambda는 이벤트를 대기열에 배치하고 추가 정보 없이 성공 응답을 반환합니다. 별도의 프로세스를 통해 대기열에서 이벤트를 읽은 후 함수로 보냅니다.
AWS Command Line Interface(AWS CLI) 또는 AWS SDK 중 하나를 사용하여 Lambda 함수를 비동기적으로 간접 호출하려면 InvocationType 파라미터를 Event
로 설정합니다. 다음 예제는 함수를 간접적으로 호출하는 AWS CLI 명령을 보여줍니다.
aws lambda invoke \ --function-name my-function \
--invocation-type
Event
\ --cli-binary-format raw-in-base64-out \ --payload '{ "key": "value" }' response.json
다음 결과가 표시됩니다.
{
"StatusCode": 202
}
cli-binary-format 옵션은 AWS CLI 버전 2를 사용할 때 필요합니다. 이 설정을 기본 설정으로 지정하려면 aws configure set cli-binary-format raw-in-base64-out
을(를) 실행하세요. 자세한 내용은 AWS CLI 지원되는 글로벌 명령줄 옵션을 AWS Command Line Interface 사용 설명서 버전 2에서 참조하세요.
출력 파일(response.json
)에는 아무런 정보도 포함되어 있지 않지만 이 명령을 실행하면 여전히 생성됩니다. Lambda가 이벤트를 대기열에 추가할 수 없는 경우 명령 출력에 오류 메시지가 나타납니다.