Terraform使用状态文件跟踪其管理的资源。如果它没有特定的资源(在这种情况下可能是
aws_cloudfront_distribution.primary_domain
资源),它将创建一个新资源,并将该新资源的ID存储在您的状态文件中。
看起来你做了
terraform apply
使用本地状态文件,将后端更改为s3,而不将状态移植到s3,然后运行
地形应用
再一次第二次S3支持的运行具有空白状态,因此它尝试重新创建
aws_cloudfront_distribution
再次使用资源。看起来像是错误
indicates a conflict in using the same CNAME for two distributions
,如果您运行两次Terraform而不跟踪其间的状态,就会发生这种情况。
您有几个选项可以修复此问题:
-
返回到使用现有的本地状态文件,
terraform destroy
要删除它创建的资源,请切换回s3,然后
地形应用
重新开始。请注意,这实际上
删除资源。
-
正确更改后端和
reinitialize
,然后回答“是”,将远程状态复制到S3。
-
terraform import
将使用本地状态文件创建的资源放入S3后端。使用此操作
terraform import
aws_cloudfront_distribution.primary_domain <EXISTING CLOUDFRONT DIST.
ID>
。