mirror of
https://github.com/opentffoundation/opentf.git
synced 2025-12-25 01:00:16 -05:00
migrate docs to mdx
This commit is contained in:
123
website/docs/cli/commands/console.mdx
Normal file
123
website/docs/cli/commands/console.mdx
Normal file
@@ -0,0 +1,123 @@
|
||||
---
|
||||
page_title: 'Command: console'
|
||||
description: >-
|
||||
The terraform console command provides an interactive console for evaluating
|
||||
expressions.
|
||||
---
|
||||
|
||||
# Command: console
|
||||
|
||||
The `terraform console` command provides an interactive console for
|
||||
evaluating [expressions](/language/expressions/).
|
||||
|
||||
## Usage
|
||||
|
||||
Usage: `terraform console [options]`
|
||||
|
||||
This command provides an interactive command-line console for evaluating and
|
||||
experimenting with [expressions](/language/expressions/).
|
||||
This is useful for testing interpolations before using them in configurations,
|
||||
and for interacting with any values currently saved in
|
||||
[state](/language/state/).
|
||||
|
||||
If the current state is empty or has not yet been created, the console can be
|
||||
used to experiment with the expression syntax and
|
||||
[built-in functions](/language/functions/).
|
||||
|
||||
You can close the console with the `exit` command or by pressing Control-C
|
||||
or Control-D.
|
||||
|
||||
For configurations using
|
||||
[the `local` backend](/language/settings/backends/local) only,
|
||||
`terraform console` accepts the legacy command line option
|
||||
[`-state`](/language/settings/backends/local#command-line-arguments).
|
||||
|
||||
## Scripting
|
||||
|
||||
The `terraform console` command can be used in non-interactive scripts
|
||||
by piping newline-separated commands to it. Only the output from the
|
||||
final command is printed unless an error occurs earlier.
|
||||
|
||||
For example:
|
||||
|
||||
```shell
|
||||
$ echo 'split(",", "foo,bar,baz")' | terraform console
|
||||
tolist([
|
||||
"foo",
|
||||
"bar",
|
||||
"baz",
|
||||
])
|
||||
```
|
||||
|
||||
## Remote State
|
||||
|
||||
If [remote state](/language/state/remote) is used by the current backend,
|
||||
Terraform will read the state for the current workspace from the backend
|
||||
before evaluating any expressions.
|
||||
|
||||
## Examples
|
||||
|
||||
The `terraform console` command will read the Terraform configuration in the
|
||||
current working directory and the Terraform state file from the configured
|
||||
backend so that interpolations can be tested against both the values in the
|
||||
configuration and the state file.
|
||||
|
||||
With the following `main.tf`:
|
||||
|
||||
```hcl
|
||||
variable "apps" {
|
||||
type = map(any)
|
||||
default = {
|
||||
"foo" = {
|
||||
"region" = "us-east-1",
|
||||
},
|
||||
"bar" = {
|
||||
"region" = "eu-west-1",
|
||||
},
|
||||
"baz" = {
|
||||
"region" = "ap-south-1",
|
||||
},
|
||||
}
|
||||
}
|
||||
|
||||
resource "random_pet" "example" {
|
||||
for_each = var.apps
|
||||
}
|
||||
```
|
||||
|
||||
Executing `terraform console` will drop you into an interactive shell where you
|
||||
can test interpolations to:
|
||||
|
||||
Print a value from a map:
|
||||
|
||||
```
|
||||
> var.apps.foo
|
||||
{
|
||||
"region" = "us-east-1"
|
||||
}
|
||||
```
|
||||
|
||||
Filter a map based on a specific value:
|
||||
|
||||
```
|
||||
> { for key, value in var.apps : key => value if value.region == "us-east-1" }
|
||||
{
|
||||
"foo" = {
|
||||
"region" = "us-east-1"
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
Check if certain values may not be known until apply:
|
||||
|
||||
```
|
||||
> random_pet.example
|
||||
(known after apply)
|
||||
```
|
||||
|
||||
Test various functions:
|
||||
|
||||
```
|
||||
> cidrnetmask("172.16.0.0/12")
|
||||
"255.240.0.0"
|
||||
```
|
||||
Reference in New Issue
Block a user