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

AWS::Events::Rule Target

Target 属性类型指定触发规则时 EventBridge 调用的目标,如 AWS Lambda 函数或 Amazon Kinesis 数据流。

AWS::Events::Rule 资源的 Targets 属性包含一个或多个 Target 属性类型的列表。

语法

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

属性

Arn

目标的 Amazon 资源名称 (ARN)。

必需:是

类型:字符串

最低1

最高1600

Update requires: No interruption

BatchParameters

如果事件目标是 AWS Batch 作业,则它包含作业定义、作业名称和其他参数。有关更多信息,请参阅 AWS Batch 用户指南 中的作业

必需:否

类型BatchParameters

Update requires: No interruption

EcsParameters

在事件目标是 Amazon ECS 任务的情况下,包含要使用的 Amazon ECS 任务定义和任务计数。有关 Amazon ECS 任务的更多信息,请参阅 Amazon EC2 Container Service 开发人员指南 中的任务定义

必需:否

类型EcsParameters

Update requires: No interruption

HttpParameters

包含当目标为 API 网关 REST 终端节点时要使用的 HTTP 参数。

如果将 API 网关 REST API 指定为目标,则可以使用此参数指定标头、路径参数、查询字符串键/值作为目标调用请求的一部分。

必需:否

类型HttpParameters

Update requires: No interruption

Id

目标的名称。使用一个将帮助您标识目标的字符串。与一个规则关联的每个目标都必须具有该规则的唯一 ID。

Id 可以包含字母数字字符、句点 (.)、连字符 (-) 和下划线 (_)。

必需:是

类型:字符串

最低1

最高64

模式[\.\-_A-Za-z0-9]+

Update requires: No interruption

Input

传递到目标的有效 JSON 文本。如果使用此属性,则不会将事件文本本身的任何内容传递到目标。

必需:否

类型:字符串

最高8192

Update requires: No interruption

InputPath

当您不希望传递整个匹配的事件时,InputPath 描述将事件的哪个部分传递到目标。

必需:否

类型:字符串

最高256

Update requires: No interruption

InputTransformer

使您可以根据特定事件数据向目标提供自定义输入的设置。您可以从事件中提取一个或多个键值对,然后使用该数据将自定义输入发送到目标。

必需:否

类型InputTransformer

Update requires: No interruption

KinesisParameters

当目标是 Kinesis 数据流时,您可用于控制分片分配的自定义参数。如果您未包含此参数,则默认将 eventId 用作分区键。

必需:否

类型KinesisParameters

Update requires: No interruption

RoleArn

在触发规则时用于该目标的 IAM 角色的 Amazon 资源名称 (ARN)。如果一个规则触发多个目标,您可以在每个目标中使用不同的 IAM 角色。

如果您将其他账户中的事件总线设置为目标,并且该账户已通过组织而不是直接按账户 ID 向您的账户授予权限,则您必须在此参数中指定具有正确权限的 RoleArn

必需:否

类型:字符串

最低1

最高1600

Update requires: No interruption

RunCommandParameters

当您使用规则来调用 Amazon EC2 Run Command 时使用的参数。

必需:否

类型RunCommandParameters

Update requires: No interruption

SqsParameters

包含当目标是 FIFO 队列时使用的消息组 ID。

如果您指定 SQS FIFO 队列作为目标,队列必须启用了基于内容的重复数据删除。

必需:否

类型SqsParameters

Update requires: No interruption

示例

使用 KinesisParameters 的目标

以下代码段创建一个 Kinesis 数据流目标。

JSON

"MyEventsRule": { "Type": "AWS::Events::Rule", "Properties": { "Description": "Events Rule with KinesisParameters", "EventPattern": { "source": [ "aws.ec2" ] }, "RoleArn": { "Fn::GetAtt": [ "EventsInvokeKinesisTargetRole", "Arn" ] }, "ScheduleExpression": "rate(5 minutes)", "State": "ENABLED", "Targets": [ { "Arn": { "Fn::GetAtt": [ "MyFirstStream", "Arn" ] }, "Id": "Id123", "RoleArn": { "Fn::GetAtt": [ "EventsInvokeKinesisTargetRole", "Arn" ] }, "KinesisParameters": { "PartitionKeyPath": "$" } } ] } }

YAML

MyEventsRule: Type: AWS::Events::Rule Properties: Description: Events Rule with KinesisParameters EventPattern: source: - aws.ec2 RoleArn: !GetAtt - EventsInvokeKinesisTargetRole - Arn ScheduleExpression: rate(5 minutes) State: ENABLED Targets: - Arn: !GetAtt - MyFirstStream - Arn Id: Id123 RoleArn: !GetAtt - EventsInvokeKinesisTargetRole - Arn KinesisParameters: PartitionKeyPath: $

使用 EcsParameters 的目标

以下代码段创建一个 Amazon ECS 任务目标。

JSON

"MyEventsRule": { "Type": "AWS::Events::Rule", "Properties": { "Description": "Events Rule with EcsParameters", "EventPattern": { "source": [ "aws.ec2" ], "detail-type": [ "EC2 Instance State-change Notification" ], "detail": { "state": [ "stopping" ] } }, "ScheduleExpression": "rate(15 minutes)", "State": "DISABLED", "Targets": [ { "Arn": { "Fn::GetAtt": [ "MyCluster", "Arn" ] }, "RoleArn": { "Fn::GetAtt": [ "ECSTaskRole", "Arn" ] }, "Id": "Id345", "EcsParameters": { "TaskCount": 1, "TaskDefinitionArn": { "Ref": "MyECSTask" } } } ] } }

YAML

MyEventsRule: Type: AWS::Events::Rule Properties: Description: Events Rule with EcsParameters EventPattern: source: - aws.ec2 detail-type: - EC2 Instance State-change Notification detail: state: - stopping ScheduleExpression: rate(15 minutes) State: DISABLED Targets: - Arn: !GetAtt - MyCluster - Arn RoleArn: !GetAtt - ECSTaskRole - Arn Id: Id345 EcsParameters: TaskCount: 1 TaskDefinitionArn: !Ref MyECSTask