地形显示返回 4 个 JSON 对象


为了使

terraform CLI 仅返回一个描述状态的json对象而不是 4 个json对象,必须在下面更改哪些特定语法?

我们当前运行的命令是:

terraform show --json  

我们从上述命令得到的结果包括 4 个json对象,如下所示:

2021-11-24T16:32:19.181-0800 [INFO]  Terraform version: 1.0.8
2021-11-24T16:32:19.181-0800 [INFO]  Go runtime version: go1.16.4
2021-11-24T16:32:19.181-0800 [INFO]  CLI args: []string{"terraform", "show", "--json"}
2021-11-24T16:32:19.193-0800 [INFO]  CLI command args: []string{"show", "--json"}
GET /containerName/my.tfstate HTTP/1.1
Host: myStorageAccountName.blob.core.windows.net
User-Agent: Terraform/1.0.8
X-Ms-Date: Thu, 25 Nov 2021 00:32:19 GMT
X-Ms-Version: 2018-11-09
Accept-Encoding: gzip
2021-11-24T16:32:20.752-0800 [DEBUG] Azure Backend Response for https://myStorageAccountName.blob.core.windows.net/containerName/my.tfstate:
HTTP/1.1 200 OK
Content-Length: 22852
Accept-Ranges: bytes
Content-Md5: someHashCode==
Content-Type: application/json
Date: Thu, 25 Nov 2021 00:32:19 GMT
Etag: "someHexTag"
Last-Modified: Tue, 23 Nov 2021 23:11:57 GMT
Server: Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0
X-Ms-Blob-Type: BlockBlob
X-Ms-Creation-Time: Tue, 23 Nov 2021 23:02:50 GMT
X-Ms-Lease-State: available
X-Ms-Lease-Status: unlocked
X-Ms-Request-Id: another-request-id
X-Ms-Server-Encrypted: true
X-Ms-Version: 2018-11-09
{
"version": 4,
"terraform_version": "1.0.8",
"serial": 1,
"lineage": "...",
"outputs": { ... },
"resources": [ ... ]
}
2021-11-24T16:32:20.754-0800 [TRACE] backend/local: requesting state lock for workspace "default"
2021-11-24T16:32:20.754-0800 [TRACE] backend/local: reading remote state for workspace "default"
2021-11-24T16:32:20.754-0800 [DEBUG] Azure Backend Request:
GET /containerName/my.tfstate HTTP/1.1
Host: myStorageAccountName.blob.core.windows.net
User-Agent: Terraform/1.0.8
X-Ms-Date: Thu, 25 Nov 2021 00:32:20 GMT
X-Ms-Version: 2018-11-09
Accept-Encoding: gzip
2021-11-24T16:32:20.910-0800 [DEBUG] Azure Backend Response for https://myStorageAccountName.blob.core.windows.net/containerName/my.tfstate:
HTTP/1.1 200 OK
Content-Length: 22852
Accept-Ranges: bytes
Content-Md5: someHashCode==
Content-Type: application/json
Date: Thu, 25 Nov 2021 00:32:19 GMT
Etag: "someHexTag"
Last-Modified: Tue, 23 Nov 2021 23:11:57 GMT
Server: Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0
X-Ms-Blob-Type: BlockBlob
X-Ms-Creation-Time: Tue, 23 Nov 2021 23:02:50 GMT
X-Ms-Lease-State: available
X-Ms-Lease-Status: unlocked
X-Ms-Request-Id: some-request-id
X-Ms-Server-Encrypted: true
X-Ms-Version: 2018-11-09
{
"version": 4,
"terraform_version": "1.0.8",
"serial": 1,
"lineage": "...",
"outputs": { ... },
"resources": [ ... ]
}
2021-11-24T16:32:20.925-0800 [INFO]  provider: configuring client automatic mTLS
2021-11-24T16:32:21.018-0800 [INFO]  provider.terraform-provider-azuread_v2.6.0_x5.exe: 2021/11/24 16:32:21 [DEBUG] Registering Resources for "Applications"..: timestamp=2021-11-24T16:32:21.017-0800
2021-11-24T16:32:21.018-0800 [INFO]  provider.terraform-provider-azuread_v2.6.0_x5.exe: 2021/11/24 16:32:21 [DEBUG] Registering Data Sources for "Applications"..: timestamp=2021-11-24T16:32:21.018-0800
2021-11-24T16:32:21.018-0800 [INFO]  provider.terraform-provider-azuread_v2.6.0_x5.exe: 2021/11/24 16:32:21 [DEBUG] Registering Resources for "App Role Assignments"..: timestamp=2021-11-24T16:32:21.018-0800
2021-11-24T16:32:21.018-0800 [INFO]  provider.terraform-provider-azuread_v2.6.0_x5.exe: 2021/11/24 16:32:21 [DEBUG] Registering Data Sources for "App Role Assignments"..: timestamp=2021-11-24T16:32:21.018-0800
2021-11-24T16:32:21.018-0800 [INFO]  provider.terraform-provider-azuread_v2.6.0_x5.exe: 2021/11/24 16:32:21 [DEBUG] Registering Resources for "ConditionalAccess"..: timestamp=2021-11-24T16:32:21.018-0800
2021-11-24T16:32:21.018-0800 [INFO]  provider.terraform-provider-azuread_v2.6.0_x5.exe: 2021/11/24 16:32:21 [DEBUG] Registering Data Sources for "ConditionalAccess"..: timestamp=2021-11-24T16:32:21.018-0800
2021-11-24T16:32:21.018-0800 [INFO]  provider.terraform-provider-azuread_v2.6.0_x5.exe: 2021/11/24 16:32:21 [DEBUG] Registering Resources for "Directory Roles"..: timestamp=2021-11-24T16:32:21.018-0800
2021-11-24T16:32:21.018-0800 [INFO]  provider.terraform-provider-azuread_v2.6.0_x5.exe: 2021/11/24 16:32:21 [DEBUG] Registering Data Sources for "Directory Roles"..: timestamp=2021-11-24T16:32:21.018-0800
2021-11-24T16:32:21.018-0800 [INFO]  provider.terraform-provider-azuread_v2.6.0_x5.exe: 2021/11/24 16:32:21 [DEBUG] Registering Resources for "Domains"..: timestamp=2021-11-24T16:32:21.018-0800
2021-11-24T16:32:21.018-0800 [INFO]  provider.terraform-provider-azuread_v2.6.0_x5.exe: 2021/11/24 16:32:21 [DEBUG] Registering Data Sources for "Domains"..: timestamp=2021-11-24T16:32:21.018-0800
2021-11-24T16:32:21.018-0800 [INFO]  provider.terraform-provider-azuread_v2.6.0_x5.exe: 2021/11/24 16:32:21 [DEBUG] Registering Resources for "Groups"..: timestamp=2021-11-24T16:32:21.018-0800
2021-11-24T16:32:21.018-0800 [INFO]  provider.terraform-provider-azuread_v2.6.0_x5.exe: 2021/11/24 16:32:21 [DEBUG] Registering Data Sources for "Groups"..: timestamp=2021-11-24T16:32:21.018-0800
2021-11-24T16:32:21.018-0800 [INFO]  provider.terraform-provider-azuread_v2.6.0_x5.exe: 2021/11/24 16:32:21 [DEBUG] Registering Resources for "Invitations"..: timestamp=2021-11-24T16:32:21.018-0800
2021-11-24T16:32:21.018-0800 [INFO]  provider.terraform-provider-azuread_v2.6.0_x5.exe: 2021/11/24 16:32:21 [DEBUG] Registering Data Sources for "Invitations"..: timestamp=2021-11-24T16:32:21.018-0800
2021-11-24T16:32:21.018-0800 [INFO]  provider.terraform-provider-azuread_v2.6.0_x5.exe: 2021/11/24 16:32:21 [DEBUG] Registering Resources for "Service Principals"..: timestamp=2021-11-24T16:32:21.018-0800
2021-11-24T16:32:21.018-0800 [INFO]  provider.terraform-provider-azuread_v2.6.0_x5.exe: 2021/11/24 16:32:21 [DEBUG] Registering Data Sources for "Service Principals"..: timestamp=2021-11-24T16:32:21.018-0800
2021-11-24T16:32:21.019-0800 [INFO]  provider.terraform-provider-azuread_v2.6.0_x5.exe: 2021/11/24 16:32:21 [DEBUG] Registering Resources for "Users"..: timestamp=2021-11-24T16:32:21.018-0800
2021-11-24T16:32:21.019-0800 [INFO]  provider.terraform-provider-azuread_v2.6.0_x5.exe: 2021/11/24 16:32:21 [DEBUG] Registering Data Sources for "Users"..: timestamp=2021-11-24T16:32:21.018-0800
2021-11-24T16:32:21.021-0800 [INFO]  provider.terraform-provider-azuread_v2.6.0_x5.exe: configuring server automatic mTLS: timestamp=2021-11-24T16:32:21.020-0800
2021-11-24T16:32:21.162-0800 [INFO]  provider: configuring client automatic mTLS
2021-11-24T16:32:21.332-0800 [INFO]  provider.terraform-provider-azurerm_v2.79.1_x5.exe: configuring server automatic mTLS: timestamp=2021-11-24T16:32:21.332-0800
2021-11-24T16:32:21.579-0800 [INFO]  provider: configuring client automatic mTLS
2021-11-24T16:32:21.657-0800 [INFO]  provider.terraform-provider-http_v2.1.0_x5.exe: configuring server automatic mTLS: timestamp=2021-11-24T16:32:21.656-0800
GET /containerName/my.tfstate HTTP/1.1
Host: myStorageAccountName.blob.core.windows.net
User-Agent: Terraform/1.0.8
X-Ms-Date: Thu, 25 Nov 2021 00:32:21 GMT
X-Ms-Version: 2018-11-09
Accept-Encoding: gzip
2021-11-24T16:32:22.288-0800 [DEBUG] Azure Backend Response for https://myStorageAccountName.blob.core.windows.net/containerName/my.tfstate:
HTTP/1.1 200 OK
Content-Length: 22852
Accept-Ranges: bytes
Content-Md5: someHashCode==
Content-Type: application/json
Date: Thu, 25 Nov 2021 00:32:21 GMT
Etag: "someHexTag"
Last-Modified: Tue, 23 Nov 2021 23:11:57 GMT
Server: Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0
X-Ms-Blob-Type: BlockBlob
X-Ms-Creation-Time: Tue, 23 Nov 2021 23:02:50 GMT
X-Ms-Lease-State: available
X-Ms-Lease-Status: unlocked
X-Ms-Request-Id: a-third-request-id
X-Ms-Server-Encrypted: true
X-Ms-Version: 2018-11-09
{
"version": 4,
"terraform_version": "1.0.8",
"serial": 1,
"lineage": "...",
"outputs": { ... },
"resources": [ ... ]
}
2021-11-24T16:32:22.290-0800 [DEBUG] Azure Backend Request:
GET /containerName/my.tfstate HTTP/1.1
Host: myStorageAccountName.blob.core.windows.net
User-Agent: Terraform/1.0.8
X-Ms-Date: Thu, 25 Nov 2021 00:32:22 GMT
X-Ms-Version: 2018-11-09
Accept-Encoding: gzip
2021-11-24T16:32:22.462-0800 [DEBUG] Azure Backend Response for https://myStorageAccountName.blob.core.windows.net/containerName/my.tfstate:
HTTP/1.1 200 OK
Content-Length: 22852
Accept-Ranges: bytes
Content-Md5: someHashCode==
Content-Type: application/json
Date: Thu, 25 Nov 2021 00:32:21 GMT
Etag: "someHexTag"
Last-Modified: Tue, 23 Nov 2021 23:11:57 GMT
Server: Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0
X-Ms-Blob-Type: BlockBlob
X-Ms-Creation-Time: Tue, 23 Nov 2021 23:02:50 GMT
X-Ms-Lease-State: available
X-Ms-Lease-Status: unlocked
X-Ms-Request-Id: a-4th-request-id
X-Ms-Server-Encrypted: true
X-Ms-Version: 2018-11-09
{
"version": 4,
"terraform_version": "1.0.8",
"serial": 1,
"lineage": "...",
"outputs": { ... },
"resources": [ ... ]
}  

为了接收一个json对象作为响应,总结了该单个json对象中的状态,我们具体需要更改什么?

这不是标准的terraform show --json输出。我怀疑您将TF_LOG设置为DEBUGINFO.因此,您必须将该 env 变量更改为正常值。例如,如果您在 Linux 上以bash运行它,您可以在一行中更改它,如下所示:

TF_LOG=ERROR terraform show --json

或者,在像 Python 这样的与操作系统无关的语言中,您可以使用两个不同的行首先使用os.environ在一行上设置TF_LOG=ERROR,然后在第二行上运行 shell 命令以使用subprocess.popen之类的东西运行terraform show --json。 当然要记住之后将TF_LOG重新设置为用户默认的任何内容。

最新更新