InvokeWithResponseStream - AWS Lambda

InvokeWithResponseStream

응답 페이로드를 클라이언트로 다시 스트리밍하도록 Lambda 함수를 구성합니다. 자세한 내용은 응답을 스트리밍하도록 Lambda 함수 구성을 참조하세요.

이 작업에는 lambda:InvokeFunction 작업에 대한 권한이 필요합니다. 교차 계정 호출에 대한 권한을 설정하는 방법에 대한 자세한 내용은 함수에 다른 계정에 대한 액세스 권한 부여를 참조하세요.

Request Syntax

POST /2021-11-15/functions/FunctionName/response-streaming-invocations?Qualifier=Qualifier HTTP/1.1 X-Amz-Invocation-Type: InvocationType X-Amz-Log-Type: LogType X-Amz-Client-Context: ClientContext Payload

URI 요청 파라미터

요청은 다음 URI 파라미터를 사용합니다.

ClientContext

컨텍스트 객체의 함수에 전달할 호출 클라이언트의 경우 base64로 인코딩된 데이터의 최대 크기는 3,583바이트입니다.

FunctionName

Lambda 함수의 이름입니다.

이름 형식
  • 함수 이름 - my-function.

  • 함수 ARN - arn:aws:lambda:us-west-2:123456789012:function:my-function.

  • 부분적 ARN - 123456789012:function:my-function.

길이 제한은 전체 ARN에만 적용됩니다. 함수 이름만 지정하는 경우, 길이가 64자로 제한됩니다.

길이 제약: 최소 길이는 1입니다. 최대 길이는 170입니다.

Pattern: (arn:(aws[a-zA-Z-]*)?:lambda:)?([a-z]{2}(-gov)?-[a-z]+-\d{1}:)?(\d{12}:)?(function:)?([a-zA-Z0-9-_\.]+)(:(\$LATEST|[a-zA-Z0-9-_]+))?

필수 항목 여부: 예

InvocationType

다음 옵션 중 하나를 사용하십시오.

  • RequestResponse(기본값) - 함수를 동기적으로 호출합니다. 함수가 응답을 반환하거나 시간이 초과할 때까지 연결을 열어 둡니다. API 작업 응답에는 함수 응답과 추가 데이터가 포함됩니다.

  • DryRun - 파라미터 값의 유효성을 검사하고, IAM 사용자 또는 역할이 함수를 호출할 권한을 가졌는지 확인합니다.

유효한 값: RequestResponse | DryRun

LogType

응답에 실행 로그를 포함하도록 Tail(으)로 설정합니다. 동기식으로 호출된 함수에만 적용됩니다.

유효한 값: None | Tail

Qualifier

별칭 이름입니다.

길이 제약: 최소 길이 1자. 최대 길이 128.

Pattern: (|[a-zA-Z0-9$_-]+)

요청 본문

요청은 다음의 이진 데이터를 허용합니다.

Payload

Lambda 함수에 입력으로 제공하려는 JSON입니다.

JSON을 직접 입력할 수 있습니다. 예: --payload '{ "key": "value" }'. 파일 경로를 지정할 수도 있습니다. 예: --payload file://payload.json.

Response Syntax

HTTP/1.1 StatusCode X-Amz-Executed-Version: ExecutedVersion Content-Type: ResponseStreamContentType Content-type: application/json { "InvokeComplete": { "ErrorCode": "string", "ErrorDetails": "string", "LogResult": "string" }, "PayloadChunk": { "Payload": blob } }

응답 요소

작업이 성공하면 서비스가 다음 HTTP 응답을 다시 전송합니다.

StatusCode

요청이 성공한 경우 HTTP 상태 코드가 200 범위에 있습니다. RequestResponse 호출 유형의 경우 이 상태 코드는 200입니다. DryRun 호출 유형의 경우 이 상태 코드는 204입니다.

응답에 다음 HTTP 헤더가 반환됩니다.

ExecutedVersion

실행된 함수의 버전입니다. 별칭이 있는 함수를 호출할 경우 이는 별칭이 귀결된(resolved) 버전을 나타냅니다.

길이 제약: 최소 길이는 1입니다. 최대 길이는 1024입니다.

Pattern: (\$LATEST|[0-9]+)

ResponseStreamContentType

스트림이 반환하는 데이터의 형식입니다.

다음 데이터는 서비스에 의해 JSON 형식으로 반환됩니다.

InvokeComplete

스트림이 종료되고 모든 페이로드 청크가 반환되었을 때 반환되는 객체입니다.

유형: InvokeWithResponseStreamCompleteEvent객체

PayloadChunk

스트리밍된 응답 페이로드의 청크입니다.

유형: InvokeResponseStreamUpdate객체

Errors

모든 작업에서 발생하는 일반적인 오류에 대한 자세한 내용은 일반적인 오류 섹션을 참조하세요.

EC2AccessDeniedException

VPC 설정을 구성하려면 추가 권한이 필요합니다.

HTTP 상태 코드: 502

EC2ThrottledException

Lambda 함수에 제공된 실행 역할을 사용하여 함수를 초기화하는 동안 Amazon EC2가 AWS Lambda를 제한했습니다.

HTTP 상태 코드: 502

EC2UnexpectedException

Lambda 함수를 설정하는 동안 AWS Lambda이(가) 예기치 않은 Amazon EC2 클라이언트 예외를 수신했습니다.

