跳至主要内容

命令:state list

tofu state list 命令用于列出 OpenTofu 状态 中的资源。

用法

用法:tofu state list [options] [address...]

该命令将列出状态文件中与给定地址(如果有)匹配的所有资源。如果未提供地址,则列出所有资源。

列出的资源按模块深度顺序然后按字母顺序排序。这意味着您直接配置中的资源首先列出,而嵌套在模块中的资源最后列出。

对于复杂的基础设施,状态可能包含数千个资源。要过滤这些资源,请向命令提供一个或多个模式。模式采用 资源寻址格式

命令行标志都是可选的。以下标志可用

  • -state=path - 状态文件路径。默认为“terraform.tfstate”。使用 远程状态 时将被忽略。

  • -id=id - 要显示的资源的 ID。未设置时将被忽略。

  • -var 'NAME=VALUE' - 为配置根模块中声明的单个 输入变量 设置值。使用此选项多次可设置多个变量。有关更多信息,请参阅 命令行上的输入变量

  • -var-file=FILENAME - 使用来自 “tfvars” 文件 的定义,为配置根模块中声明的可能多个 输入变量 设置值。使用此选项多次可包含来自多个文件的值。

除了 -var-var-file 选项外,还有其他几种方法可以为根模块中的输入变量设置值。有关更多信息,请参阅 为根模块变量赋值

示例:所有资源

此示例将列出所有资源,包括模块

代码块
$ tofu state list
aws_instance.foo
aws_instance.bar[0]
aws_instance.bar[1]
module.elb.aws_elb.main

示例:按资源过滤

此示例将仅列出给定名称的资源

代码块
$ tofu state list aws_instance.bar
aws_instance.bar[0]
aws_instance.bar[1]

示例:按模块过滤

此示例将列出给定模块及其任何子模块中的资源

代码块
$ tofu state list module.elb
module.elb.aws_elb.main
module.elb.module.secgroups.aws_security_group.sg

示例:按 ID 过滤

此示例将仅列出命令行上指定 ID 的资源。这对于查找特定资源在配置中的位置很有用。

代码块
$ tofu state list -id=sg-1234abcd
module.elb.aws_security_group.sg