amazon-web-services - 调用 RegisterThing 操作时出现 ResourceRegistrationFailureException - 事物组冲突
问题描述
尝试使用 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 没有提供很好的文档说明为什么会发生此错误。有没有人有任何想法?
解决方案
推荐阅读
- powershell - 从 Compress-Archive Powershell Cmd 中排除子目录
- sql - 从另一个数字范围中减去一个数字范围
- powershell - 相同的数组内容,给我不同的结果
- scala - 隐式转换的结果类型必须比函数中的 AnyRef 更具体
- javascript - 为什么 FormData() 构造函数不起作用
- android - 我的自定义 DocumentsProvider 是否应该使用 ParcelFileDescriptor 流式传输所选文件?
- webgl - 使用大比例因子调整图像大小
- visual-studio-2017 - Visual Studio 2017 创建拉取请求按钮随机消失
- c# - 无法转换类型异常的对象
- r - 如何使用公开数据将字符串转换为 R 中的数值