Bird
Raised Fist0
Terraformcloud~5 mins

Import block syntax (Terraform 1.5+) - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What is the purpose of the import block in Terraform 1.5+?
The import block lets you bring existing infrastructure resources into Terraform's management by specifying their IDs directly in the configuration.
Click to reveal answer
beginner
How do you specify the resource to import using the new import block syntax?
You specify the resource address and the ID of the existing resource inside the <code>import</code> block, like this:<br><pre>import {
  to = aws_instance.example
  id = "i-1234567890abcdef0"
}</pre>
Click to reveal answer
intermediate
Can you use multiple import blocks in a single Terraform configuration?
Yes, you can use multiple <code>import</code> blocks to import several resources at once, each with its own <code>to</code> and <code>id</code> values.
Click to reveal answer
intermediate
What happens if you try to import a resource that is already managed by Terraform?
Terraform will show an error because the resource is already tracked in the state. You should only import resources not yet managed.
Click to reveal answer
advanced
Why is the import block syntax preferred over the old CLI import command?
The import block syntax allows you to declare imports as part of your configuration files, making imports repeatable, version-controlled, and easier to automate.
Click to reveal answer
What key fields must an import block contain in Terraform 1.5+?
A<code>address</code> and <code>type</code>
B<code>resource</code> and <code>name</code>
C<code>source</code> and <code>destination</code>
D<code>to</code> and <code>id</code>
Can the import block be used to create new resources in Terraform?
ANo, it only imports existing resources
BYes, it creates new resources automatically
CYes, but only for AWS resources
DNo, it deletes existing resources
Which Terraform version introduced the import block syntax?
ATerraform 0.12
BTerraform 1.0
CTerraform 1.5
DTerraform 2.0
What is the benefit of declaring imports in Terraform configuration files?
AImports become part of version control and automation
BImports run faster
CImports require no resource IDs
DImports automatically update resource code
If you want to import multiple resources, what should you do?
AUse one import block with multiple IDs
BUse multiple import blocks, one per resource
CImport only one resource at a time
DUse the CLI import command instead
Explain how the import block syntax works in Terraform 1.5+ and why it is useful.
Think about how Terraform manages resources and why importing is needed.
You got /4 concepts.
    Describe the steps to import an existing AWS instance using the import block syntax.
    Focus on the syntax and the process flow.
    You got /4 concepts.

      Practice

      (1/5)
      1. What is the main purpose of the import block in Terraform 1.5+?
      easy
      A. To create new resources automatically
      B. To delete resources from the cloud provider
      C. To let Terraform track existing resources without recreating them
      D. To backup Terraform state files

      Solution

      1. Step 1: Understand the import block purpose

        The import block is designed to connect Terraform state with existing cloud resources.
      2. Step 2: Differentiate from other actions

        It does not create or delete resources but tracks them to avoid recreation.
      3. Final Answer:

        To let Terraform track existing resources without recreating them -> Option C
      4. Quick Check:

        Import block = track existing resources [OK]
      Hint: Import block links Terraform to existing resources [OK]
      Common Mistakes:
      • Thinking import creates new resources
      • Confusing import with resource deletion
      • Assuming import backs up state files
      2. Which of the following is the correct syntax for an import block in Terraform 1.5+?
      easy
      A. import { target = aws_instance.example value = "i-1234567890abcdef0" }
      B. import { to = aws_instance.example id = "i-1234567890abcdef0" }
      C. import { resource = aws_instance.example key = "i-1234567890abcdef0" }
      D. import { name = aws_instance.example identifier = "i-1234567890abcdef0" }

      Solution

      1. Step 1: Recall import block keys

        The import block uses to for the Terraform resource and id for the cloud resource ID.
      2. Step 2: Match syntax with options

        Only import { to = aws_instance.example id = "i-1234567890abcdef0" } uses to and id correctly.
      3. Final Answer:

        import { to = aws_instance.example id = "i-1234567890abcdef0" } -> Option B
      4. Quick Check:

        Import keys = to and id [OK]
      Hint: Remember keys: to = resource, id = cloud ID [OK]
      Common Mistakes:
      • Using wrong keys like resource or target
      • Confusing id with identifier
      • Missing quotes around the id value
      3. Given this import block:
      import {
        to = aws_s3_bucket.mybucket
        id = "my-existing-bucket"
      }
      What will Terraform do after applying this import block?
      medium
      A. Track the existing S3 bucket 'my-existing-bucket' without creating it
      B. Create a new S3 bucket named 'my-existing-bucket'
      C. Delete the S3 bucket 'my-existing-bucket'
      D. Throw a syntax error due to missing resource configuration

      Solution

      1. Step 1: Understand import block effect

        The import block links Terraform state to an existing resource by its ID without creating or deleting it.
      2. Step 2: Confirm behavior after import

        Terraform will track the existing bucket named 'my-existing-bucket' safely.
      3. Final Answer:

        Track the existing S3 bucket 'my-existing-bucket' without creating it -> Option A
      4. Quick Check:

        Import block = track existing resource [OK]
      Hint: Import links state to existing resource, no creation [OK]
      Common Mistakes:
      • Assuming import creates new resources
      • Thinking import deletes resources
      • Confusing import with resource configuration
      4. You wrote this import block:
      import {
        to = aws_instance.web
        id = i-0abcd1234efgh5678
      }
      Terraform gives an error when applying. What is the likely cause?
      medium
      A. Terraform 1.5+ does not support import blocks
      B. The to value should be the cloud resource ID
      C. The import block must be inside a resource block
      D. The id value is missing quotes

      Solution

      1. Step 1: Check syntax for id value

        The id value must be a string, so it requires quotes around it.
      2. Step 2: Identify error cause

        Missing quotes around i-0abcd1234efgh5678 causes a syntax error.
      3. Final Answer:

        The id value is missing quotes -> Option D
      4. Quick Check:

        id value must be quoted string [OK]
      Hint: Always quote id values in import blocks [OK]
      Common Mistakes:
      • Not quoting string IDs
      • Confusing to and id values
      • Placing import block inside resource block
      5. You want to import an existing Azure resource group with ID "/subscriptions/123/resourceGroups/mygroup" into Terraform resource azurerm_resource_group.main. Which import block is correct and follows best practices?
      hard
      A. import { to = azurerm_resource_group.main id = "/subscriptions/123/resourceGroups/mygroup" } resource "azurerm_resource_group" "main" { name = "mygroup" location = "eastus" }
      B. import { to = azurerm_resource_group.main id = "mygroup" } resource "azurerm_resource_group" "main" { name = "mygroup" location = "eastus" }
      C. import { to = azurerm_resource_group.main id = "/subscriptions/123/resourceGroups/mygroup" } resource "azurerm_resource_group" "main" { location = "eastus" }
      D. import { to = azurerm_resource_group.main id = "mygroup" } resource "azurerm_resource_group" "main" { location = "eastus" }

      Solution

      1. Step 1: Use full resource ID in import block

        The id must be the full Azure resource ID string to correctly identify the resource.
      2. Step 2: Provide matching resource configuration

        After import, the resource block must include all required attributes like name and location to manage the resource safely.
      3. Final Answer:

        Import block with full ID and resource block with name and location -> Option A
      4. Quick Check:

        Full ID + matching config = correct import [OK]
      Hint: Use full resource ID and matching config after import [OK]
      Common Mistakes:
      • Using partial ID instead of full resource ID
      • Omitting required resource attributes after import
      • Assuming import block replaces resource configuration
      Recommended

      Ready to prove it?

      Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

      10 questions~5 mineasy hard