Terraform 带条件的地形集变量
我试图将一个变量设置为一个字符串,该字符串稍后将与aws s3 bucket策略的另一个字符串连接。我正试图通过定义一个局部变量来实现这一点,但我还需要指定一个条件,在这个条件下我将使用它。我正在使用Terraform11 例如:Terraform 带条件的地形集变量,terraform,terraform0.11,Terraform,Terraform0.11,我试图将一个变量设置为一个字符串,该字符串稍后将与aws s3 bucket策略的另一个字符串连接。我正试图通过定义一个局部变量来实现这一点,但我还需要指定一个条件,在这个条件下我将使用它。我正在使用Terraform11 例如: 如果set_bucket_policy为false,则将变量设置为空字符串“” 否则,请使用heredoc设置变量的字符串值 例如,非工作代码: locals { my_bucket_policy = var.set_bucket_policy == &quo
- 如果set_bucket_policy为false,则将变量设置为空字符串“”
- 否则,请使用heredoc设置变量的字符串值
locals {
my_bucket_policy = var.set_bucket_policy == "false" ? "" : <<EOF
{
"Action": "s3:Get*",
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::${data.aws_caller_identity.current.account_id}:role/myrole"
},
"Resource": [
"arn:aws:s3:::mybucket",
"arn:aws:s3:::mybucket/*"
],
"Sid": ""
}
EOF
}
本地人{
my_bucket_policy=var.set_bucket_policy==“false”?:我认为这非常接近,我创建了一个小示例,演示如何使用条件。有关更多详细信息,您可以查看Terraform的
main.tf
variable "set_bucket_policy" {
type = bool
}
output "my_bucket_policy" {
value = var.set_bucket_policy == false ? "is set to false" : "is set to true"
}
样本输出
% terraform apply -var 'set_bucket_policy=false' -auto-approve
Apply complete! Resources: 0 added, 0 changed, 0 destroyed.
Outputs:
my_bucket_policy = is set to false
% terraform apply -var 'set_bucket_policy=true' -auto-approve
Apply complete! Resources: 0 added, 0 changed, 0 destroyed.
Outputs:
my_bucket_policy = is set to true
实际的错误消息是什么?错误:错误加载模块:模块mymodule:错误解析。terraform/modules/56fe672fc5a95438bdd61eddf28b668b/s3.tf:在12:29:未知令牌:12:29标识变量设置\ bucket\策略