UpdateEventSourceMapping - Amazon Lambda
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

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" } }, "Enabled": boolean, "FilterCriteria": { "Filters": [ { "Pattern": "string" } ] }, "FunctionName": "string", "FunctionResponseTypes": [ "string" ], "MaximumBatchingWindowInSeconds": number, "MaximumRecordAgeInSeconds": number, "MaximumRetryAttempts": number, "ParallelizationFactor": 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。

类型:整数

有效范围:最小值为 1。最大值为 10000。

必需:否

BisectBatchOnFunctionError

(仅限流)如果函数返回错误,则将批次拆分为两批并重试。

类型:布尔值

必需:否

DestinationConfig

(仅限流)丢弃的记录的 Amazon SQS 队列或 Amazon SNS 主题目标。

类型:DestinationConfig 对象

必需:否

Enabled

当为 true 时,事件源映射处于活动状态。当为 false 时,Lambda 暂停轮询和调用。

默认值:True

类型:布尔值

必需:否

FilterCriteria

(流和 Amazon SQS)定义用于确定 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

(流和 Amazon SQS)应用于事件源映射的当前响应类型枚举的列表。

类型:字符串数组

数组成员:最少 0 项。最多 1 项。

有效值: ReportBatchItemFailures

必需:否

MaximumBatchingWindowInSeconds

Lambda 在调用函数之前收集记录的最长时间,以秒为单位。您可以将 MaximumBatchingWindowInSeconds 配置为介于 0 秒到 300 秒之间的任意值,以秒的整数倍调整。

对于流和 Amazon SQS 事件源,默认批处理时段为 0 秒。对于 Amazon MSK、自行管理的 Apache Kafka 和 Amazon MQ 事件源,默认批处理时段为 500 毫秒。请注意,由于您只能以秒为增量更改 MaximumBatchingWindowInSeconds,所以在更改后无法恢复到 500 毫秒的默认批处理时段。要恢复原定设置的批处理时段,必须创建新的事件源映射。

相关设置:对于流和 Amazon SQS 事件源,当将 BatchSize 设置为大于 10 的值时,必须将 MaximumBatchingWindowInSeconds 至少设置为 1。

类型:整数

有效范围:最小值为 0。最大值为 300。

必需:否

MaximumRecordAgeInSeconds

(仅限流)丢弃超过指定期限的记录。默认值为无限 (-1)。

类型:整数

有效范围:最小值为 -1。最大值为 604800。

必需:否

MaximumRetryAttempts

(仅限流)在指定重试次数后丢弃记录。默认值为无限 (-1)。如果设置为无限 (-1),将会一直重试失败的记录,直到记录过期。

类型:整数

有效范围:最小值为 -1。最大值为 10000。

必需:否

ParallelizationFactor

(仅限流)每个分区中同时处理的批次数。

类型:整数

有效范围:最小值为 1。最大值为 10。

必需:否

SourceAccessConfigurations

用于保护事件源的身份验证协议数组或 VPC 组件。

类型:SourceAccessConfiguration 对象数组

数组成员:最少 0 项。最多 22 项。

必需:否

TumblingWindowInSeconds

(仅限流)处理窗口的持续时间(以秒为单位)。范围介于 1 秒至 900 秒之间。

类型:整数

有效范围:最小值为 0。最大值为 900。

必需:否

响应语法

