Terraform Archive Provider - Create ZIP and TAR Files
Use the Terraform archive provider to create ZIP files for Lambda functions, Cloud Functions, and deployments. archive_file data source with source_dir and...
Terraform
Import existing cloud resources into Terraform state. Step-by-step guide covering AWS, Azure, and GCP resources with import block syntax.
This comprehensive guide covers everything you need to know with practical, copy-paste examples for your Terraform projects.
Understanding this topic is essential for writing production-ready Terraform code that scales across teams and environments.
terraform {
required_version = ">= 1.5"
required_providers {
aws = {
source = "hashicorp/aws"
version = "~> 5.0"
}
}
}
provider "aws" {
region = var.region
}variable "environment" {
type = string
description = "Deployment environment"
default = "dev"
validation {
condition = contains(["dev", "staging", "prod"], var.environment)
error_message = "Must be dev, staging, or prod."
}
}
locals {
name_prefix = "myapp-${var.environment}"
common_tags = {
Environment = var.environment
ManagedBy = "terraform"
Project = var.project_name
}
}
resource "aws_instance" "app" {
ami = data.aws_ami.latest.id
instance_type = local.is_prod ? "t3.large" : "t3.micro"
tags = merge(local.common_tags, { Name = "${local.name_prefix}-app" })
}For production environments, consider these patterns:
# Dynamic blocks for flexible configuration
resource "aws_security_group" "app" {
name = "${local.name_prefix}-sg"
dynamic "ingress" {
for_each = var.ingress_rules
content {
from_port = ingress.value.port
to_port = ingress.value.port
protocol = "tcp"
cidr_blocks = ingress.value.cidrs
}
}
}terraform plan output before applyingRelated: How to install AWS CLI on macOS using Homebrew — set up AWS CLI in minutes.
Apply these patterns in your next Terraform project for cleaner, more maintainable infrastructure code. Bookmark this guide for quick reference.
Use the Terraform archive provider to create ZIP files for Lambda functions, Cloud Functions, and deployments. archive_file data source with source_dir and...
Automate Terraform with Azure DevOps Pipelines. YAML pipelines, service connections, environment approvals, and Azure backend state configuration.
Automate Terraform with GitHub Actions. Plan on PR, apply on merge, OIDC authentication, environment protection, and drift detection workflows.
Automate Terraform with GitLab CI/CD. Plan on merge requests, apply on main, remote state with HTTP backend, and environment-specific pipelines.