CloudFormation检测CloudFront标签时错误报告资源漂移问题咨询
漂移检测误判的核心原因
CloudFront的标签同步存在最终一致性延迟
CloudFront是全球分布式的边缘服务,标签配置提交生效后,需要同步到全球所有边缘节点和元数据存储节点,这个过程最长可能需要15分钟。你在分发创建完成后立刻执行漂移检测,CloudFormation调用的CloudFront资源读取接口还没有获取到最新的标签数据,就会错误判定预设标签已被移除,出现REMOVE类型的差异提示。CloudFormation对CloudFront资源的标签检测存在已知实现限制
AWS::CloudFront::Distribution资源类型的早期漂移检测逻辑设计存在缺陷,部分区域的CloudFormation服务不会主动拉取该资源的标签列表做比对,即便是标签已经实际生效,也会被漂移检测逻辑忽略,不管是栈自动传播的标签还是你手动添加的标签,都会出现检测不到的情况。
修复方案
- 资源创建完成后不要立刻执行漂移检测,等待10~15分钟后再重试,90%以上的误判场景都会自行恢复
- 等待后仍然误判的话,可以给CloudFormation栈执行一次无变更的空更新,触发CloudFormation重新同步资源的元数据,之后漂移检测就能正常识别已存在的标签
- 可以在模板的
AWS::CloudFront::Distribution资源定义中显式声明Tags字段,不要只依赖栈级别的全局标签自动传播,显式声明的标签被漂移检测识别的优先级更高,出现误判的概率会大幅降低
内容的提问来源于stack exchange,提问作者JSON Brody
相关产品推荐
相关产品推荐

