2017-05-26 57 views
1

根據此https://www.terraform.io/docs/configuration/resources.html您可以有resourcename。例如。Terraform>資源>名稱 - 無效或未知密鑰

resource "aws_db_instance" "timeout_example" { 
    allocated_storage = 10 
    engine   = "mysql" 
    engine_version = "5.6.17" 
    instance_class = "db.t1.micro" 
    name    = "mydb" 

    # ... 

    timeouts { 
    create = "60m" 
    delete = "2h" 
    } 
} 

但我的樣本tf文件:

provider "aws" { 
    access_key = "<access key>" 
    secret_key = "<secret key>" 
    region  = "us-east-1" 
} 

resource "aws_instance" "web" { 
    ami   = "ami-0d729a60" 
    instance_type = "t2.micro" 
    subnet_id = "<subnet-id>" 
    name = "web" 
} 

給我* aws_instance.web: : invalid or unknown key: name

任何想法爲什麼?

+1

我沒有在鏈接到的文檔中的metaparameters中看到'name'。 –

+0

正如馬特所言,這不是每個資源上的元參數之一,只是該特定資源的一個參數。如果你想命名一個EC2實例,你需要設置'Name'標籤 – ydaetskcoR

回答

0

只是要詳細說明上面的評論。您正在創建aws_db_instance資源的實例。檢查該資源類型的文檔here,沒有提及name屬性,因此該錯誤似乎有效,我想這只是Terraform文檔中的一個錯誤(不確定可以在哪裏報告)。

爲了讓您的分貝「名稱」,您可以使用AWS Name標籤在你的資源定義:

resource "aws_db_instance" "my-database" { 
    ... 
    tags { 
    "Name" = "My-Database-Name" 
    } 
} 
+0

向https://www.hashicorp.com/contact/general報告評論給hashicorp – volvox

0

這不是工作,因爲name不是aws_db_instance資源類型的有效論據。您可以找到此資源here的所有有效參數的列表。

在您鏈接的documentation中,找到了該段落。

說明

資源塊創建給定類型(第一個參數)和NAME(第二個參數)的一個資源。類型和名稱的組合必須是唯一的。

這是引用整個資源的第二個參數;所以當你有:

resource "aws_db_instance" "timeout_example" { 
    ... 
} 

「名稱」參數是「timeout_example」。

相關問題