使用 ec2 作为 Terraform 的源配置资源 "aws_cloud_distribution"

Configure Resource "aws_cloud_distribution" with ec2 as the origin with Terraform

我正在使用 Terraform 设置“aws_cloud_distribution”并尝试将 ec2 设置为我的来源。

在我的模块中我有:

origin {
    domain_name = var.domain_name
    origin_id = var.origin_id
  }

在主文件中我调用这个模块并使用 ec2 public dns 的输出。

module "cloudfront" {
  source = "./modules/cloudfront"

  domain_name = module.ec2.ec2_public_dns

  origin_id = "myid"

  target_origin_id = "myid"
}

当我运行计划时,我没有任何问题。但是,当我 运行 申请并开始构建过程时,出现以下错误:

error creating CloudFront Distribution: InvalidArgument: The parameter Origin DomainName does not refer to a valid S3 bucket. status code: 400

我使用 Terraform 0.13.6 是出于一些公司对公司其他基础设施的限制。这是 Terraform 版本问题还是我在配置步骤中遗漏了什么?

所以,我通过在 origin 参数中添加 custom_origin_config 参数来解决这个问题。解决方案如下所示:

origin {
    domain_name = var.domain_name
    origin_id = var.origin_id
    custom_origin_config {
      http_port = 80
      https_port = 443
      origin_protocol_policy = "match-viewer"
      origin_ssl_protocols = ["TLSv1"]
    }
  }

如果您不定义 custom_origin_config 参数,Terraform 默认为 S3 来源。 Terraform 的 AWS 插件正在搜索 s3 存储桶而不是要解析的 AWS FQDN。