@jdurkin 回答了这个问题,但没有告诉你如何得到它,这就是你所要求的。
terraform 文档并不总是更新所有属性(我称它们为available output variables
)。对于您的情况,您无法从在线文档中找到要使用的正确属性。猜测可能是 jdurkin 的答案,但并不总是正确的。
因此,您需要自己找出并找到合适的。
(您可以将地区更改为您喜欢的地区)
provider "aws" {
region = "ap-southeast-2"
}
data "aws_instance" "ec2_my_admin_instance" {
filter {
name = "tag:TfServerType"
values = ["myAdmin"]
}
}
terraform apply
改变 (它是数据源,不会创建任何资源,所以你可以安全运行)
terraform init
terraform plan
terraform apply
成功运行上述命令后,您应该得到一个本地文件terraform.tfstate
对文件进行 Cat 扫描,部分内容为attributes
,你应该得到所有属性具有属性名称和值,id
在属性列表中,但没有属性arn
您现在可以确认这一点。您应该有信心选择正确的一个并输入输出代码。
"modules": [
{
"path": [
"root"
],
"outputs": {},
"resources": {
"data.aws_instance.ec2_my_admin_instance": {
"type": "aws_instance",
"depends_on": [],
"primary": {
"id": "i-xxxx",
"attributes": {
"ami": "ami-xxxx",
....
"id": "i-xxxx",
"instance_state": "running",
....
},
"meta": {},
"tainted": false
},
"deposed": [],
"provider": ""
}
},
"depends_on": []
}
]