When running terrafom import
Terraform expects the resources you're importing to to be defined in your configuration.
For your first case $ terraform import aws_instance.foo i-abcd1234
you would need to define at least:
# main.tf
resource "aws_instance" "foo" {
}
Terraform will update the statefile with details from AWS.
In the second one $ terraform import module.foo.aws_instance.bar i-abcd1234
Terraform expects module 'foo' containing resource 'aws_instance bar' to exist. Check on when to create modules and how to compose them. E.g.
# modules/foo
resource "aws_instance" "foo" {
}
# main.tf
module "consul_cluster" {
source = "./modules/aws-consul-cluster"
}
If you will check the statefile you'll see that your imported resource is nested differently.
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…