UpdateEventSourceMapping - AWS Lambda

UpdateEventSourceMapping

이벤트 소스 매핑을 업데이트합니다. AWS Lambda이 호출한 함수를 변경하거나, 호출을 일시 중지하고 나중에 같은 위치에서 다시 시작할 수 있습니다.

다양한 이벤트 소스를 구성하는 방법에 대한 자세한 내용은 다음 주제를 참조하십시오.

다음 오류 처리 옵션은 스트림 소스(DynamoDB 및 Kinesis)에만 사용할 수 있습니다.

  • BisectBatchOnFunctionError - 함수가 오류를 반환하면 배치를 2개로 분할하고 다시 시도합니다.

  • DestinationConfig - 삭제된 레코드를 Amazon SQS 대기열 또는 Amazon SNS 주제로 보냅니다.

  • MaximumRecordAgeInSeconds - 지정된 기간보다 오래된 레코드를 삭제합니다. 기본값은 무한(-1)입니다. 무한(-1)으로 설정하면 레코드가 만료될 때까지 실패한 레코드가 다시 시도됩니다.

  • MaximumRetryAttempts - 지정된 횟수만큼 재시도한 후에 레코드를 삭제합니다. 기본값은 무한(-1)입니다. 무한(-1)으로 설정하면 레코드가 만료될 때까지 실패한 레코드가 다시 시도됩니다.

  • ParallelizationFactor - 각 샤드의 여러 배치를 동시에 처리합니다.

각 이벤트 소스에 적용되는 구성 파라미터에 대한 자세한 내용은 다음 주제를 참조하십시오.

Request Syntax

PUT /2015-03-31/event-source-mappings/UUID HTTP/1.1 Content-type: application/json { "BatchSize": number, "BisectBatchOnFunctionError": boolean, "DestinationConfig": { "OnFailure": { "Destination": "string" }, "OnSuccess": { "Destination": "string" } }, "DocumentDBEventSourceConfig": { "CollectionName": "string", "DatabaseName": "string", "FullDocument": "string" }, "Enabled": boolean, "FilterCriteria": { "Filters": [ { "Pattern": "string" } ] }, "FunctionName": "string", "FunctionResponseTypes": [ "string" ], "MaximumBatchingWindowInSeconds": number, "MaximumRecordAgeInSeconds": number, "MaximumRetryAttempts": number, "ParallelizationFactor": number, "ScalingConfig": { "MaximumConcurrency": number }, "SourceAccessConfigurations": [ { "Type": "string", "URI": "string" } ], "TumblingWindowInSeconds": number }

URI 요청 파라미터

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

UUID

이벤트 소스 매핑의 식별자입니다.

Required: Yes

요청 본문

요청은 JSON 형식으로 다음 데이터를 받습니다.

BatchSize

Lambda가 스트림 또는 대기열에서 풀링하여 함수로 보내는 각 배치의 최대 레코드 수입니다. Lambda는 동기식 호출에 대한 페이로드 제한(6MB)까지 단일 호출로 배치의 모든 레코드를 함수로 전달합니다.

  • Amazon Kinesis - 기본값 100. 최대 10,000.

  • Amazon DynamoDB Streams - 기본값 100. 최대 10,000.

  • Amazon Simple Queue Service - 기본값 10. 표준 대기열의 경우 최대값은 10,000입니다. FIFO 대기열의 경우 최대값은 10입니다.

  • Amazon Managed Streaming for Apache Kafka - 기본값 100. 최대 10,000.

  • Self-managed Apache Kafka - 기본값은 100입니다. 최대 10,000.

  • Amazon MQ(ActiveMQ 및 RabbitMQ) - 기본값 100. 최대 10,000.

  • DocumentDB — 기본값 100입니다. 최대 10,000.

Type: 정수

유효한 범위: 최소값 1. 최대값은 10,000입니다.

필수 항목 여부: 아니요

BisectBatchOnFunctionError

