Terraform 如何列出地形资源及其ID

Terraform 如何列出地形资源及其ID,terraform,Terraform,我想将一些地形资源从一个存储库移动到另一个存储库。我认为最简单的方法是在一个存储库中导入terraform,在另一个存储库中导入terraform rm 使用terraformstate list我可以得到一个资源列表,但是没有它们的ID。我想我可以将该输出与terraformstate show结合起来,但是速度非常慢,我必须从HCL解析出ID。不幸的是,没有JSON输出 通过terraformshow-json我可以获得json格式的整个状态,但是可以有大量的模块嵌套,因此解析也不会很简单

我想将一些地形资源从一个存储库移动到另一个存储库。我认为最简单的方法是在一个存储库中导入
terraform
,在另一个存储库中导入
terraform rm

使用
terraformstate list
我可以得到一个资源列表,但是没有它们的ID。我想我可以将该输出与
terraformstate show
结合起来,但是速度非常慢,我必须从HCL解析出ID。不幸的是,没有JSON输出

通过
terraformshow-json
我可以获得json格式的整个状态,但是可以有大量的模块嵌套,因此解析也不会很简单

还有其他选择吗

编辑1:

terraformshow-json
对于我正在处理的相对较小的存储库,我有2000行代码(太多无法确定格式),从以下内容开始:

{
    "format_version": "0.1",
    "terraform_version": "0.14.9",
    "values": {
        "root_module": {
            "child_modules": [
                {
                    "address": "module.cloudtrail",
                    "child_modules": [
                        {
                            "address": "module.cloudtrail.module.cloudtrail_bucket",
                            "resources": [
                                {


我认为至少还有一层嵌套
子模块
。我认为资源可以在各个层面上使用。从中可以得到列表,但我不认为这是微不足道的。

我刚刚意识到,每次我做
地形规划时,我都能得到我想要的。但是我不想要这个计划,所以我可以做
terraformrefresh | sed s'|:刷新状态\[id=||'| sed s'| \]$| |'
。这有点慢,但是我得到了一个资源列表和它们的ID


我甚至可以添加
sed s'| ^ | terraform import |'>import.sh
并导入所有资源(或编辑后的部分资源)使用
bash import.sh

可以展示一个来自
terraform show-json
的输出示例,了解为什么它不繁琐吗?可以使用
jq
处理json并获得所需的值。我从
jq
开始,然后我发现我没有一个简单的列表,但是所有这些嵌套,你必须提供你尝试过的json和jq命令的完整示例,以及你得到了什么和你想要得到什么。