如何将现有 AWS 资源导入 Terraspace?

时间:2021-04-25 18:43:25

标签: terraform terraform-provider-aws

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

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

1 个答案:

答案 0 :(得分:0)

这是你可以用 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

我经常使用此导入命令对 stuf 进行逆向工程,有时直接从 terraform 创建所有内容非常令人困惑,在这种情况下,我尝试在 AWS 控制台上创建事物,然后使用 terraform 导入。

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

terraform state show module.cognito.aws_cognito_user_pool_client.my_resource

如果您不使用模块,您可以忽略“模块”并使用其余部分。