(Kinesis와 DynamoDB 스트림만 해당) 함수가 오류를 반환하면 배치를 둘로 분할하고 다시 시도합니다.

유형: 부울

필수 항목 여부: 아니요

DestinationConfig

(Kinesis, DynamoDB Streams, Amazon MSK 및 자체 관리형 Kafka에만 해당)Lambda가 이벤트를 처리한 후 이벤트의 대상을 지정하는 구성 객체입니다.

유형: DestinationConfig객체

필수 항목 여부: 아니요

DocumentDBEventSourceConfig

DocumentDB 이벤트 소스에 대한 특정 구성 설정입니다.

유형: DocumentDBEventSourceConfig객체

필수 항목 여부: 아니요

Enabled

true이면 이벤트 소스 매핑이 활성 상태입니다. false이면 Lambda는 폴링 및 호출을 일시 중지합니다.

기본값: True

유형: 부울

필수 항목 여부: 아니요

FilterCriteria

Lambda가 이벤트를 처리해야 하는지를 결정하는 필터 기준을 정의하는 객체입니다. 자세한 내용은 Lambda 이벤트 필터링을 참조하세요.

유형: FilterCriteria객체

필수 항목 여부: 아니요

FunctionName

Lambda 함수의 이름입니다.

이름 형식
  • 함수 이름 - MyFunction.

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

  • 버전 또는 별칭 ARN - arn:aws:lambda:us-west-2:123456789012:function:MyFunction:PROD.

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

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

유형: 문자열

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

패턴: (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-_]+))?

필수 항목 여부: 아니요

FunctionResponseTypes

(Kinesis, DynamoDB Streams 및 Amazon SQS) 이벤트 소스 매핑에 적용된 현재 응답 유형 열거형 목록입니다.

유형: 문자열 배열

배열 멤버: 최소 항목 수는 0개입니다. 최대 항목 수는 1개입니다.

유효 값: ReportBatchItemFailures

필수 항목 여부: 아니요

MaximumBatchingWindowInSeconds

Lambda가 함수를 호출하기 전에 레코드를 수집하는 데 걸리는 최대 시간(초)입니다. MaximumBatchingWindowInSeconds는 0초에서 300초 사이의 값을 초 단위로 구성할 수 있습니다.

스트림 및 Amazon SQS 이벤트 소스의 경우 기본 일괄 처리 기간은 0초입니다. Amazon MSK, 자체 관리형 Apache Kafka 및 Amazon MQ, DocumentDB 이벤트 소스의 경우 기본 일괄 처리 시간은 500ms입니다. MaximumBatchingWindowInSeconds는 초 단위로만 변경할 수 있기 때문에 변경한 후에는 500ms 기본 일괄 처리 기간으로 되돌릴 수 없습니다. 기본 일괄 처리 기간을 복원하려면 새 이벤트 소스 매핑을 생성해야 합니다.

관련 설정: 스트림 및 Amazon SQS 이벤트 소스의 경우, BatchSize를 10보다 큰 값으로 설정하면 MaximumBatchingWindowInSeconds를 1이상으로 설정해야 합니다.

유형: 정수

유효한 범위: 최소값 0. 최대값 300입니다.

필수 항목 여부: 아니요

MaximumRecordAgeInSeconds

(Kinesis와 DynamoDB 스트림만 해당) 지정된 기간보다 오래된 레코드를 삭제합니다. 기본값은 무한(-1)입니다.

Type: 정수

유효한 범위: 최소값은 -1입니다. 최대값 604,800입니다.

필수 항목 여부: 아니요

MaximumRetryAttempts

(Kinesis와 DynamoDB 스트림만 해당) 지정된 횟수의 재시도 후에 레코드를 삭제합니다. 기본값은 무한(-1)입니다. 무한(-1)으로 설정하면 레코드가 만료될 때까지 실패한 레코드가 다시 시도됩니다.

유형: 정수

유효한 범위: 최소값은 -1입니다. 최대값은 10,000입니다.

필수 항목 여부: 아니요

ParallelizationFactor

