UpdateEventSourceMapping
更新事件源映射。您可以更改 Amazon Lambda 调用的函数,或暂停调用并稍后从同一位置恢复。
有关如何配置不同事件源的详细信息,请参阅以下主题。
以下错误处理选项仅适用于流源(DynamoDB 和 Kinesis):
- 
         BisectBatchOnFunctionError– 如果函数返回错误,则将批次拆分为两批并重试。
- 
         DestinationConfig– 将丢弃的记录发送到 Amazon SQS 队列或 Amazon SNS 主题。
- 
         MaximumRecordAgeInSeconds– 丢弃超过指定期限的记录。默认值为无限 (-1)。如果设置为无限 (-1),则会一直重试失败的记录,直到记录过期。
- 
         MaximumRetryAttempts– 在指定重试次数后丢弃记录。默认值为无限 (-1)。如果设置为无限 (-1),则会一直重试失败的记录,直到记录过期。
- 
         ParallelizationFactor– 同时处理来自每个分片的多个批次。
有关适用于每个事件源的配置参数信息,请参阅以下主题。
请求语法
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
- 
               事件源映射的标识符。 必需:是 
请求体
请求接受采用 JSON 格式的以下数据。
- 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 类型:布尔值 必需:否 
- 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。 必需:否 
- ScalingConfig
- 
               (仅限 Amazon SQS)事件源的扩缩配置。有关更多信息,请参阅为 Amazon SQS 事件源配置最大并发。 类型:ScalingConfig 对象 必需:否 
- SourceAccessConfigurations
- 
               用于保护事件源的身份验证协议数组或 VPC 组件。 类型:SourceAccessConfiguration 对象数组 数组成员:最少 0 项。最多 22 项。 必需:否 
- 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 
- ResourceInUseException
- 
               该操作与资源的可用性冲突。例如,您试图在 CREATING 状态中更新事件源映射,或尝试删除当前处于 UPDATING 状态的事件源映射。 HTTP 状态代码:400 
- ResourceNotFoundException
- 
               请求中指定的资源不存在。 HTTP 状态代码:404 
- ServiceException
- 
               Amazon Lambda 服务遇到了内部错误。 HTTP 状态代码:500 
- TooManyRequestsException
- 
               超出了请求吞吐量限制。有关更多信息,请参阅 Lambda 限额。 HTTP 状态代码:429 
另请参阅
有关在特定语言的 Amazon SDK 中使用此 API 的更多信息,请参阅以下内容: