这是你可以用 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
如果你不使用模块,你可以忽略“模块”并使用其余的。