Amazon ec2 如何通过terraform获取现有ec2实例的实例id/arn?
我正在使用Terraform进行一些基础设施部署:Amazon ec2 如何通过terraform获取现有ec2实例的实例id/arn?,amazon-ec2,terraform,Amazon Ec2,Terraform,我正在使用Terraform进行一些基础设施部署: data "aws_instance" "ec2_my_admin_instance" { filter { name = "tag:TfServerType" values = ["myAdmin"] } } output "theId" { value = "${data.aws_instance.ec2_my_admin_instance.instance_id}" } output "type" {
data "aws_instance" "ec2_my_admin_instance" {
filter {
name = "tag:TfServerType"
values = ["myAdmin"]
}
}
output "theId" {
value = "${data.aws_instance.ec2_my_admin_instance.instance_id}"
}
output "type" {
value = "${data.aws_instance.ec2_my_admin_instance.instance_type}"
}
output "placement_group" {
value = "${data.aws_instance.ec2_my_admin_instance.placement_group}"
}
output "availability_zone" {
value = "${data.aws_instance.ec2_my_admin_instance.availability_zone}"
}
output "arn" {
value = "${data.aws_instance.ec2_my_admin_instance.arn}"
}
但是,最重要的值(id、arn)未显示:
Outputs:
availability_zone = ap-southeast-2b
type = m4.large
我遗漏了什么吗?的id。属性为
output "theId" {
value = "${data.aws_instance.ec2_my_admin_instance.id}"
}
根据这些文档,数据源似乎没有arn属性 @jdurkin回答了这个问题,但没有告诉你如何得到它,这正是你想要的 terraform文档并不总是使用所有属性更新(我称它们为
可用输出变量
)。在您的情况下,无法从联机文档中找到要使用的正确属性。猜测是可能的,因为jdurkin的答案,但它并不总是正确的
所以你需要自己去发现它们,然后找到合适的
(您可以使用喜爱的区域更改区域)
terraform应用
更改(它是数据源,不会创建任何资源,因此您可以安全运行)
成功运行上述命令后,应获得一个本地文件terraform.tfstate
对文件进行分类,在属性
的一部分中,您应该获得所有属性以及属性名称和值,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": []
}
]
我很高兴能将ARN添加为属性,因为我来这里是想看看是否有其他人遇到过同样的问题!ARN从今天的terraform aws提供程序版本开始提供。这可能需要更新。
terraform init
terraform plan
terraform apply
"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": []
}
]