根据此https://www.terraform.io/docs/configuration/resources.html,您可以拥有resource
name
。例如。
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
。
知道为什么吗?
答案 0 :(得分:1)
只是详细说明上述评论。您正在创建aws_db_instance
资源的实例。检查该资源类型的文档here,没有提及name
属性,因此错误似乎有效,我猜它只是Terraform文档中的一个错误(不知道在哪里你可以报告)。
要为您的数据库提供名称&#34;,您可以在资源定义中使用Name
AWS标记:
resource "aws_db_instance" "my-database" {
...
tags {
"Name" = "My-Database-Name"
}
}
答案 1 :(得分:0)
这不起作用,因为name
不是aws_db_instance资源类型的有效参数。您可以找到此资源here的所有有效参数的列表。
在您关联的documentation中,找到了此段落。
<强>描述强>
资源块创建给定TYPE(第一个参数)和NAME(第二个参数)的资源。类型和名称的组合必须是唯一的。
这是引用整个资源的第二个参数;所以当你有:
resource "aws_db_instance" "timeout_example" {
...
}
&#34;名称&#34;参数是&#34; timeout_example&#34;。