【发布时间】:2019-02-11 15:13:55
【问题描述】:
我们将静态堆栈(CloudFront、S3、..)定义为不同项目的可配置模块。现在它们中的一些需要边缘 lambda,我也想让它们可配置(并且是可选的(!))。
我们使用的模块如下:
module "static" {
..
lambda_function_associations = [
{
event_type = "viewer-request"
lambda_arn = "${aws_lambda_function.onex_lambda_viewer_req.qualified_arn}"
},
{
event_type = "viewer-response"
lambda_arn = "${aws_lambda_function.onex_lambda_viewer_res.qualified_arn}"
},
]
..
}
CloudFront 的默认缓存行为定义如下:
default_cache_behavior {
..
lambda_function_association = ["${var.lambda_function_associations}"]
..
}
以及我们在模块中的变量:
variable "lambda_function_associations" {
type = "list"
default = []
}
应用这个堆栈我得到:
Error: module.static.aws_cloudfront_distribution.web: "default_cache_behavior.0.lambda_function_association.0.event_type": required field is not set
Error: module.static.aws_cloudfront_distribution.web: "default_cache_behavior.0.lambda_function_association.0.lambda_arn": required field is not set
有没有办法让它们选择性地工作?添加边缘 lambda 时,我真的不想复制整个堆栈。
显然这样的事情适用于 lb_health_check 配置块: https://github.com/hashicorp/terraform/issues/17292#issuecomment-393984861
提前致谢!
【问题讨论】:
-
你找到解决办法了吗?
-
@fboulay 还没有,这还在功能分支中,目前没有时间进一步调查。
标签: aws-lambda amazon-cloudfront terraform terraform-provider-aws