1.7.18.1.1. list
terraform state list
命令可以列出状态文件中记录的资源对象。
1.7.18.1.1.1. 用法
terraform state list [options] [address...]
该命令会根据 address 列出状态文件中相关资源的信息(如果给定了 address 的话)。如果没有给定 address,那么所有资源都会被列出。
列出的资源根据模块深度以及字典序进行排序,这意味着根模块的资源在前,越深的子模块定义的资源越在后。
对于复杂的基础设施,状态文件可能包含成千上万到的资源对象。可以指定一个或多个资源地址来进行过滤。
可以使用的可选参数有:
-state=path
:指定使用的状态文件地址。默认为terraform.tfstate
。使用远程 Backend 时该参数设置无效-id=id
:要显示的资源 ID
1.7.18.1.1.2. 例子:列出所有资源
$ terraform state list
aws_instance.foo
aws_instance.bar[0]
aws_instance.bar[1]
module.elb.aws_elb.main
1.7.18.1.1.3. 例子:根据资源地址过滤
$ terraform state list aws_instance.bar
aws_instance.bar[0]
aws_instance.bar[1]
1.7.18.1.1.4. 例子:根据模块过滤
该例子列出给定模块及其子模块的所有资源:
$ terraform state list module.elb
module.elb.aws_elb.main
module.elb.module.secgroups.aws_security_group.sg
1.7.18.1.1.5. 例子:根据ID过滤
此示例将仅列出在命令行中指定 ID 的资源,查找特定资源在代码中的位置时非常有用:
$ terraform state list -id=sg-1234abcd
module.elb.aws_security_group.sg