gpt4 book ai didi

amazon-cloudfront - Terraform,使用和不使用多个 Origins 创建一个 CloudFront 分发可重用模块

转载 作者:行者123 更新时间:2023-12-01 15:02:06 24 4
gpt4 key购买 nike

我有一个需要 CloudFront + s3 的应用程序。我想创建一个 CloudFront 模块并使其可重复用于其他应用程序。

我的问题是我有一个应用程序需要两个 Origins(s3_origin_config 和一个 custom_origin_config),而另一个应用程序只需要 s3_origin_config。

问题是:我怎样才能有一个模块来处理需要两个 Origins 的应用程序和另一个只需要一个 Origin 的应用程序。

下面是我的代码示例:

resource "aws_cloudfront_distribution" "s3_distribution" {
origin {
domain_name = "${var.domain_name}"
origin_id = "${var.app_name}-${var.environment}"
origin_path = "/${var.environment}/${var.setup}/public"
s3_origin_config {
origin_access_identity = ${aws_cloudfront_origin_access_identity.origin_access_identity.cloudfront_access_identity_path}"
}
}


#HERE, I would like something like if $second_origin, then:
#I know there is no if in terraform, just to have an example ;)
origin {
domain_name = "${var.second_origin_domain_name}"
origin_id = "Custom-${var.second_origin_domain_name}"
custom_origin_config {
http_port = "80"
https_port = "443"
origin_protocol_policy = "https-only"
origin_ssl_protocols = ["TLSv1", "TLSv1.1", "TLSv1.2"]
}
custom_header {
name = "${var.second_origin_header_name}"
value = "${var.second_origin_header_key}"
}
}...

谢谢!

最佳答案

您需要创建两个具有不同来源要求的云端资源。使用 count,您可以同时启用一个资源和禁用另一个资源。这将允许您使用相同的模块来满足不同的来源要求。

这是一个简单的例子。

resource "aws_cloudfront_distribution" "cf_app1" {
count = "${var.something ? 1 : 0}"
}

resource "aws_cloudfront_distribution" "cf_app2" {
count = "${var.something ? 0 : 1}"
}

关于amazon-cloudfront - Terraform,使用和不使用多个 Origins 创建一个 CloudFront 分发可重用模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42632496/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com