(Kinesis와 DynamoDB스트림만 해당) 각 샤드에서 동시에 처리할 배치 수입니다.

유형: 정수

유효한 범위: 최소값 1. 최대값은 10입니다.

필수 항목 여부: 아니요

ScalingConfig

(Amazon SQS만 해당) 이벤트 소스의 크기 조정 구성입니다. 자세한 내용은 Amazon SQS 이벤트 소스의 최대 동시성 구성을 참조하세요.

유형: ScalingConfig객체

필수 항목 여부: 아니요

SourceAccessConfigurations

이벤트 소스를 보호하는 데 필요한 인증 프로토콜 또는 VPC 구성 요소 배열입니다.

유형: SourceAccessConfiguration 객체 배열

배열 멤버: 최소 항목 수는 0개입니다. 최대 항목 수는 22개입니다.

필수 항목 여부: 아니요

TumblingWindowInSeconds

(Kinesis 및 DynamoDB 스트림만 해당) DynamoDB 및 Kinesis 스트림 이벤트 소스에 대한 처리 시간(초)입니다. 값이 0초이면 텀블링 윈도우가 없음을 나타냅니다.

유형: 정수

유효한 범위: 최소값 0. 최대값은 900입니다.

Required: No

응답 구문

HTTP/1.1 202 Content-type: application/json { "AmazonManagedKafkaEventSourceConfig": { "ConsumerGroupId": "string" }, "BatchSize": number, "BisectBatchOnFunctionError": boolean, "DestinationConfig": { "OnFailure": { "Destination": "string" }, "OnSuccess": { "Destination": "string" } }, "DocumentDBEventSourceConfig": { "CollectionName": "string", "DatabaseName": "string", "FullDocument": "string" }, "EventSourceArn": "string", "FilterCriteria": { "Filters": [ { "Pattern": "string" } ] }, "FunctionArn": "string", "FunctionResponseTypes": [ "string" ], "LastModified": number, "LastProcessingResult": "string", "MaximumBatchingWindowInSeconds": number, "MaximumRecordAgeInSeconds": number, "MaximumRetryAttempts": number, "ParallelizationFactor": number, "Queues": [ "string" ], "ScalingConfig": { "MaximumConcurrency": number }, "SelfManagedEventSource": { "Endpoints": { "string" : [ "string" ] } }, "SelfManagedKafkaEventSourceConfig": { "ConsumerGroupId": "string" }, "SourceAccessConfigurations": [ { "Type": "string", "URI": "string" } ], "StartingPosition": "string", "StartingPositionTimestamp": number, "State": "string", "StateTransitionReason": "string", "Topics": [ "string" ], "TumblingWindowInSeconds": number, "UUID": "string" }

응답 요소

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

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

AmazonManagedKafkaEventSourceConfig

Amazon Managed Streaming for Apache Kafka(Amazon MSK) 이벤트 소스에 대한 특정 구성 설정입니다.

유형: AmazonManagedKafkaEventSourceConfig객체

BatchSize

Lambda가 스트림 또는 대기열에서 풀링하여 함수로 보내는 각 배치의 최대 레코드 수입니다. Lambda는 동기식 호출에 대한 페이로드 제한(6MB)까지 단일 호출로 배치의 모든 레코드를 함수로 전달합니다.

기본값: 서비스에 따라 다릅니다. Amazon SQS의 경우 기본값은 10입니다. 다른 모든 서비스의 경우 기본값은 100입니다.

관련 설정: BatchSize를 10보다 큰 값으로 설정하면 MaximumBatchingWindowInSeconds를 1이상으로 설정합니다.

유형: 정수

유효한 범위: 최소값 1. 최대값은 10,000입니다.

BisectBatchOnFunctionError

(Kinesis와 DynamoDB 스트림만 해당) 함수가 오류를 반환하면 배치를 둘로 분할하고 다시 시도합니다. 기본값은 false입니다.

유형: Boolean

DestinationConfig

