AWS CloudFormation
User Guide (API 版本 2010-05-15)
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 Amazon AWS 入门

Amazon CloudWatch Events 规则目标

Target 属性类型用于指定触发规则时 CloudWatch Events 调用的目标,例如 AWS Lambda (Lambda) 函数或 Kinesis 流。

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

语法

属性

注意

有关每个属性 (包括约束和有效值) 的更多信息,请参阅 Amazon CloudWatch Events API 参考 中的 Amazon CloudWatch Events 规则目标

Arn

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

Required: Yes

Type: String

EcsParameters

事件目标是 Amazon ECS 任务的情况下,要使用的 Amazon ECS 任务定义和任务计数。

必需:否

类型CloudWatch Events Rule EcsParameters

Id

用户定义的目标唯一标识符。可接受的值包括字母数字字符、句点 (.)、连字符 (-) 和下划线 (_)。

Required: Yes

Type: String

Input

传递到目标的 JSON 格式的文本字符串。此值覆盖匹配的事件。

Required: No。如果不指定该属性和 InputPath 属性,CloudWatch Events 会将整个匹配的事件传递到目标。

Type: String

InputPath

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

Required: No。如果不指定该属性和 Input 属性,CloudWatch Events 会将整个匹配的事件传递到目标。

Type: String

InputTransformer

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

必需:否

类型CloudWatch Events Rule InputTransformer

KinesisParameters

当目标是 Kinesis 流时,用于控制分片分配的设置。如果不包括此参数,eventId 将用作分区键。

必需:否

类型CloudWatch Events Rule KinesisParameters

RoleArn

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

注意

CloudWatch Events 需要具有相应的权限以针对您拥有的资源进行 API 调用。对于 Kinesis 流,CloudWatch Events 依赖 IAM 角色。对于 Lambda、Amazon SNS 和 Amazon SQS 资源,CloudWatch Events 依赖基于资源的策略。有关更多信息,请参阅 Amazon CloudWatch 用户指南 中的在 CloudWatch Events 中使用基于资源的策略

Required: No

Type: String

RunCommandParameters

规则在调用 Amazon EC2 Systems Manager 运行命令时所使用的参数。

必需:否

类型CloudWatch Events Rule RunCommandParameters

示例

以下示例为 AWS::Events::Rule 资源定义目标。有关更多示例,请参阅 Amazon CloudWatch Events API 参考 中的 PutTargets

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

本页内容: