本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
EventBridgeRule
描述EventBridgeRule
事件源类型的对象,它将您的无服务器函数设置为 Amazon EventBridge 规则的目标。有关更多信息,请参阅什么是亚马逊 EventBridge? 在《亚马逊 EventBridge 用户指南》中。
AWS SAM 生成一个 AWS::Events::Rule设置此事件类型时的资源。 AWS SAM 还会创建AWS::Lambda::Permission
资源,该资源是调用 Lambda 所EventBridgeRule
必需的。
语法
要在 AWS Serverless Application Model (AWS SAM) 模板中声明此实体,请使用以下语法。
YAML
DeadLetterConfig:
DeadLetterConfig
EventBusName:String
Input:String
InputPath:String
InputTransformer:InputTransformer
Pattern:EventPattern
RetryPolicy:RetryPolicy
RuleName:String
State:String
Target:Target
属性
-
DeadLetterConfig
-
配置 Amazon 简单队列服务 (AmazonSQS) 队列,在目标调用失败后在该队列中 EventBridge 发送事件。例如,当向不存在的 Lambda 函数发送事件时,或者没有足够的权限调用 Lambda 函数 EventBridge 时,调用可能会失败。有关更多信息,请参阅 A ma EventBridge zon 用户指南中的事件重试策略和使用死信队列。
注意
AWS::Serverless::Function 资源类型具有类似的数据类型
DeadLetterQueue
,用于处理成功调用目标 Lambda 函数后发生的故障。这些类型的故障示例包括 Lambda 节流或 Lambda 目标函数返回的错误。有关函数DeadLetterQueue
属性的更多信息,请参阅《AWS Lambda 开发人员指南》中的死信队列。必需:否
AWS CloudFormation 兼容性:此属性类似于
AWS::Events::Rule
Target
数据类型的DeadLetterConfig
属性。此属性的 AWS SAM 版本包括其他子属性, AWS SAM 以备您想要创建死信队列时使用。 -
EventBusName
-
要与该规则关联的事件总线。如果省略此属性,则 AWS SAM 使用默认的事件总线。
类型:字符串
必需:否
默认:默认事件总线
AWS CloudFormation 兼容性:此属性直接传递给
AWS::Events::Rule
资源的EventBusName
属性。 -
Input
-
传递给目标的有效JSON文本。如果使用此属性,则不会将事件文本本身的任何内容传递到目标。
类型:字符串
必需:否
AWS CloudFormation 兼容性:此属性直接传递给
AWS::Events::Rule Target
资源的Input
属性。 -
InputPath
-
当您不希望将整个匹配事件传递给目标时,请使用
InputPath
属性描述要传递事件的哪一部分。类型:字符串
必需:否
AWS CloudFormation 兼容性:此属性直接传递给
AWS::Events::Rule Target
资源的InputPath
属性。 -
InputTransformer
-
使您可以根据特定事件数据向目标提供自定义输入的设置。您可以从事件中提取一个或多个键值对,然后使用该数据将自定义输入发送到目标。有关更多信息,请参阅《亚马逊 EventBridge 用户指南》中的亚马逊 EventBridge 输入转换。
必需:否
AWS CloudFormation 兼容性:此属性直接传递给
AWS::Events::Rule
Target
数据类型的InputTransformer
属性。 -
Pattern
-
描述哪些事件路由到指定目标。有关更多信息,请参阅《亚马逊 EventBridge 用户指南》中的亚马逊 EventBridgeEventBridge 事件和事件模式。
类型:EventPattern
必需:是
AWS CloudFormation 兼容性:此属性直接传递给
AWS::Events::Rule
资源的EventPattern
属性。 -
RetryPolicy
-
包含有关重试策略设置的信息的
RetryPolicy
对象。有关更多信息,请参阅 A ma EventBridge zon 用户指南中的事件重试策略和使用死信队列。类型:RetryPolicy
必需:否
AWS CloudFormation 兼容性:此属性直接传递给
AWS::Events::Rule
Target
数据类型的RetryPolicy
属性。 -
RuleName
-
规则的名称。
类型:字符串
必需:否
AWS CloudFormation 兼容性:此属性直接传递给
AWS::Events::Rule
资源的Name
属性。 -
State
-
规则的状态。
可接受的值:
DISABLED
|ENABLED
|ENABLED_WITH_ALL_CLOUDTRAIL_MANAGEMENT_EVENTS
类型:字符串
必需:否
AWS CloudFormation 兼容性:此属性直接传递给
AWS::Events::Rule
资源的State
属性。 -
Target
-
触发规则时 EventBridge 调用的 AWS 资源。您可以使用此属性来指定目标的逻辑 ID。如果未指定此属性,则 AWS SAM 生成目标的逻辑 ID。
类型:目标
必需:否
AWS CloudFormation 兼容性:此属性类似于
AWS::Events::Rule
资源的Targets
属性。Amazon EC2 RebootInstances API call
是目标属性的一个示例。此属性的 AWS SAM 版本仅允许您指定单个目标的逻辑 ID。
示例
EventBridgeRule
以下是 EventBridgeRule
事件源类型的示例。
YAML
EBRule: Type: EventBridgeRule Properties: Input: '{"Key": "Value"}' Pattern: detail: state: - terminated RetryPolicy: MaximumRetryAttempts: 5 MaximumEventAgeInSeconds: 900 DeadLetterConfig: Type: SQS QueueLogicalId: EBRuleDLQ Target: Id: MyTarget