■ はじめに
Terraform の 変数について扱う。
目次
【0】Terraform の変数 【1】local 【2】Hello world 【3】List
【0】Terraform の変数
* 以下の2種類。 ~~~~ 1)ローカル変数 - local 2)変数 - variable ~~~~ * 以下のサイト、すごくいい記事、、、
https://zenn.dev/sway/articles/terraform_biginner_varliable
* 変数については、以下の関連記事を参照
Terraform ~ variable / 入門編 ~
https://dk521123.hatenablog.com/entry/2025/09/19/093537
【1】local
* ローカル変数の定義 => locals セクションで定義
https://developer.hashicorp.com/terraform/language/values/locals
【2】Hello world
locals.tf (ローカル変数の定義)
locals { content = "hello world!!!?" filename = "hello.txt" }
main.tf (呼び出し元)
# ローカル変数の参照 resource "local_file" "helloworld" { # local.<key>で参照できる content = local.content # ${local.<key>}でも参照できる(文字列連結時に使える) filename = "${local.filename}" }
【3】List
* 以下の関連記事で使用
https://dk521123.hatenablog.com/entry/2025/09/18/003116
locals.tf (ローカル変数の定義)
# 対象の既存バケット名リスト locals { s3_buckets = [ "your-existing-bucket-a", "your-existing-bucket-b", "your-existing-bucket-c" ] }
s3.tf (呼び出し元)
# 既存バケットをデータソースでまとめて参照 data "aws_s3_bucket" "target" { for_each = toset(local.s3_buckets) bucket = each.value } # Lambdaへのinvoke権限 (for_eachで全バケット分) resource "aws_lambda_permission" "allow_s3" { for_each = data.aws_s3_bucket.target statement_id = "AllowExecutionFromS3-${each.key}" action = "lambda:InvokeFunction" function_name = aws_lambda_function.s3_event.function_name principal = "s3.amazonaws.com" source_arn = each.value.arn } # S3イベント通知 → Lambda (for_eachで全バケット分) resource "aws_s3_bucket_notification" "notify" { for_each = data.aws_s3_bucket.target bucket = each.value.id lambda_function { lambda_function_arn = aws_lambda_function.s3_event.arn events = ["s3:ObjectCreated:*", "s3:ObjectRemoved:*"] } depends_on = [ aws_lambda_permission.allow_s3 ] }
参考文献
https://qiita.com/ringo/items/3af1735cd833fb80da75
https://capsulecloud.io/terraform-variable
関連記事
Terraform ~ 環境構築編 ~
https://dk521123.hatenablog.com/entry/2023/04/05/000224
Terraform ~ 入門編 ~
https://dk521123.hatenablog.com/entry/2019/12/09/222057
Terraform ~ 基本編 ~
https://dk521123.hatenablog.com/entry/2023/05/03/000000
Terraform ~ 基本編 / Module ~
https://dk521123.hatenablog.com/entry/2023/05/19/113544
Terraform ~ variable / 入門編 ~
https://dk521123.hatenablog.com/entry/2025/09/19/093537
Terraform ~ variable / 基本編 ~
https://dk521123.hatenablog.com/entry/2025/09/20/002058
Terraform ~ Terraformあれこれ ~
https://dk521123.hatenablog.com/entry/2023/05/15/205352