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

AWS::IoT::TopicRule

使用 AWS::IoT::TopicRule 资源声明 AWS IoT 规则。有关使用 AWS IoT 规则的信息,请参阅 AWS IoT 开发人员指南 中的 AWS IoT 规则

语法

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

JSON

{ "Type" : "AWS::IoT::TopicRule", "Properties" : { "RuleName" : String, "TopicRulePayload" : TopicRulePayload } }

YAML

Type: AWS::IoT::TopicRule Properties: RuleName: String TopicRulePayload: TopicRulePayload

属性

RuleName

规则的名称。

必需:否

类型:字符串

Update requires: Replacement

TopicRulePayload

规则负载。

必需:是

类型TopicRulePayload

Update requires: No interruption

返回值

Ref

在将此资源的逻辑 ID 传递给内部 Ref 函数时,Ref 返回主题规则名称。例如:

{ "Ref": "MyTopicRule" }

对于名为 My-Stack 的堆栈(忽略 - 字符),将返回与以下值类似的值:

MyStackMyTopicRule12ABC3D456EFG

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

Fn::GetAtt

Fn::GetAtt 内部函数返回此类型的一个指定属性的值。以下为可用属性和示例返回值。

有关使用 Fn::GetAtt 内部函数的更多信息,请参阅 Fn::GetAtt

Arn

AWS IoT 规则的 Amazon 资源名称 (ARN),例如 arn:aws:iot:us-east-2:123456789012:rule/MyIoTRule

示例

以下示例声明 AWS IoT 规则。

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": "MyBucket" }, "RoleArn": { "Fn::GetAtt": ["MyRole", "Arn"] }, "Key": "MyKey.txt" } }] } , "MyBucket": { "Type": "AWS::S3::Bucket", "Properties": {} }, "MyRole": { "Type": "AWS::IAM::Role", "Properties": { "AssumeRolePolicyDocument": { "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Principal": { "Service": ["iot.amazonaws.com"] }, "Action": ["sts:AssumeRole"] }] } } } }, "Parameters": { "NameParameter": { "Type": "String" } } } } }

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: MyBucket, RoleArn: {'Fn::GetAtt': [MyRole, Arn], Key: MyKey.txt}}}}]} MyBucket: {Type: 'AWS::S3::Bucket', Properties: null} MyRole: {Type: 'AWS::IAM::Role', Properties: {AssumeRolePolicyDocument: {Version: '2012-10-17', Statement: {Effect: Allow, Principal: {Service: [iot.amazonaws.com]}, Action: ['sts:AssumeRole']}}}} Parameters: NameParameter: {Type: String}