📚 Cheatsheet

Une collection organisée de snippets de code pour accélérer votre développement. Parcourez, recherchez et copiez en un clic.

Snippets 10

Retour
Bloc dynamique
Avancé
dynamic "ingress" {
  for_each = var.ingress_ports
  content {
    from_port   = ingress.value
    to_port     = ingress.value
    protocol    = "tcp"
    cidr_blocks = ["0.0.0.0/0"]
  }
}
Créer plusieurs ressources avec 'count'
Intermédiaire
resource "aws_instance" "server" {
  count = 4
  ami           = "ami-a1b2c3d4"
  instance_type = "t2.micro"
}
Créer plusieurs ressources avec 'for_each'
Intermédiaire
resource "aws_s3_bucket" "bucket" {
  for_each = toset(["assets", "media", "logs"])
  bucket = "mon-app-${each.key}"
}
Cycle de vie : 'create_before_destroy'
Avancé
resource "aws_instance" "web" {
  # ...
  lifecycle {
    create_before_destroy = true
  }
}
Cycle de vie : 'ignore_changes'
Avancé
resource "aws_instance" "example" {
  # ...
  lifecycle {
    ignore_changes = [
      tags,
    ]
  }
}
Cycle de vie : 'prevent_destroy'
Intermédiaire
resource "aws_db_instance" "database" {
  # ...
  lifecycle {
    prevent_destroy = true
  }
}
Déclarer une ressource
Facile
resource "local_file" "exemple" {
  content  = "Bonjour le monde !"
  filename = "${path.module}/hello.txt"
}
Déclarer une source de données (data source)
Intermédiaire
data "aws_ami" "ubuntu" {
  most_recent = true
  filter {
    name   = "name"
    values = ["ubuntu/images/hvm-ssd/ubuntu-focal-20.04-amd64-server-*"]
  }
}
Dépendance explicite (depends_on)
Intermédiaire
resource "aws_instance" "web" {
  # ...
  depends_on = [
    aws_db_instance.default
  ]
}
Référencer un attribut de ressource
Facile
resource "aws_instance" "web" {
  ami           = data.aws_ami.ubuntu.id
  instance_type = "t2.micro"
}