簡體   English   中英

如何使用 terraform 將默認值設置為 aws_iam_policy?

[英]How to set default value to aws_iam_policy with terraform?

我想動態設置 aws 政策。 設置變量以調用aws_iam_policy資源。 變量文件為

變量.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

名稱 var 得到:

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)

如果默認不設置策略,它不能設置為“”字符串嗎?

托管策略名稱不能為空字符串。 [\w+=,.@-]+模式后至少需要 1 個字符

但是如果您有空字符串,要自動生成名稱,您可以嘗試以下操作:

resource "aws_iam_policy" "my_policy" {
  count  = var.policy != "" ? 1 : 0 
  name   = var.name != "" ? var.name : null
  policy = var.policy
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM