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

results matching ""

    No results matching ""