Terraform 如何设置计算的局部变量
我有一个Terraform 如何设置计算的局部变量,terraform,terraform-provider-aws,Terraform,Terraform Provider Aws,我有一个tf.json文件,它声明了一组局部变量。其中一个变量是复杂对象的数组,如下所示: { "locals": [ { "ordered_cache_behaviors": [ { "path_pattern": "/poc-app-angular*", "s3_target": "dev-ui-stat
tf.json
文件,它声明了一组局部变量。其中一个变量是复杂对象的数组,如下所示:
{
"locals": [
{
"ordered_cache_behaviors": [
{
"path_pattern": "/poc-app-angular*",
"s3_target": "dev-ui-static",
"ingress": "external"
}
]
}
]
}
这是我想做的。。。我希望这是一个计算值,而不是在我的文件中静态声明变量ordered\u cache\u behaviors
。我将从S3
bucket获取此配置,并在此处设置值。因此,静态值将仅为一个空数组[]
,在从S3
获取数据后,我将使用脚本附加到该数组
每次
地形计划
或地形应用
之前,都需要执行此逻辑。最好的方法是什么?我假设我需要使用供应器来启动脚本?如果是,那么如何在此处设置局部变量?如果缓存配置数据可以采用JSON格式,则可以使用plus函数作为替代方法:
将缓存配置数据作为cache config.json
上传到poc-app-cache-config
存储桶,然后使用以下命令让Terraform从S3下载该文件,并将其解析为本地有序缓存行为
变量:
data "aws_s3_bucket_object" "cache_configuration" {
bucket = "poc-app-cache-config"
key = "cache-config.json" # JSON-formatted cache configuration map
}
...
locals {
ordered_cache_behaviors = jsondecode(aws_s3_bucket_object.cache_configuration.body)
}
太棒了,谢谢!!