检查主动配置模板并确认其有效性。在模板中,需要定义设备的属性、策略和证书等。
代码示例:
首先,创建一个主动配置模板,并定义设备属性、策略和证书等:
{
"Parameters": {
"ThingType": {
"Type": "String"
},
"ThingName": {
"Type": "String"
},
"IotPolicyName": {
"Type": "String"
}
},
"Resources": {
"Thing": {
"Properties": {
"AttributePayload": {
"version": "v1.0"
},
"ThingTypeName": {
"Fn::Ref": "ThingType"
}
},
"Type": "AWS::IoT::Thing"
},
"IotPolicy": {
"Properties": {
"PolicyDocument": {
"Statement": [
{
"Effect": "Allow",
"Action": "iot:*",
"Resource": "*"
}
]
},
"PolicyName": {
"Fn::Ref": "IotPolicyName"
}
},
"Type": "AWS::IoT::Policy"
}
}
}
然后,使用AWS IoT SDK for Python创建一个主动配置:
import boto3
iot = boto3.client('iot')
response = iot.create_provisioning_template(
templateName='MyProvisioningTemplate',
description='My Provisioning Template',
enabled=True,
preProvisioningHook={
'payloadVersion': 'v1.0',
'targetArn': 'arn:aws:lambda:us-west-2:123456789012:function:MyLambdaFunction',
'payloadDataSource': 'lambda'
},
templateBody='{\n "Parameters": {\n "ThingType": {\n "Type": "String"\n },\n "ThingName": {\n "Type": "String"\n },\n "IotPolicyName": {\n "Type": "String"\n }\n },\n "Resources": {\n "Thing": {\n "Properties": {\n "AttributePayload": {\n "version": "v1.0"\n },\n "ThingTypeName": {\n "Fn::Ref": "ThingType"\n }\n },\n "Type": "AWS::IoT::Thing"\n },\n "IotPolicy": {\n "Properties": {\n "PolicyDocument": {\n "Statement": [\n {\n "Effect": "Allow",\n "Action": "iot:*",\n "Resource": "*"\n }\n ]\n },\n "PolicyName": {\n "Fn::Ref": "IotPolicyName"\n }\n },\n "Type": "AWS::IoT::Policy"\n }\n }\n}'
)
最后,验证主动配置模板是否有效:
response = iot.describe_provisioning_template(
templateName='MyProvisioningTemplate'
)
if response['templateArn']:
print('The provisioning template is valid.')
else:
print('The provisioning template is invalid.')