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

AWS::Lambda::EventSourceMapping

AWS::Lambda::EventSourceMapping 资源在事件源和 AWS Lambda 函数之间创建映射。Lambda 从事件源读取项目并触发该函数。

有关每个事件源类型的详细信息,请参阅以下主题。

语法

要在 AWS CloudFormation 模板中声明此实体,请使用以下语法:

JSON

{ "Type" : "AWS::Lambda::EventSourceMapping", "Properties" : { "BatchSize" : Integer, "BisectBatchOnFunctionError" : Boolean, "DestinationConfig" : DestinationConfig, "Enabled" : Boolean, "EventSourceArn" : String, "FunctionName" : String, "MaximumBatchingWindowInSeconds" : Integer, "MaximumRecordAgeInSeconds" : Integer, "MaximumRetryAttempts" : Integer, "ParallelizationFactor" : Integer, "StartingPosition" : String } }

YAML

Type: AWS::Lambda::EventSourceMapping Properties: BatchSize: Integer BisectBatchOnFunctionError: Boolean DestinationConfig: DestinationConfig Enabled: Boolean EventSourceArn: String FunctionName: String MaximumBatchingWindowInSeconds: Integer MaximumRecordAgeInSeconds: Integer MaximumRetryAttempts: Integer ParallelizationFactor: Integer StartingPosition: String

属性

BatchSize

要在单个批次中检索的最大项目数。

  • Amazon Kinesis - 默认值为 100。最大值为 10,000。

  • Amazon DynamoDB Streams - 默认值为 100。最大值为 1,000。

  • Amazon Simple Queue Service - 默认值为 10。最大值为 10。

必需:否

类型:整数

最低1

最高10000

Update requires: No interruption

BisectBatchOnFunctionError

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

必需:否

类型:布尔值

Update requires: No interruption

DestinationConfig

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

必需:否

类型DestinationConfig

Update requires: No interruption

Enabled

禁用事件源映射以暂停轮询和调用。

必需:否

类型:布尔值

Update requires: No interruption

EventSourceArn

事件源的 Amazon 资源名称 (ARN)。

  • Amazon Kinesis - 数据流或流使用者的 ARN。

  • Amazon DynamoDB Streams - 流的 ARN。

  • Amazon Simple Queue Service - 队列的 ARN。

必需:是

类型:字符串

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

Update requires: Replacement

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

Update requires: No interruption

MaximumBatchingWindowInSeconds

(流)在调用函数之前收集记录的最长时间,以秒为单位。

必需:否

类型:整数

最低0

最高300

Update requires: No interruption

MaximumRecordAgeInSeconds

(流)Lambda 发送到函数以进行处理的记录的最长期限。

必需:否

类型:整数

最低60

最高604800

Update requires: No interruption

MaximumRetryAttempts

(流)在函数返回错误时重试的最大次数。

必需:否

类型:整数

最低0

最高10000

Update requires: No interruption

ParallelizationFactor

(流)要从每个分片中同时处理的批次数。

必需:否

类型:整数

最低1

最高10

Update requires: No interruption

StartingPosition

在流中开始读取数据的位置。对 Amazon Kinesis 和 Amazon DynamoDB Streams 源是必需的。

  • LATEST - 仅读取新记录。

  • TRIM_HORIZON - 处理所有可用的记录。

必需:否

类型:字符串

Update requires: Replacement

返回值

Ref

在将此资源的逻辑 ID 传递给内部 Ref 函数时,Ref 返回 映射的 ID。

For more information about using the Ref function, see Ref.

示例

事件源映射

创建事件源映射,该映射从 Amazon Kinesis 读取事件并在同一模板中调用 Lambda 函数。

JSON

"EventSourceMapping": { "Type": "AWS::Lambda::EventSourceMapping", "Properties": { "EventSourceArn": { "Fn::Join": [ "", [ "arn:aws:kinesis:", { "Ref": "AWS::Region" }, ":", { "Ref": "AWS::AccountId" }, ":stream/", { "Ref": "KinesisStream" } ] ] }, "FunctionName": { "Fn::GetAtt": [ "LambdaFunction", "Arn" ] }, "StartingPosition": "TRIM_HORIZON" } }

YAML

MyEventSourceMapping: Type: AWS::Lambda::EventSourceMapping Properties: EventSourceArn: Fn::Join: - "" - - "arn:aws:kinesis:" - Ref: "AWS::Region" - ":" - Ref: "AWS::AccountId" - ":stream/" - Ref: "KinesisStream" FunctionName: Fn::GetAtt: - "LambdaFunction" - "Arn" StartingPosition: "TRIM_HORIZON"