我有一个生产环境,它被配置为具有指向负载均衡器的域名。这已经开始工作了,并且使用Route53进行了配置。
我使用Terraform来部署基础设施,包括Route53记录。
Route53记录被手动设置为。
我希望Terraform在随后的部署中管理Route53记录。但是,当我运行更新以更新基础设施并包含Route53记录时,我会得到以下错误:
Error: Error applying plan:
1 error(s) occurred:
* module.asg.aws_route53_record.www: 1 error(s) occurred:
* aws_route53_record.www: [ERR]: Error building changeset:
InvalidChangeBatch: [Tried to create a resource record set
[name='foo.com.', type='A'] but it already exists]
首先,这个错误是有意义的,因为资源已经存在了。但是,考虑到这一点,如何在不导致停机的情况下克服这个问题?
我尝试过手动编辑状态文件以包含route53记录,但是同样的错误失败了.
如果需要的话,我很乐意提供更多的信息。欢迎您提出任何建议。谢谢。
发布于 2020-07-02 18:44:19
您可以使用terraform将现有的Route53资源导入到当前的terraform基础结构中。以下是几个步骤:
terraform导入aws_route53_record.www ZONEID_RECORDNAME_TYPE_SET-标识符
例如:
terraform导入aws_route53_record.www Z4KAPRWWNC7JR_dev.example.com_CNAME
导入成功后,这将保存现有资源的状态。
发布于 2019-06-10 16:02:12
必须使用terraform import
命令将记录导入Terraform状态。您不应该手动编辑状态!
有关如何导入记录的其他信息,请参见资源文档。
发布于 2020-10-13 05:45:06
留着给新来的访客。
在aws的后期版本(~3.10)中,它们提供了一个参数allow_overwrite
默认值为false。不需要编辑状态文件(不推荐)或进行terraform导入。
allow_overwrite -(可选)允许在Terraform中创建此记录,以覆盖现有记录(如果有的话)。这不影响更新Terraform中的记录的能力,也不阻止Terraform或手动路由53中的其他资源覆盖此记录。默认情况下为假。对于大多数环境,不建议使用此配置。
来自:覆盖
https://stackoverflow.com/questions/56529644
复制相似问题