AWS::IoT::TopicRule - AWS CloudFormation

AWS::IoT::TopicRule

AWS IoT ルールを宣言するには、AWS::IoT::TopicRule リソースを使用します。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

戻り値

参照番号

このリソースの論理 ID を組み込みの Ref 関数に渡すと、Ref は次を返します: : トピックのルール名。次に例を示します。

{ "Ref": "MyTopicRule" }

MyStack (- 文字が省略されています) という名前のスタックについては、次のような値が返されます。

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}