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, "Topics" : [ 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 Topics: - String

属性

BatchSize

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

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

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

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

  • Amazon Managed Streaming for Apache Kafka - 默认 100。最大值为 10,000。

必需:否

类型:整数

最低1

最高10000

Update requires: No interruption

BisectBatchOnFunctionError

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

必需:否

类型:布尔值

Update requires: No interruption

DestinationConfig

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

必需:否

类型DestinationConfig

Update requires: No interruption

Enabled

如果为 true,则事件源映射处于活动状态。设置为 false 以暂停轮询和调用。

必需:否

类型:布尔值

Update requires: No interruption

EventSourceArn

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

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

  • Amazon DynamoDB Streams - 流的 ARN。

  • Amazon Simple Queue Service - 队列的 ARN。

  • Amazon Managed Streaming for Apache Kafka - 集群的 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

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

必需:否

类型:整数

最低60

最高604800

Update requires: No interruption

MaximumRetryAttempts

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

必需:否

类型:整数

最低0

最高10000

Update requires: No interruption

ParallelizationFactor

(流)要从每个分片中同时处理的批次数。默认值是 1。

必需:否

类型:整数

最低1

最高10

Update requires: No interruption

StartingPosition

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

  • LATEST - 仅读取新记录。

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

必需:否

类型:字符串

Update requires: Replacement

Topics

(MSK) Kafka 主题的名称。

必需:否

类型:字符串列表

最高1

Update requires: No interruption

返回值

Ref

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

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

Fn::GetAtt

Id

Not currently supported by AWS CloudFormation.

示例

事件源映射

创建事件源映射,该映射从 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"