【问题标题】:How do I import existing AWS resources into Terraspace?如何将现有 AWS 资源导入 Terraspace?
【发布时间】:2021-07-19 06:15:22
【问题描述】:

使用“terraform import”语法直接从 Terraform 导入资源。但是,terraspace 没有关于此问题的文档。 Their docs 只讲了如何将现有的 Terraform 状态文件导入 Terraspace,方法是将其移动到 S3 并配置后端,以便 Terraspace 可以无缝拾取已经存在的 tfstate 文件。

有谁知道如何将现有基础设施导入 Terraspace?我在 AWS 中有一些现有的基础设施,我想导入并由 Terraspace 管理。

【问题讨论】:

    标签: terraform terraform-provider-aws terraspace


    【解决方案1】:

    您可以在 BUILD_DIR 中使用普通的 Terraform 命令(很可能在 .terraspace-cache///stacks/ 中);即

    TS_ENV=dev terraspace plan discombobulator
    cd .terraspace-cache/us-east-1/dev/stacks/discombobulator
    terraform state list aws_resource.foo
    terraform import aws_resource.foo foo_id
    

    【讨论】:

      【解决方案2】:

      这是你可以用 terraform 做的事情。对于要从​​基础架构导入的每个资源,您需要将一些参数传递给 terraform CLI。

      因此,例如,如果您想将现有的认知池从 AWS 导入到 terraform 状态,您可以使用以下命令:

      terraform import aws_cognito_identity_pool.my_resource cognito_resource_id
      

      而“my_resource”将是 .tf 文件中的 terraform 资源块:

      resource "aws_cognito_user_pool" "my_resource" {}
      

      而 cognito_resource_id 将是您的 aws 控制台中显示的池 ID。

      如果你去文档你会发现一个“导入”块,但不是所有的资源都可以导入,我建议你去那里检查每个资源以仔细检查它是否可以导入。

      https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/cognito_user_pool#import

      我经常使用这个导入命令来逆向工程 stufs,有时直接从 terraform 创建所有内容非常令人困惑,在这种情况下,我尝试在 AWS 控制台上创建东西,然后使用 terraform 导入。

      导入后,您可以使用以下命令检查它附带的所有配置:

      terraform state show module.cognito.aws_cognito_user_pool_client.my_resource
      

      如果你不使用模块,你可以忽略“模块”并使用其余的。

      【讨论】:

        猜你喜欢
        • 2021-04-17
        • 2020-04-10
        • 2021-12-28
        • 2020-01-23
        • 2023-01-02
        • 2020-08-16
        • 2020-04-29
        • 2021-10-15
        • 2020-01-24
        相关资源
        最近更新 更多