Files
opentf/website/docs/cli/commands/state/show.mdx
Christian Mesh 3b3822d770 Improve documentation around static evaluation (#1843)
Signed-off-by: Christian Mesh <christianmesh1@gmail.com>
Signed-off-by: ollevche <ollevche@gmail.com>
Co-authored-by: ollevche <ollevche@gmail.com>
2024-07-23 09:31:50 -04:00

113 lines
4.0 KiB
Plaintext

---
description: >-
The `tofu state show` command is used to show the attributes of a single
resource in the OpenTofu state.
---
# Command: state show
The `tofu state show` command is used to show the attributes of a
single resource in the
[OpenTofu state](../../../language/state/index.mdx).
## Usage
Usage: `tofu state show [options] ADDRESS`
The command will show the attributes of a single resource in the
state file that matches the given address.
This command requires an address that points to a single resource in the
state. Addresses are
in [resource addressing format](../../../cli/state/resource-addressing.mdx).
:::note
Use of variables in [module sources](../../../language/modules/sources.mdx#support-for-variable-and-local-evaluation),
[backend configuration](../../../language/settings/backends/configuration.mdx#variables-and-locals),
or [encryption block](../../../language/state/encryption.mdx#configuration)
requires [assigning values to root module variables](../../../language/values/variables.mdx#assigning-values-to-root-module-variables)
when running `tofu show`.
:::
The command-line flags are all optional. The following flags are available:
* `-state=path` - Path to the state file. Defaults to "terraform.tfstate".
Ignored when [remote state](../../../language/state/remote.mdx) is used.
* `-var 'NAME=VALUE'` - Sets a value for a single
[input variable](../../../language/values/variables.mdx) declared in the
root module of the configuration. Use this option multiple times to set
more than one variable. Refer to
[Input Variables on the Command Line](../plan.mdx#input-variables-on-the-command-line) for more information.
* `-var-file=FILENAME` - Sets values for potentially many
[input variables](../../../language/values/variables.mdx) declared in the
root module of the configuration, using definitions from a
["tfvars" file](../../../language/values/variables.mdx#variable-definitions-tfvars-files).
Use this option multiple times to include values from more than one file.
There are several other ways to set values for input variables in the root
module, aside from the `-var` and `-var-file` options. Refer to
[Assigning Values to Root Module Variables](../../../language/values/variables.mdx#assigning-values-to-root-module-variables) for more information.
The output of `tofu state show` is intended for human consumption, not
programmatic consumption. To extract state data for use in other software, use
[`tofu show -json`](../../../cli/commands/show.mdx#json-output) and decode the result
using the documented structure.
## Example: Show a Resource
The example below shows a `packet_device` resource named `worker`:
```
$ tofu state show 'packet_device.worker'
# packet_device.worker:
resource "packet_device" "worker" {
billing_cycle = "hourly"
created = "2015-12-17T00:06:56Z"
facility = "ewr1"
hostname = "prod-xyz01"
id = "6015bg2b-b8c4-4925-aad2-f0671d5d3b13"
locked = false
}
```
## Example: Show a Module Resource
The example below shows a `packet_device` resource named `worker` inside a module named `foo`:
```shell
$ tofu state show 'module.foo.packet_device.worker'
```
## Example: Show a Resource configured with count
The example below shows the first instance of a `packet_device` resource named `worker` configured with
[`count`](../../../language/meta-arguments/count.mdx):
```shell
$ tofu state show 'packet_device.worker[0]'
```
## Example: Show a Resource configured with for_each
The following example shows the `"example"` instance of a `packet_device` resource named `worker` configured with the [`for_each`](../../../language/meta-arguments/for_each.mdx) meta-argument. You must place the resource name in single quotes when it contains special characters like double quotes.
Linux, Mac OS, and UNIX:
```shell
$ tofu state show 'packet_device.worker["example"]'
```
PowerShell:
```shell
$ tofu state show 'packet_device.worker[\"example\"]'
```
Windows `cmd.exe`:
```shell
$ tofu state show packet_device.worker[\"example\"]
```