此问题发生的原因可能是在CloudFormation堆栈创建或更新过程中,AWS IoT主题规则的状态未稳定,或者删除操作尚未完成。解决此问题的方法是等待一段时间(一般为1-2分钟),然后重新尝试执行删除操作:
Resources:
MyTopicRule:
Type: AWS::IoT::TopicRule
Properties:
...
MyCloudFormationDeleteWaitCondition:
Type: AWS::CloudFormation::WaitConditionHandle
MyCloudFormationDeleteWaitConditionWaiter:
Type: AWS::CloudFormation::WaitCondition
Properties:
Handle: !Ref MyCloudFormationDeleteWaitCondition
Timeout: '3600'
Count: 1
MyCloudFormationStack:
Type: AWS::CloudFormation::Stack
Properties:
...
DeletionPolicy: Retain
DependsOn:
- MyTopicRule
- MyCloudFormationDeleteWaitConditionWaiter
在上面的示例模板中,添加了一个AWS CloudFormation等待条件,以确保AWS IoT主题规则已被删除。这将在删除provisioned资源时等待一定时间,直到AWS IoT主题规则已经稳定并被成功删除,然后才继续执行CloudFormation堆栈的删除操作。
另外,需要注意AWS CloudFormation堆栈的销毁策略(DeletionPolicy)。在上面的示例中,将DeletionPolicy设置为“Retain”,以确保不会遗留任何AWS IoT主题规则。
上一篇:AWSIoT主动配置模板无效
下一篇:AWSIoT子设备?