Amazon web services Terraform-错误:未找到匹配的Route53区域

Amazon web services Terraform-错误:未找到匹配的Route53区域,amazon-web-services,terraform,terraform-provider-aws,Amazon Web Services,Terraform,Terraform Provider Aws,我正在使用https://github.com/cloudposse/terraform-aws-acm-request-certificate使用terraform和aws生成证书 我想在几个域上运行这个模块:“example.com”、“cdn.example.com” 我不想为cdn.example.com使用subject\u alternative\u name,因为它将出现在证书内的subject字段中,当每个人都打开证书时,我不想让他看到cdn域 对于cdn.example.com

我正在使用
https://github.com/cloudposse/terraform-aws-acm-request-certificate
使用terraform和aws生成证书

我想在几个域上运行这个模块:“example.com”、“cdn.example.com”

我不想为
cdn.example.com
使用
subject\u alternative\u name
,因为它将出现在证书内的
subject
字段中,当每个人都打开证书时,我不想让他看到cdn域

对于cdn.example.com,我需要一个新证书

因此,我尝试使用下面的代码运行
terraform apply
,但出现了错误:

错误:找不到匹配的Route53区域

在.terraform\modules\acm\u request\u certificate\u example\main.tf第19行的 数据“aws_route53_zone”默认值:19:数据“aws_route53_zone” “默认值”{

错误:找不到匹配的Route53区域

在.terraform\modules\acm\u request\u certificate\u cdn\u example\main.tf第19行的 数据“aws_route53_zone”默认值:19:数据“aws_route53_zone” “默认值”{

我不能运行更多的模块?如何解决它呢

main.tf

terraform {
  required_version = "~> 0.12.0"
}

provider "aws" {
  version = "~> 2.12.0"
  region  = "us-east-1"
}
module "acm_request_certificate_example" {
  source                            = "git::https://github.com/cloudposse/terraform-aws-acm-request-certificate.git?ref=master"
  domain_name                       = "example.com"
  process_domain_validation_options = true
  ttl                               = "300"
}

module "acm_request_certificate_cdn_example" {
  source                            = "git::https://github.com/cloudposse/terraform-aws-acm-request-certificate.git?ref=master"
  domain_name                       = "cdn.example.com"
  process_domain_validation_options = true
  ttl                               = "300"
}
我只有
example.com
在托管区。

根据评论

该问题是由使用
process\u domain\u validation\u options=true
引起的。这将在请求证书之前检查Roure53中是否存在托管区域。这样做是为了启用要颁发的SSL证书的自动验证

因为在OP的情况下,SSL证书是为没有相应区域的域请求的,所以terraform出错了


解决方案是使用
process\u domain\u validation\u options=false
,但这需要手动验证程序才能发布SSL。为了实现此程序的自动化,必须通过自定义解决方案来完成。从广义上讲,此类解决方案可能涉及使用lam创建验证所需的记录bda函数或provisioner来创建所需的记录。

这些域的route53中是否有相应的托管区域?错误是因为terrafom找不到标题为
otherexample.com
(或您正在传递的内容)的托管区域。您可以转到您的路由53并检查托管区域的名称吗?您可以尝试使用
process\u domain\u validation\u options=false
,但随后您必须手动验证要颁发的SSL证书的域。是的,这是可行的。但正如您所说,我必须手动验证要颁发的SSL证书的域。如果您知道如何操作w为了使其在无需我设置
过程\域\验证\选项的情况下仍能正常工作,这将非常有帮助。谢谢:)很高兴听到。如果您不介意,我将根据我们的讨论提供答案。