簡體   English   中英

Terraform - 所需字符串列表(AWS 中的 cidr_blocks)

[英]Terraform - list of string required (cidr_blocks in AWS)

在 Terraform 中,我在輸入將存儲在變量中的列表時遇到問題。

在執行terraform plan ,我被要求提供 cidr_blocks (它應該是一個字符串列表)。

我試圖輸入幾個可能代表字符串列表但總是出錯的“表單”。 例子:

第一次嘗試:

$terraform plan
...
var.monitoring_access_ips_mysystem
  Enter a value: "10.180.1.0/24", "10.180.2.0/25", "10.180.3.0/23"

第二次嘗試:

var.monitoring_access_ips_mysystem
  Enter a value: ["10.180.1.0/24", "10.180.2.0/25", "10.180.3.0/23"]

第三次嘗試:

var.monitoring_access_ips_mysystem
  Enter a value: '["10.180.1.0/24", "10.180.2.0/25", "10.180.3.0/23"]'

第四次嘗試:

var.monitoring_access_ips_mysystem
  Enter a value: "["10.180.1.0/24", "10.180.2.0/25", "10.180.3.0/23"]"

第 5 次嘗試:

var.monitoring_access_ips_mysystem
  Enter a value: "10.180.1.0/24"

對於任何嘗試,錯誤總是相同的:

Error: Incorrect attribute value type

  on ecs/security_group.tf line 10, in resource "aws_security_group" "ecs-cluster-sg":
  10:     cidr_blocks = var.monitoring_access_ips_mysystem

Inappropriate value for attribute "cidr_blocks": list of string required.

ecs/security_group.tf文件看起來像這樣ecs/security_group.tf:

resource "aws_security_group" "ecs-cluster-sg" {
  name   = "${var.app_name}-cluster-sg"
  vpc_id = var.vpc_id

  ingress {
    description = "Ingress from monitoring VPC on custom port"
    from_port   = 80
    to_port     = 80
    protocol    = "tcp"
    cidr_blocks = var.monitoring_access_ips_mysystem
  }
  ...

我可以輸入/傳遞 IP 的有效格式是什么,以便它被接受為“字符串列表”?

UI 輸入(在未定義某些變量的情況下運行 Terraform 命令后提示您看到的內容) 僅支持字符串值,因此如果您想傳遞不是字符串的內容,則需要以非交互方式執行此操作。 這可以是變量文檔中列出的任何選項之一。 這些是:

  • 在 Terraform Cloud 工作區中。
  • 單獨使用 -var 命令行選項。
  • 在變量定義 (.tfvars) 文件中,在命令行中指定或自動加載。
  • 作為環境變量。

在您的情況下,您可以使用以下命令運行計划:

terraform plan -var='monitoring_access_ips_mysystem=["10.180.1.0/24", "10.180.2.0/25", "10.180.3.0/23"]'

除非這在每次運行 Terraform 時都可能發生變化,否則通常應該將其放入terraform.tfvars文件中,如下所示:

monitoring_access_ips_mysystem = [
  "10.180.1.0/24",
  "10.180.2.0/25",
  "10.180.3.0/23",
]

暫無
暫無

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

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