0

在 Atlas 上运行 terraform apply 并且在 AWS 路由 53 上失败时,我遇到以下错误:

Apply execution has failed
The apply encountered an errored while executing 10 minutes ago. State information was persisted and subsequent applies will continue making changes in a safe way.
Terraform v0.6.11

Setting up remote state...
Downloading remote modules...
Refreshing Terraform state prior to plan...
aws_route53_zone.zone: Destroying...
module.prod_website.aws_iam_access_key.website: Creating...
  secret:            "" => "<computed>"
  ses_smtp_password: "" => "<computed>"
  status:            "" => "<computed>"
  user:              "" => "domain.tld"
module.prod_website.aws_iam_access_key.website: Creation complete
Error applying plan:

1 error(s) occurred:

* aws_route53_zone.zone: HostedZoneNotEmpty: The specified hosted zone contains non-required resource record sets  and so cannot be deleted.
    status code: 400, request id: 8305ce48-cab3-11e5-92ae-d57244aa6db1

Terraform does not automatically rollback in the face of errors.
Instead, your Terraform state file has been partially updated with
any resources that successfully completed. Please address the error
above and apply again to incrementally change your infrastructure.

如何确定托管区域的 ID 以便我可以删除它?或者,我怎样才能找出正在使用的资源并污染该资源?此应用程序的存储库在这里:https ://github.com/zinedistro/infrastructure

编辑:这是完整的调试日志

4

4 回答 4

0

Terraform 0.7.1引入了为区域指定参数的能力force_destroy,如果设置为true将删除区域中的所有记录,然后删除区域本身。

如果您希望 Terraform 完全管理区域,但其他工具可能会添加 Terraform 不知道的记录,这可能很有用。

于 2017-01-13T11:49:29.610 回答
0

如果甚至有一个非默认记录集,则无法删除托管区域。在AWS 文档中检查这一点。

于 2017-01-13T10:05:33.570 回答
0

看起来 terraform 试图以某种方式创建/销毁/操作的托管区域已经存在。这可能来自之前的失败创建尝试或之前手动添加区域的人。解决此错误的一种方法是进入控制台并确定已经存在的特定区域(“网站”?),然后手动删除它,然后使用 Terraform 重新创建。

于 2016-04-14T16:46:42.947 回答
0

使用 AWS CLI,您可以运行aws route53 list-hosted-zones以获取托管区域的列表。

此外,您可以转到 AWS 控制台 > Route 53 > 托管区域并查看该Hosted Zone ID列。

于 2016-05-06T21:09:27.557 回答