(Kinesis, DynamoDB Streams, Amazon MSK 및 자체 관리형 Apache Kafka 이벤트에만 해당) Lambda가 이벤트를 처리한 후 이벤트의 대상을 지정하는 구성 객체입니다.

유형: DestinationConfig객체

DocumentDBEventSourceConfig

DocumentDB 이벤트 소스에 대한 특정 구성 설정입니다.

유형: DocumentDBEventSourceConfig객체

EventSourceArn

이벤트 소스의 Amazon 리소스 이름(ARN)입니다.

유형: String

패턴: arn:(aws[a-zA-Z0-9-]*):([a-zA-Z0-9\-])+:([a-z]{2}(-gov)?-[a-z]+-\d{1})?:(\d{12})?:(.*)

FilterCriteria

Lambda가 이벤트를 처리해야 하는지를 결정하는 필터 기준을 정의하는 객체입니다. 자세한 내용은 Lambda 이벤트 필터링을 참조하세요.

유형: FilterCriteria객체

FunctionArn

Lambda 함수의 ARN입니다.

유형: String

패턴: 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-_]+))?

FunctionResponseTypes

(Kinesis, DynamoDB Streams 및 Amazon SQS) 이벤트 소스 매핑에 적용된 현재 응답 유형 열거형 목록입니다.

유형: 문자열 배열

배열 멤버: 최소 항목 수는 0개입니다. 최대 항목 수는 1개입니다.

유효한 값: ReportBatchItemFailures

LastModified

이벤트 소스 매핑이 마지막으로 업데이트된 날짜 또는 상태가 변경된 날짜입니다(Unix 시간 초).

유형: Timestamp

LastProcessingResult

함수의 마지막 Lambda 호출의 결과입니다.

유형: 문자열

MaximumBatchingWindowInSeconds

Lambda가 함수를 호출하기 전에 레코드를 수집하는 데 걸리는 최대 시간(초)입니다. MaximumBatchingWindowInSeconds는 0초에서 300초 사이의 값을 초 단위로 구성할 수 있습니다.

스트림 및 Amazon SQS 이벤트 소스의 경우 기본 일괄 처리 기간은 0초입니다. Amazon MSK, 자체 관리형 Apache Kafka 및 Amazon MQ, DocumentDB 이벤트 소스의 경우 기본 일괄 처리 시간은 500ms입니다. MaximumBatchingWindowInSeconds는 초 단위로만 변경할 수 있기 때문에 변경한 후에는 500ms 기본 일괄 처리 기간으로 되돌릴 수 없습니다. 기본 일괄 처리 기간을 복원하려면 새 이벤트 소스 매핑을 생성해야 합니다.

관련 설정: 스트림 및 Amazon SQS 이벤트 소스의 경우, BatchSize를 10보다 큰 값으로 설정하면 MaximumBatchingWindowInSeconds를 1이상으로 설정해야 합니다.

유형: 정수

유효한 범위: 최소값 0. 최대값 300입니다.

MaximumRecordAgeInSeconds

(Kinesis와 DynamoDB 스트림만 해당) 지정된 기간보다 오래된 레코드를 삭제합니다. 기본값은 -1이며, 최대 기간을 무한으로 설정합니다. 값이 무한으로 설정되면 Lambda가 오래된 레코드를 버리지 않습니다.

참고

최대 레코드 수명의 최소 유효 값은 60초입니다. 60보다 작거나 -1보다 큰 값은 파라미터의 절대 범위에 속하지만 허용되지 않습니다.

유형: 정수

유효한 범위: 최소값은 -1입니다. 최대값 604,800입니다.

MaximumRetryAttempts

(Kinesis와 DynamoDB 스트림만 해당) 지정된 횟수의 재시도 후에 레코드를 삭제합니다. 기본값은 -1이며, 최대 재시도 횟수를 무한으로 설정합니다. MaximumRetryAttempts가 무한인 경우 이벤트 소스에서 레코드가 만료될 때까지 Lambda가 실패한 레코드를 다시 시도합니다.

