如何使用 terraform 将默认值设置为 aws_iam_policy?
How to set default value to aws_iam_policy with terraform?
我想动态设置 aws 策略。设置变量以调用 aws_iam_policy
资源。变量文件为
variables.tf
variable "name" {
default = ""
type = string
}
variable "policy" {
default = ""
type = string
}
在main.tf
resource "aws_iam_policy" "my_policy" {
name = var.name
policy = var.policy
}
当运行tflint
名称变量得到:
Error: name must be 1 characters or higher (aws_iam_policy_invalid_name)
Error: "" does not match valid pattern ^[\w+=,.@-]+$ (aws_iam_policy_invalid_name)
策略变量得到:
Error: policy must be 1 characters or higher (aws_iam_policy_invalid_policy)
Error: "" does not match valid pattern ^[\x{0009}\x{000A}\x{000D}\x{0020}-\x{00FF}]+$ (aws_iam_policy_invalid_policy)
默认不设置policy就不能设置为""字符串吗?
托管策略名称不能为空 字符串。 least 1 character 需要遵循 [\w+=,.@-]+
模式。
但是为了自动生成名字如果你有空字符串,你可以试试下面的方法:
resource "aws_iam_policy" "my_policy" {
count = var.policy != "" ? 1 : 0
name = var.name != "" ? var.name : null
policy = var.policy
}
我想动态设置 aws 策略。设置变量以调用 aws_iam_policy
资源。变量文件为
variables.tf
variable "name" {
default = ""
type = string
}
variable "policy" {
default = ""
type = string
}
在main.tf
resource "aws_iam_policy" "my_policy" {
name = var.name
policy = var.policy
}
当运行tflint
名称变量得到:
Error: name must be 1 characters or higher (aws_iam_policy_invalid_name)
Error: "" does not match valid pattern ^[\w+=,.@-]+$ (aws_iam_policy_invalid_name)
策略变量得到:
Error: policy must be 1 characters or higher (aws_iam_policy_invalid_policy)
Error: "" does not match valid pattern ^[\x{0009}\x{000A}\x{000D}\x{0020}-\x{00FF}]+$ (aws_iam_policy_invalid_policy)
默认不设置policy就不能设置为""字符串吗?
托管策略名称不能为空 字符串。 least 1 character 需要遵循 [\w+=,.@-]+
模式。
但是为了自动生成名字如果你有空字符串,你可以试试下面的方法:
resource "aws_iam_policy" "my_policy" {
count = var.policy != "" ? 1 : 0
name = var.name != "" ? var.name : null
policy = var.policy
}