使用"terraform import“语法从Terraform导入资源非常简单。然而,在这个问题上还没有关于terraspace的文档。Their docs只讨论如何将现有的Terraform状态文件导入到Terraspace中,方法是将其移动到S3并配置后端,以便Terraspace可以无缝地拾取已经存在的tfstate文件。
有人知道如何将现有的基础设施导入Terraspace吗?我在AWS中有一些现有的基础设施,我希望将来由Terraspace导入和管理。
发布于 2021-08-27 11:58:01
您可以从BUILD_DIR中使用普通的Terraform命令(最有可能在.terrspace-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
发布于 2021-06-16 04:56:01
这是你可以用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将是在您的亚马逊网络服务控制台中显示的池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
如果你不使用module,你可以忽略“module”,只使用其余的。
https://stackoverflow.com/questions/67257042
复制相似问题