HTTP/1.1 202 Content-type: application/json { "BatchSize": number, "BisectBatchOnFunctionError": boolean, "DestinationConfig": { "OnFailure": { "Destination": "string" }, "OnSuccess": { "Destination": "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" ], "SelfManagedEventSource": { "Endpoints": { "string" : [ "string" ] } }, "SourceAccessConfigurations": [ { "Type": "string", "URI": "string" } ], "StartingPosition": "string", "StartingPositionTimestamp": number, "State": "string", "StateTransitionReason": "string", "Topics": [ "string" ], "TumblingWindowInSeconds": number, "UUID": "string" }

响应元素

如果此操作成功,则该服务将会发送回 HTTP 202 响应。

服务以 JSON 格式返回的以下数据。

BatchSize

Lambda 从流或队列中提取并发送到函数的每个批处理中的最大记录数。Lambda 在单次调用中将批处理中的所有记录传递给函数,最高可传递同步调用的负载上限 (6 MB)。

默认值:因服务而异。对于 Amazon SQS,默认值为 10。对于所有其他服务,默认值为 100。

相关设置:当将 BatchSize 设置为一个大于 10 的值时,必须至少将 MaximumBatchingWindowInSeconds 设置为 1。

类型:整数

有效范围:最小值为 1。最大值为 10000。

BisectBatchOnFunctionError

(仅限流)如果函数返回错误,则将批次拆分为两批并重试。默认值为 False。

类型:布尔值

DestinationConfig

(仅限流)丢弃的记录的 Amazon SQS 队列或 Amazon SNS 主题目标。

类型:DestinationConfig 对象

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

(流和 Amazon SQS)定义用于确定 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

(流和 Amazon SQS)应用于事件源映射的当前响应类型枚举的列表。

类型:字符串数组

数组成员:最少 0 项。最多 1 项。

有效值: ReportBatchItemFailures

LastModified

上次更新事件源映射或其状态更改的日期(以 Unix 时间秒为单位)。

类型:Timestamp

LastProcessingResult

函数的最后一次 Lambda 调用结果。

类型:字符串

MaximumBatchingWindowInSeconds

Lambda 在调用函数之前收集记录的最长时间,以秒为单位。您可以将 MaximumBatchingWindowInSeconds 配置为介于 0 秒到 300 秒之间的任意值,以秒的整数倍调整。

对于流和 Amazon SQS 事件源,默认批处理时段为 0 秒。对于 Amazon MSK、自行管理的 Apache Kafka 和 Amazon MQ 事件源,默认批处理时段为 500 毫秒。请注意,由于您只能以秒为增量更改 MaximumBatchingWindowInSeconds,所以在更改后无法恢复到 500 毫秒的默认批处理时段。要恢复原定设置的批处理时段,必须创建新的事件源映射。

相关设置:对于流和 Amazon SQS 事件源,当将 BatchSize 设置为大于 10 的值时,必须将 MaximumBatchingWindowInSeconds 至少设置为 1。

类型:整数

有效范围:最小值为 0。最大值为 300。

MaximumRecordAgeInSeconds

(仅限流)丢弃超过指定期限的记录。原定设置值为 -1,该值将最大年龄设置为无限。将该值设置为无限后,Lambda 永远不会删除旧记录。

类型:整数

有效范围:最小值为 -1。最大值为 604800。

MaximumRetryAttempts

(仅限流)在指定重试次数后丢弃记录。原定设置值为 -1,该值将最大重试次数设置为无限。将 MaximumRetryAttempts 设置为无限后,Lambda 会重试失败的记录,直到事件源中的记录过期为止。

类型:整数

有效范围:最小值为 -1。最大值为 10000。

ParallelizationFactor

(仅限流)每个分区中同时处理的批次数。默认值是 1。

类型:整数

有效范围:最小值为 1。最大值为 10。

Queues

(Amazon MQ) 要使用的 Amazon MQ 代理目标队列的名称。

类型:字符串数组

数组成员:固定数量为 1 项。

长度限制:最小长度为 1。长度上限为 1000。

模式:[\s\S]*

SelfManagedEventSource

适用于事件源的自行管理 Apache Kafka 集群。

类型:SelfManagedEventSource 对象

SourceAccessConfigurations

用于保护与定义事件源的身份验证协议数组 VPC 组件或虚拟化主机。

类型:SourceAccessConfiguration 对象数组

数组成员:最少 0 项。最多 22 项。

StartingPosition

在流中开始读取数据的位置。对于 Amazon Kinesis、Amazon DynamoDB 及 Amazon MSK 流源是必需的。AT_TIMESTAMP 仅支持 Amazon Kinesis Streams。

类型:字符串

有效值: TRIM_HORIZON | LATEST | AT_TIMESTAMP

StartingPositionTimestamp

StartingPosition 设置为 AT_TIMESTAMP 时,开始读取的时间(以 Unix 时间秒为单位)。

类型:Timestamp

State

事件源映射的状态。此状态可以是以下值之一:CreatingEnablingEnabledDisablingDisabledUpdatingDeleting

类型:字符串

StateTransitionReason

表明是用户还是 Lambda 对事件源映射进行了最后一次更改。

类型:字符串

Topics

Kafka 主题的名称。

类型:字符串数组

数组成员:固定数量为 1 项。

长度限制:最小长度为 1。长度上限为 249。

模式:^[^.]([a-zA-Z0-9\-_.]+)

TumblingWindowInSeconds

(仅限流)处理窗口的持续时间(以秒为单位)。范围为 1-900 秒。

类型:整数

有效范围:最小值为 0。最大值为 900。

UUID

事件源映射的标识符。

类型:字符串

错误

InvalidParameterValueException

请求中的参数之一无效。

HTTP 状态代码:400

ResourceConflictException

资源已存在,或者其他操作正在进行中。

HTTP 状态代码:409

ResourceInUseException

该操作与资源的可用性冲突。例如,您试图在 CREATING 中更新 EventSource 映射,或尝试删除当前处于 UPDATING 状态的 EventSource 映射。

HTTP 状态代码:400

ResourceNotFoundException

请求中指定的资源不存在。

HTTP 状态代码:404

ServiceException

Amazon Lambda 服务遇到了内部错误。

HTTP 状态代码:500

TooManyRequestsException

超出了请求吞吐量限制。

HTTP 状态代码:429

另请参阅

有关在特定语言的 Amazon 软件开发工具包中使用此 API 的更多信息,请参阅以下内容: