terraform数据源远程状态不';行不通
我有以下地形:terraform数据源远程状态不';行不通,terraform,Terraform,我有以下地形: data "terraform_remote_state" "stack" { backend = "local" config { path = "terraform.tfstate" } } output "diditwork" { value = "${data.terraform_remote_state.stack.aws_autoscaling_group.main.id}" } 我在同一文件夹中有一个terraform.tfstate文件
data "terraform_remote_state" "stack" {
backend = "local"
config {
path = "terraform.tfstate"
}
}
output "diditwork" {
value = "${data.terraform_remote_state.stack.aws_autoscaling_group.main.id}"
}
我在同一文件夹中有一个terraform.tfstate文件:
{
"version": 3,
"terraform_version": "0.9.3",
"serial": 14,
"lineage": "dc16a61f-72dd-435b-ba3f-5e36e14aace2",
"modules": [
{
"path": [
"root"
],
"outputs": {},
"resources": {
"aws_autoscaling_group.main": {
"type": "aws_autoscaling_group",
"depends_on": [
"aws_launch_configuration.lc"
],
"primary": {
"id": "djin-sample-asg-stag",
"attributes": {
"arn": "arn:aws:autoscaling:us-east-1:174120285419:autoScalingGroup:04c470fa-45f8-4711-aa31-b3ede40d6…
但是由于某种原因,当我执行地形应用时,我的输出不会为自动缩放组id打印任何内容。应用是成功的,它甚至没有抛出任何错误我遗漏了什么?这是错误的
value = "${data.terraform_remote_state.stack.aws_autoscaling_group.main.id}"
您只能在数据中获取根级别的输出
只有来自远程状态的根级别输出才可访问。
无法访问状态内模块的输出。如果你愿意
要通过远程状态访问模块输出,您必须
从输出到根输出
因此,您首先需要输出自动缩放id,例如:
output "asg_id" {
value = "${aws_autoscaling_group.main.id}"
}
然后在数据获取中,你会
output "diditwork" {
value = "${data.terraform_remote_state.stack.asg_id}"
}
另外,对于支持锁定的后端(或者对于您真正想要使用锁定的场景),在同一位置上执行远程数据源通常是个坏主意。我假设您从同一位置进行远程数据源只是为了实验,因此不会造成任何伤害,但在实际使用中,您应该只使用上面输出中使用的值。是的,仅用于实验。计算了根输出,但看到您也回答了!我现在还有一个问题,那就是可以在一个模块中使用这个数据源,然后使用该模块输出diditwork?似乎对我不起作用。我再问一个问题。