CreateEventSourceMapping
在事件源和 Amazon Lambda 函数之间创建映射。Lambda 从事件源读取项目并调用该函数。
有关如何配置不同事件源的详细信息,请参阅以下主题。
以下错误处理选项仅适用于流源(DynamoDB 和 Kinesis):
-
BisectBatchOnFunctionError
– 如果函数返回错误,则将批次拆分为两批并重试。 -
DestinationConfig
– 将丢弃的记录发送到 Amazon SQS 队列或 Amazon SNS 主题。 -
MaximumRecordAgeInSeconds
– 丢弃超过指定期限的记录。默认值为无限 (-1)。如果设置为无限 (-1),则会一直重试失败的记录,直到记录过期。 -
MaximumRetryAttempts
– 在指定重试次数后丢弃记录。默认值为无限 (-1)。如果设置为无限 (-1),则会一直重试失败的记录,直到记录过期。 -
ParallelizationFactor
– 同时处理来自每个分片的多个批次。
有关适用于每个事件源的配置参数信息,请参阅以下主题。
请求语法
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 在单次调用中将批处理中的所有记录传递给函数,最高可传递同步调用的负载上限 (6 MB)。
-
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。
-
自行管理的 Apache Kafka – 默认值为 100。最大值为 10,000。
-
Amazon MQ(ActiveMQ 和 RabbitMQ) – 默认值为 100。最大值为 10,000。
-
DocumentDB – 默认值 100。最大值为 10,000。
类型:整数
有效范围:最小值为 1。最大值为 10000。
必需:否
-
- BisectBatchOnFunctionError
-
(仅限 Kinesis 和 DynamoDB Streams)如果函数返回错误,则将分处理拆分为两个并重试。
类型:布尔值
必需:否
- DestinationConfig
-
(仅限 Kinesis、DynamoDB Streams、Amazon MSK 和自行管理的 Kafka)用于在 Lambda 处理事件后指定事件目标的配置对象。
类型:DestinationConfig 对象
必需:否
- DocumentDBEventSourceConfig
-
DocumentB 事件源的特定配置设置。
类型:DocumentDBEventSourceConfig 对象
必需:否
- Enabled
-
当为 true 时,事件源映射处于活动状态。当为 false 时,Lambda 暂停轮询和调用。
默认值:True
类型:布尔值
必需:否
- EventSourceArn
-
事件源的 Amazon Resource Name (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。
模式:
(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 事件源,默认批处理时间窗口为 500 毫秒。请注意,由于您只能以秒为增量更改
MaximumBatchingWindowInSeconds
,所以在更改后无法恢复到 500 毫秒的默认批处理时段。要恢复原定设置的批处理时段,必须创建新的事件源映射。相关设置:对于流和 Amazon SQS 事件源,当将
BatchSize
设置为大于 10 的值时,必须将MaximumBatchingWindowInSeconds
至少设置为 1。类型:整数
有效范围:最小值为 0。最大值为 300。
必需:否
- MaximumRecordAgeInSeconds
-
(仅限 Kinesis 和 DynamoDB Streams)丢弃超过指定龄期的记录。默认值为无限 (-1)。
类型:整数
有效范围:最小值为 -1。最大值为 604800。
必需:否
- MaximumRetryAttempts
-
(仅限 Kinesis 和 DynamoDB Streams)在指定重试次数后丢弃记录。默认值为无限 (-1)。如果设置为无限 (-1),则会一直重试失败的记录,直到记录过期。
类型:整数
有效范围:最小值为 -1。最大值为 10000。
必需:否
- ParallelizationFactor
-
(仅限 Kinesis 和 DynamoDB Streams)每个分片中同时处理的批处理数。
类型:整数
有效范围:最小值为 1。最大值为 10。
必需:否
- Queues
-
(MQ) 要使用的 Amazon MQ 代理目标队列的名称。
类型:字符串数组
数组成员:固定数量为 1 项。
长度限制:最小长度为 1。最大长度为 1000。
模式:
[\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 事件源,为必需项。仅 Amazon Kinesis 流、Amazon DocumentDB、Amazon MSK 和自行管理的 Apache Kafka 支持
AT_TIMESTAMP
。类型:字符串
有效值:
TRIM_HORIZON | LATEST | AT_TIMESTAMP
必需:否
- StartingPositionTimestamp
-
将
StartingPosition
设置为AT_TIMESTAMP
时,即开始读取的时间(以 Unix 时间秒为单位)。StartingPositionTimestamp
不能是未来时间。类型:时间戳
必需:否
- Topics
-
Kafka 主题的名称。
类型:字符串数组
数组成员:固定数量为 1 项。
长度限制:最小长度为 1。长度上限为 249。
模式:
^[^.]([a-zA-Z0-9\-_.]+)
必需:否
- TumblingWindowInSeconds
-
(仅限 Kinesis 和 DynamoDB Streams)DynamoDB 和 Kinesis Streams 事件源的处理时间窗口(以秒为单位)。值为 0 秒表示无滑动时间窗口。
类型:整数
有效范围:最小值为 0。最大值为 900。
必需:否
响应语法
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) 事件源的特定配置设置。
- BatchSize
-
Lambda 从流或队列中提取并发送到函数的每个批处理中的最大记录数。Lambda 在单次调用中将批处理中的所有记录传递给函数,最高可传递同步调用的负载上限 (6 MB)。
默认值:因服务而异。对于 Amazon SQS,默认值为 10。对于所有其他服务,默认值为 100。
相关设置:当将
BatchSize
设置为一个大于 10 的值时,必须至少将MaximumBatchingWindowInSeconds
设置为 1。类型:整数
有效范围:最小值为 1。最大值为 10000。
- BisectBatchOnFunctionError
-
(仅限 Kinesis 和 DynamoDB Streams)如果函数返回错误,则将分处理拆分为两个并重试。默认值为 False。
类型:布尔值
- DestinationConfig
-
(仅限 Kinesis、DynamoDB Streams、Amazon MSK 和自行管理的 Apache Kafka 事件源)用于在 Lambda 处理事件后指定事件目标的配置对象。
类型:DestinationConfig 对象
- DocumentDBEventSourceConfig
-
DocumentB 事件源的特定配置设置。
- EventSourceArn
-
事件源的 Amazon Resource Name (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 对象
- FunctionArn
-
Lambda 函数的 ARN。
类型:字符串
模式:
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 时间秒为单位)。
类型:时间戳
- LastProcessingResult
-
函数的最后一次 Lambda 调用结果。
类型:字符串
- MaximumBatchingWindowInSeconds
-
Lambda 在调用函数之前收集记录的最长时间,以秒为单位。您可以将
MaximumBatchingWindowInSeconds
配置为介于 0 秒到 300 秒之间的任意值,以秒的整数倍调整。对于流和 Amazon SQS 事件源,默认批处理时段为 0 秒。对于 Amazon MSK、自行管理的 Apache Kafka、Amazon MQ 和 DocumentDB 事件源,默认批处理时间窗口为 500 毫秒。请注意,由于您只能以秒为增量更改
MaximumBatchingWindowInSeconds
,所以在更改后无法恢复到 500 毫秒的默认批处理时段。要恢复原定设置的批处理时段,必须创建新的事件源映射。相关设置:对于流和 Amazon SQS 事件源,当将
BatchSize
设置为大于 10 的值时,必须将MaximumBatchingWindowInSeconds
至少设置为 1。类型:整数
有效范围:最小值为 0。最大值为 300。
- MaximumRecordAgeInSeconds
-
(仅限 Kinesis 和 DynamoDB Streams)丢弃超过指定龄期的记录。原定设置值为 -1,该值将最大年龄设置为无限。将该值设置为无限后,Lambda 永远不会删除旧记录。
注意
最长记录期限的最小有效值为 60 秒。尽管小于 60 和大于 -1 的值都在参数的绝对范围内,但不允许使用它们
类型:整数
有效范围:最小值为 -1。最大值为 604800。
- MaximumRetryAttempts
-
(仅限 Kinesis 和 DynamoDB Streams)在指定重试次数后丢弃记录。原定设置值为 -1,该值将最大重试次数设置为无限。将 MaximumRetryAttempts 设置为无限后,Lambda 会重试失败的记录,直到事件源中的记录过期为止。
类型:整数
有效范围:最小值为 -1。最大值为 10000。
- ParallelizationFactor
-
(仅限 Kinesis 和 DynamoDB Streams)每个分片中同时处理的批处理数。默认值是 1。
类型:整数
有效范围:最小值为 1。最大值为 10。
- Queues
-
(Amazon MQ) 要使用的 Amazon MQ 代理目标队列的名称。
类型:字符串数组
数组成员:固定数量为 1 项。
长度限制:最小长度为 1。最大长度为 1000。
模式:
[\s\S]*
- ScalingConfig
-
(仅限 Amazon SQS)事件源的扩缩配置。有关更多信息,请参阅为 Amazon SQS 事件源配置最大并发。
类型:ScalingConfig 对象
- SelfManagedEventSource
-
适用于事件源的自行管理 Apache Kafka 集群。
类型:SelfManagedEventSource 对象
- SelfManagedKafkaEventSourceConfig
-
自行管理的 Apache Kafka 事件源的特定配置设置。
- SourceAccessConfigurations
-
用于保护与定义事件源的身份验证协议数组 VPC 组件或虚拟化主机。
类型:SourceAccessConfiguration 对象数组
数组成员:最少 0 项。最多 22 项。
- StartingPosition
-
在流中开始读取数据的位置。对于 Amazon Kinesis 和 Amazon DynamoDB Streams 事件源,为必需项。仅 Amazon Kinesis 流、Amazon DocumentDB、Amazon MSK 和自行管理的 Apache Kafka 支持
AT_TIMESTAMP
。类型:字符串
有效值:
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 Streams)DynamoDB 和 Kinesis Streams 事件源的处理时间窗口(以秒为单位)。值为 0 秒表示无滑动时间窗口。
类型:整数
有效范围:最小值为 0。最大值为 900。
- UUID
-
事件源映射的标识符。
类型:字符串
错误
有关所有操作返回的常见错误的信息,请参阅 常见错误。
- InvalidParameterValueException
-
请求中的参数之一无效。
HTTP 状态代码:400
- ResourceConflictException
-
资源已存在,或者其他操作正在进行中。
HTTP 状态代码:409
- ResourceNotFoundException
-
请求中指定的资源不存在。
HTTP 状态代码:404
- ServiceException
-
Amazon Lambda 服务遇到了内部错误。
HTTP 状态代码:500
- TooManyRequestsException
-
超出了请求吞吐量限制。有关更多信息,请参阅 Lambda 限额。
HTTP 状态代码:429
另请参阅
有关在特定语言的 Amazon SDK 中使用此 API 的更多信息,请参阅以下内容: