AWS::IoT::Thing
Use the AWS::IoT::Thing
resource to declare an AWS IoT
thing.
For information about working with things, see How AWS IoT Works and Device Registry 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::Thing", "Properties" : { "AttributePayload" :
AttributePayload
, "ThingName" :String
} }
YAML
Type: AWS::IoT::Thing Properties: AttributePayload:
AttributePayload
ThingName:String
Properties
AttributePayload
-
A string that contains up to three key value pairs. Maximum length of 800. Duplicates not allowed.
Required: No
Type: AttributePayload
Update requires: No interruption
ThingName
-
The name of the thing to update.
You can't change a thing's name. To change a thing's name, you must create a new thing, give it the new name, and then delete the old thing.
Required: No
Type: String
Pattern:
[a-zA-Z0-9:_-]+
Minimum:
1
Maximum:
128
Update requires: Replacement
Return values
Ref
When you pass the logical ID of this resource to the intrinsic Ref
function, Ref
returns the thing name. For example:
{ "Ref": "MyThing" }
For a stack named MyStack, a value similar to the following is returned:
MyStack-MyThing-AB1CDEFGHIJK
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 thing, such as
arn:aws:iot:us-east-2:123456789012:thing/MyThing
. Id
-
The Id of this thing.
Examples
The following example declares a thing and the values of its attributes.
JSON
{ "AWSTemplateFormatVersion":"2010-09-09", "Resources":{ "MyThing":{ "Type":"AWS::IoT::Thing", "Properties":{ "ThingName":{ "Ref":"NameParameter" }, "AttributePayload":{ "Attributes":{ "myAttributeA":{ "Ref":"MyAttributeValueA" }, "myAttributeB":{ "Ref":"MyAttributeValueB" }, "myAttributeC":{ "Ref":"MyAttributeValueC" } } } } } }, "Parameters":{ "NameParameter":{ "Type":"String" }, "MyAttributeValueA":{ "Type":"String", "Default":"myStringA123" }, "MyAttributeValueB":{ "Type":"String", "Default":"myStringB123" }, "MyAttributeValueC":{ "Type":"String", "Default":"myStringC123" } } }
YAML
AWSTemplateFormatVersion: '2010-09-09' Resources: MyThing: Type: AWS::IoT::Thing Properties: ThingName: Ref: NameParameter AttributePayload: Attributes: myAttributeA: Ref: MyAttributeValueA myAttributeB: Ref: MyAttributeValueB myAttributeC: Ref: MyAttributeValueC Parameters: NameParameter: Type: String MyAttributeValueA: Type: String Default: myStringA123 MyAttributeValueB: Type: String Default: myStringB123 MyAttributeValueC: Type: String Default: myStringC123