CreateEventSourceMapping - AWS Lambda

CreateEventSourceMapping

이벤트 소스와 AWS Lambda Lambda 함수 간의 매핑을 만듭니다. Lambda는 이벤트 소스에서 항목을 읽고 함수를 호출합니다.

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

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

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

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

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

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

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

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

Request Syntax

POST /2015-03-31/event-source-mappings/ HTTP/1.1 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" }, "Enabled": boolean, "EventSourceArn": "string", "FilterCriteria": { "Filters": [ { "Pattern": "string" } ] }, "FunctionName": "string", "FunctionResponseTypes": [ "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, "Topics": [ "string" ], "TumblingWindowInSeconds": number }

URI 요청 파라미터

요청은 URI 파라미터를 사용하지 않습니다.

요청 본문

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

AmazonManagedKafkaEventSourceConfig

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

유형: AmazonManagedKafkaEventSourceConfig객체

필수 항목 여부: 아니요

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

유형: 부울

필수 항목 여부: 아니요

EventSourceArn

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

  • Amazon Kinesis - 데이터 스트림 또는 스트림 소비자의 ARN입니다.

  • Amazon DynamoDB Streams - 스트림의 ARN입니다.

  • Amazon Simple Queue Service - 대기열의 ARN입니다.

  • Amazon Managed Streaming for Apache Kafka - 클러스터의 ARN 또는 VPC 연결의 ARN (계정 간 이벤트 소스 매핑용)

  • Amazon MQ - 브로커의 ARN입니다.

  • Amazon DocumentDB — DocumentDB 변경 스트림의 ARN입니다.

유형: 문자열

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

필수 항목 여부: 아니요

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입니다.

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

필수 항목 여부: 예

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입니다.

필수 항목 여부: 아니요

Queues

(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는 미래가 될 수 없습니다.

유형: 타임스탬프

필수 항목 여부: 아니요

Topics

Kafka 주제의 이름입니다.

유형: 문자열 배열

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

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

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

필수 항목 여부: 아니요

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

ResourceNotFoundException

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

HTTP 상태 코드: 404

ServiceException

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

HTTP 상태 코드: 500

TooManyRequestsException

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

HTTP Status Code: 429

참고

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