0

尝试使用 AWS IoT 中的 RegisterThings 操作时出现以下错误。在 API 调用中,我尝试设置事物组,但出现以下错误:

调用 RegisterThing 操作时发生错误 (ResourceRegistrationFailureException):Existing ThingGroups: [] 与模板中的 ThingGroups: [mythingggroup] 冲突

这是我的配置模板:

provision_json = json.dumps({
    "Parameters": {
        "ThingName": {
            "Type": "String"
        },
        "ThingGroup": {
            "Type": "String"
        },
        "CertificateId": {
            "Type": "String"
        },
        "PolicyName": {
            "Type": "String"
        },
        "AssumeRolePolicyName": {
            "Type": "String"
        }
    },
    "Resources": {
        "Thing": {
            "Type": "AWS::IoT::Thing",
            "Properties": {
                "ThingName": {
                    "Ref": "ThingName"
                },
                "ThingGroups": [{
                    "Ref": "ThingGroup"
                }]
            },
            "OverrideSettings" : {
                "ThingGroups" : "REPLACE"
            }
        },
        "Certificate": {
            "Type": "AWS::IoT::Certificate",
            "Properties": {
                "CertificateId": {
                    "Ref": "CertificateId"
                }
            }
        },
        "DevicePolicy": {
            "Type": "AWS::IoT::Policy",
            "Properties": {
                "PolicyName": {
                    "Ref": "PolicyName"
                }
            }
        },
        "TESAssumeRolePolicy": {
            "Type": "AWS::IoT::Policy",
            "Properties": {
                "PolicyName": {
                    "Ref": "AssumeRolePolicyName"
                }
            }
        }
    }
})

然后我像这样调用 boto3 客户端:

iot = boto3.client("iot")

    response = iot.register_thing(
        templateBody=provision_json,
        parameters={
            "CertificateId": "1234",
            "ThingName": "mythingname",
            "ThingGroup": "mythinggroupname",
            "PolicyName": "mypolicyname",
            "AssumeRolePolicyName": "anotherpolicyname"
        }
    )

我认为这可能是权限错误,但即使在我给调用者 iot:* 之后,我仍然遇到同样的问题。

AWS 没有提供很好的文档说明为什么会发生此错误。有没有人有任何想法?

4

0 回答 0