首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Terraform + Route53 -管理现有记录

Terraform + Route53 -管理现有记录
EN

Stack Overflow用户
提问于 2019-06-10 15:52:16
回答 3查看 6.2K关注 0票数 2

我有一个生产环境,它被配置为具有指向负载均衡器的域名。这已经开始工作了,并且使用Route53进行了配置。

我使用Terraform来部署基础设施,包括Route53记录。

Route53记录被手动设置为。

我希望Terraform在随后的部署中管理Route53记录。但是,当我运行更新以更新基础设施并包含Route53记录时,我会得到以下错误:

代码语言:javascript
运行
复制
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记录,但是同样的错误失败了.

如果需要的话,我很乐意提供更多的信息。欢迎您提出任何建议。谢谢。

EN

回答 3

Stack Overflow用户

发布于 2020-07-02 18:44:19

您可以使用terraform将现有的Route53资源导入到当前的terraform基础结构中。以下是几个步骤:

  1. 与你的愿望工作空间通过terraform。
  2. 定义与现有资源完全相同的aws_route53_record 资源"aws_route53_record“"www”{ //您的代码在这里}
  3. 导入所需资源

terraform导入aws_route53_record.www ZONEID_RECORDNAME_TYPE_SET-标识符

例如:

terraform导入aws_route53_record.www Z4KAPRWWNC7JR_dev.example.com_CNAME

导入成功后,这将保存现有资源的状态。

  1. 做地形计划检查资源
  2. 现在可以更新到现有资源。
票数 6
EN

Stack Overflow用户

发布于 2019-06-10 16:02:12

必须使用terraform import命令将记录导入Terraform状态。您不应该手动编辑状态!

有关如何导入记录的其他信息,请参见资源文档

票数 3
EN

Stack Overflow用户

发布于 2020-10-13 05:45:06

留着给新来的访客。

在aws的后期版本(~3.10)中,它们提供了一个参数allow_overwrite默认值为false。不需要编辑状态文件(不推荐)或进行terraform导入。

allow_overwrite -(可选)允许在Terraform中创建此记录,以覆盖现有记录(如果有的话)。这不影响更新Terraform中的记录的能力,也不阻止Terraform或手动路由53中的其他资源覆盖此记录。默认情况下为假。对于大多数环境,不建议使用此配置。

来自:覆盖

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56529644

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档