HTTP 상태 코드: 502

EFSIOException

연결된 파일 시스템을 읽거나 쓸 때 오류가 발생했습니다.

HTTP 상태 코드: 410

EFSMountConnectivityException

Lambda 함수가 구성된 파일 시스템에 네트워크 연결을 수립할 수 없습니다.

HTTP 상태 코드: 408

EFSMountFailureException

권한 또는 구성 문제로 인해 Lambda 함수가 구성된 파일 시스템을 마운트할 수 없습니다.

HTTP 상태 코드: 403

EFSMountTimeoutException

Lambda 함수가 구성된 파일 시스템에 네트워크 연결을 수립했지만 마운트 작업 시간이 초과되었습니다.

HTTP 상태 코드: 408

ENILimitReachedException

네트워크 인터페이스 제한에 도달했기 때문에 Lambda 함수 구성의 일부로 지정된 VPC에서 AWS Lambda가 Elastic Network Interface(ENI)를 생성하지 못했습니다. 자세한 내용은 Lambda 할당량을 참조하세요.

HTTP 상태 코드: 502

InvalidParameterValueException

요청의 파라미터 중 하나가 유효하지 않습니다.

HTTP 상태 코드: 400

InvalidRequestContentException

요청 본문을 JSON으로 구문 분석할 수 없습니다.

HTTP 상태 코드: 400

InvalidRuntimeException

런타임 또는 지정된 런타임 버전이 지원되지 않습니다.

HTTP 상태 코드: 502

InvalidSecurityGroupIDException

Lambda 함수 VPC 구성에 제공된 보안 그룹 ID가 잘못되었습니다.

HTTP 상태 코드: 502

InvalidSubnetIDException

Lambda 함수 VPC 구성에 제공된 서브넷 ID가 잘못되었습니다.

HTTP 상태 코드: 502

InvalidZipFileException

AWS Lambda이(가) 배포 패키지의 압축을 풀 수 없습니다.

HTTP 상태 코드: 502

KMSAccessDeniedException

AWS KMS 액세스가 거부되었기 때문에 Lambda에서 환경 변수의 암호화를 해제할 수 없습니다. Lambda 함수의 KMS 권한을 확인하세요.

HTTP 상태 코드: 502

KMSDisabledException

사용된 AWS KMS key가 비활성화되어 있으므로 Lambda가 환경 변수를 복호화할 수 없습니다. Lambda 함수의 KMS 키 설정을 확인하세요.

HTTP 상태 코드: 502

KMSInvalidStateException

복호화에 사용된 AWS KMS key의 상태가 유효하지 않기 때문에 Lambda에서 환경 변수의 암호화를 해제할 수 없습니다. 함수의 KMS 키 설정을 확인하세요.

HTTP 상태 코드: 502

KMSNotFoundException

AWS KMS key를 찾을 수 없기 때문에 Lambda에서 환경 변수의 암호화를 해제할 수 없습니다. 함수의 KMS 키 설정을 확인하세요.

HTTP 상태 코드: 502

RecursiveInvocationException

Lambda가 다른 AWS 리소스와 함께 재귀 루프에서 함수가 간접적으로 호출되는 것을 감지하고 함수 간접 호출을 중지했습니다.

HTTP 상태 코드: 400

RequestTooLargeException

요청 페이로드가 Invoke 요청 본문 JSON 입력 할당량을 초과했습니다. 자세한 내용은 Lambda 할당량을 참조하세요.

HTTP 상태 코드: 413

ResourceConflictException

리소스가 이미 있거나 다른 작업이 진행 중입니다.

HTTP 상태 코드: 409

ResourceNotFoundException

요청에 지정된 리소스가 없습니다.

HTTP 상태 코드: 404

ResourceNotReadyException

함수가 비활성 상태이며 VPC 연결을 더 이상 사용할 수 없습니다. VPC 연결이 다시 설정될 때까지 기다렸다가 다시 시도하세요.

HTTP 상태 코드: 502

ServiceException

AWS Lambda 서비스에 내부 오류가 발생했습니다.

HTTP 상태 코드: 500

SnapStartException

afterRestore() 런타임 후크에서 오류가 발생했습니다. 자세한 내용은 Amazon CloudWatch Logs를 참조하세요.

HTTP 상태 코드: 400

SnapStartNotReadyException

Lambda가 함수를 초기화하고 있습니다. 함수 상태가 Active로 바뀌면 함수를 호출할 수 있습니다.

HTTP Status Code: 409

SnapStartTimeoutException

Lambda가 제한 시간 내에 스냅샷을 복원하지 못했습니다.

HTTP 상태 코드: 408

SubnetIPAddressLimitReachedException

하나 이상의 구성된 서브넷에 사용 가능한 IP 주소가 없어 AWS Lambda가 Lambda 함수에 대한 VPC 액세스를 설정하지 못했습니다.

HTTP 상태 코드: 502

TooManyRequestsException

요청 처리량 제한을 초과했습니다. 자세한 내용은 Lambda 할당량을 참조하세요.

HTTP Status Code: 429

UnsupportedMediaTypeException

Invoke 요청 본문의 콘텐츠 유형이 JSON이 아닙니다.

HTTP 상태 코드: 415

참고

이 API를 언어별 AWS SDK 중 하나로 사용하는 방법에 대한 자세한 설명은 다음을 참조하세요.