如何使用 terraform 读取 tfstate 中的第二个块?
how to read second block in tfstate with terraform?
我在 s3 上有一个远程状态,我不知道如何访问 tfstate json 文件的第二个块。
我的 tfstate 看起来像这样:
{
"version": 3,
"terraform_version": "0.11.7",
"serial": 1,
"lineage": "79b7840d-5998-1ea8-2b63-ca49c289ec13",
"modules": [
{
"path": [
"root"
],
"outputs": {},
"resources": {},
"depends_on": []
},
{
"path": [
"root",
"vpc"
],
"outputs": {
"database_subnet_group": {
all my resources are listed here...
}
我可以通过以下代码访问它:
data "terraform_remote_state" "network" {
backend = "s3"
config = {
bucket = "bakka-tfstate"
key = "global/network.tfstate"
region = "eu-west-1"
}
}
但输出
output "tfstate" {
value = data.terraform_remote_state.network.outputs
}
什么都没显示
Apply complete! Resources: 0 added, 0 changed, 0 destroyed.
Outputs:
tfstate = {}
我相信这是因为这个 tfstate 中有两个 json 块,terraform 读取第一个是空的,所以我想问如何读取第二个?
只有根输出可以通过远程状态访问。此限制为 documented here。它还提出了一个解决方案 - 在生成您所指状态的项目中,您需要将输出线程化到根输出。
我在 s3 上有一个远程状态,我不知道如何访问 tfstate json 文件的第二个块。
我的 tfstate 看起来像这样:
{
"version": 3,
"terraform_version": "0.11.7",
"serial": 1,
"lineage": "79b7840d-5998-1ea8-2b63-ca49c289ec13",
"modules": [
{
"path": [
"root"
],
"outputs": {},
"resources": {},
"depends_on": []
},
{
"path": [
"root",
"vpc"
],
"outputs": {
"database_subnet_group": {
all my resources are listed here...
}
我可以通过以下代码访问它:
data "terraform_remote_state" "network" {
backend = "s3"
config = {
bucket = "bakka-tfstate"
key = "global/network.tfstate"
region = "eu-west-1"
}
}
但输出
output "tfstate" {
value = data.terraform_remote_state.network.outputs
}
什么都没显示
Apply complete! Resources: 0 added, 0 changed, 0 destroyed.
Outputs:
tfstate = {}
我相信这是因为这个 tfstate 中有两个 json 块,terraform 读取第一个是空的,所以我想问如何读取第二个?
只有根输出可以通过远程状态访问。此限制为 documented here。它还提出了一个解决方案 - 在生成您所指状态的项目中,您需要将输出线程化到根输出。