Select your cookie preferences

We use essential cookies and similar tools that are necessary to provide our site and services. We use performance cookies to collect anonymous statistics, so we can understand how customers use our site and make improvements. Essential cookies cannot be deactivated, but you can choose “Customize” or “Decline” to decline performance cookies.

If you agree, AWS and approved third parties will also use cookies to provide useful site features, remember your preferences, and display relevant content, including relevant advertising. To accept or decline all non-essential cookies, choose “Accept” or “Decline.” To make more detailed choices, choose “Customize.”

AWS::IoT::TopicRule

Focus mode
AWS::IoT::TopicRule - AWS CloudFormation
Filter View

Use the AWS::IoT::TopicRule resource to declare an AWS IoT rule. For information about working with AWS IoT rules, see Rules for AWS IoT in the AWS IoT Developer Guide.

Syntax

To declare this entity in your AWS CloudFormation template, use the following syntax:

JSON

{ "Type" : "AWS::IoT::TopicRule", "Properties" : { "RuleName" : String, "Tags" : [ Tag, ... ], "TopicRulePayload" : TopicRulePayload } }

YAML

Type: AWS::IoT::TopicRule Properties: RuleName: String Tags: - Tag TopicRulePayload: TopicRulePayload

Properties

RuleName

The name of the rule.

Required: No

Type: String

Pattern: ^[a-zA-Z0-9_]+$

Minimum: 1

Maximum: 128

Update requires: Replacement

Tags

Metadata which can be used to manage the topic rule.

Note

For URI Request parameters use format: ...key1=value1&key2=value2...

For the CLI command-line parameter use format: --tags "key1=value1&key2=value2..."

For the cli-input-json file use format: "tags": "key1=value1&key2=value2..."

Required: No

Type: Array of Tag

Update requires: No interruption

TopicRulePayload

The rule payload.

Required: Yes

Type: TopicRulePayload

Update requires: No interruption

Return values

Ref

When you pass the logical ID of this resource to the intrinsic Ref function, Ref returns the topic rule name. For example:

{ "Ref": "MyTopicRule" }

For a stack named My-Stack (the - character is omitted), a value similar to the following is returned:

MyStackMyTopicRule12ABC3D456EFG

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

Fn::GetAtt

The Fn::GetAtt intrinsic function returns a value for a specified attribute of this type. The following are the available attributes and sample return values.

For more information about using the Fn::GetAtt intrinsic function, see Fn::GetAtt.

Arn

The Amazon Resource Name (ARN) of the AWS IoT rule, such as arn:aws:iot:us-east-2:123456789012:rule/MyIoTRule.

Examples

The following example declares an AWS IoT rule.

JSON

{ "AWSTemplateFormatVersion": "2010-09-09", "Resources": { "MyTopicRule": { "Type": "AWS::IoT::TopicRule", "Properties": { "RuleName": { "Ref": "NameParameter" }, "TopicRulePayload": { "RuleDisabled": "true", "Sql": "SELECT temp FROM 'SomeTopic' WHERE temp > 60", "Actions": [{ "S3": { "BucketName": { "Ref": "amzn-s3-demo-bucket" }, "RoleArn": { "Fn::GetAtt": [ "MyRole", "Arn" ] }, "Key": "MyKey.txt" } }] } } } } }

YAML

AWSTemplateFormatVersion: '2010-09-09' Resources: MyTopicRule: Type: AWS::IoT::TopicRule Properties: RuleName: Ref: NameParameter TopicRulePayload: RuleDisabled: 'true' Sql: SELECT temp FROM 'SomeTopic' WHERE temp > 60 Actions: - S3: BucketName: Ref: amzn-s3-demo-bucket RoleArn: Fn::GetAtt: - MyRole - Arn Key: MyKey.txt

On this page

PrivacySite termsCookie preferences
© 2025, Amazon Web Services, Inc. or its affiliates. All rights reserved.