To use terraform_import and aws

require:

sudo pip3 install --upgrade awscli
export PATH=/home/ec2-user/.local/bin:$PATH

Create an AWS account (it’s free):

https://aws.amazon.com/

Install Terraform:

https://learn.hashicorp.com/terraform/getting-started/install.html

To test it

create a main.tf and add this inside:

provider "aws" {
  region = "us-east-2"
}

resource "aws_lambda_function" "lambda" {
    # (resource arguments)
}

resource "aws_s3_bucket" "bucket" {
    # (resource arguments)
}

log on your AWS account, and create:

- an s3 bucket named my-bucket-test-1
- a lambda function my-lambda-test-1

then import them by:

terraform import aws_lambda_function.lambda my-lambda-test-1

terraform import aws_s3_bucket.bucket my-bucket-test-1

terraform import aws_network_acl.main acl-f1780b98

terraform import aws_lambda_layer_version.test_layer arn:aws:lambda:us-east-2:397270606208:layer:aws_lambda_read_s3:1

Then a terraform.tfstate will be generated or updated with your config.TODO the documentation of existing functionnalities

Generate a Key pair for terraform user:

cd ~/.ssh
ssh-keygen -f terraform_key
Generating public/private rsa key pair.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in terraform_key.
Your public key has been saved in terraform_key.pub.
The key fingerprint is:
SHA256:SX5+SVVbyUiaslXmpqFNJl8WrP/NMTzWMnsK5AwxMvI alain@Beowolf007
The key's randomart image is:
+---[RSA 2048]----+
|            o=o +|
|            *o.+o|
|      . +ooB.=.. |
|       = +@+*.   |
|        Eoo++ . .|
|         o * oo*.|
|          . * o==|
|           . ...+|
|              .o |
+----[SHA256]-----+

We now have 2 more files:

terraform_key
terraform_key.pub

Creating the terraform file to import it:

See Create your local cluster of docker-machine for setting your profile

provider “aws” {
profile = “terraform” region = “eu-west-1”

}

resource “aws_instance” “ubuntu_zesty” {
ami = “ami-6b7f610f” instance_type = “t2.micro” key_name = “terraform_ec2_key”

}

resource “aws_key_pair” “terraform_ec2_key” {
key_name = “terraform_ec2_key” public_key = “${file(“terraform_key.pub”)}”
// TODO: check public_key = “ssh-rsa AZEB…jkasASDhaSjdh me@here
}