유형: Integer

유효한 범위: 최소값은 -1입니다. 최대값은 10,000입니다.

ParallelizationFactor

(Kinesis와 DynamoDB스트림만 해당) 각 샤드에서 동시에 처리할 배치 수입니다. 기본값은 1입니다.

유형: Integer

유효한 범위: 최소값 1. 최대값은 10입니다.

Queues

(Amazon MQ) 소비할 Amazon MQ 브로커 대상 대기열의 이름입니다.

유형: 문자열 배열

배열 멤버: 고정된 항목 수는 1개입니다.

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

패턴: [\s\S]*

ScalingConfig

(Amazon SQS만 해당) 이벤트 소스의 크기 조정 구성입니다. 자세한 내용은 Amazon SQS 이벤트 소스의 최대 동시성 구성을 참조하세요.

유형: ScalingConfig객체

SelfManagedEventSource

이벤트 소스에 대한 자체 관리형 Apache Kafka 클러스터입니다.

유형: SelfManagedEventSource 객체

SelfManagedKafkaEventSourceConfig

자체 관리형 Apache Kafka 이벤트 소스에 대한 특정 구성 설정입니다.

유형: SelfManagedKafkaEventSourceConfig객체

SourceAccessConfigurations

이벤트 소스를 보호하기 위한 일련의 인증 프로토콜 또는 VPC 구성 요소입니다.

유형: SourceAccessConfiguration 객체 배열

배열 멤버: 최소 항목 수는 0개입니다. 최대 항목 수는 22개입니다.

StartingPosition

읽기를 시작하는 스트림 내의 위치입니다. Amazon Kinesis 및 Amazon DynamoDB Streams 이벤트 소스에 필요합니다. AT_TIMESTAMP는 Amazon DynamoDB Streams, Amazon DocumentDB, Amazon MSK, 자체 관리형 Apache Kafka에 대해서만 지원됩니다.

유형: 문자열

유효 값: TRIM_HORIZON | LATEST | AT_TIMESTAMP

StartingPositionTimestamp

StartingPosition을 AT_TIMESTAMP로 설정했을 때 읽기를 시작하는 시간(Unix 시간 초)입니다. StartingPositionTimestamp는 미래가 될 수 없습니다.

유형: 타임스탬프

State

이벤트 소스 매핑의 상태입니다. Creating, Enabling, Enabled, Disabling, Disabled, Updating 또는 Deleting 중 하나일 수 있습니다.

유형: 문자열

StateTransitionReason

사용자 또는 Lambda가 이벤트 소스 매핑을 마지막으로 변경했는지 여부를 나타냅니다.

유형: 문자열

Topics

Kafka 주제의 이름입니다.

유형: 문자열 배열

배열 멤버: 고정된 항목 수는 1개입니다.

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

패턴: ^[^.]([a-zA-Z0-9\-_.]+)

TumblingWindowInSeconds

(Kinesis 및 DynamoDB 스트림만 해당) DynamoDB 및 Kinesis 스트림 이벤트 소스에 대한 처리 시간(초)입니다. 값이 0초이면 텀블링 윈도우가 없음을 나타냅니다.

유형: 정수

유효한 범위: 최소값 0. 최대값은 900입니다.

UUID

이벤트 소스 매핑의 식별자입니다.

유형: 문자열

Errors

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

InvalidParameterValueException

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

HTTP 상태 코드: 400

ResourceConflictException

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

HTTP 상태 코드: 409

ResourceInUseException

작업이 리소스의 가용 상태와 충돌합니다. 예를 들어 CREATING 상태에서 이벤트 소스 매핑을 업데이트하려 했거나, 현재 UPDATING 상태인 이벤트 소스 매핑을 삭제하려 했을 수 있습니다.

HTTP 상태 코드: 400

ResourceNotFoundException

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

HTTP 상태 코드: 404

ServiceException

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

HTTP 상태 코드: 500

TooManyRequestsException

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

HTTP Status Code: 429

참고

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