728x90
반응형
Variables and Outputs
- Terraform에서 변수(variables)는 크게 input, output, local로 볼 수 있음.
- local 변수는 주로 특정 값들을 연산하여 하나의 변수로 관리하려 할 때 사용. merge, concat, max와 같은 함수를 사용하여 특정 local변수를 생성 가능.
# input variables
variable "eks_version" {
default = "1.22"
}
# output variables
output "dmz_subnet_id" {
value = aws_subnet.dmz_subnet.*.id
}
# local variables
locals {
common_tags = {
Service = local.service_name
Owner = local.owner
}
}
locals {
tags = merge(
var.tags1,
var.tags2,)
instance_ids = concat(aws_instance.test1.*.id, aws_instance.test2.*.id)
max_subnet_length = max(
length(var.public_subnets),
length(var.private_subnets)
)
}
4. concat 함수(function)
- concat 은 둘이상의 목록을 가져와서 단일 목록으로 결합하는 함수(function)
output "iam_user_id" {
value = concat([aws_iam_user.iam-user-account["alice"].arn,
aws_iam_user.iam-user-account["jh"].arn])
}
=====================================
Outputs:
iam_user_id = [
"arn:aws:iam::574771129478:user/alice",
"arn:aws:iam::574771129478:user/jh",
]
5. element 함수(function)
- element는 목록에서 단일 요소를 검색할 수 있는 기능.
- 지정된 index가 목록의 길이보다 큰 경우 인덱스는 목록의 길이를 따라 index 래핑.
> element(["a", "b", "c"], 1)
b
> element(["a", "b", "c"], 3)
a
> count =2
> element(["a", "b", "c"], count.index)
6. Data source
- data source는 특정 resource의 값(name, arn, id값 등)을 가져와 변수로 저장하여 사용 가능.
- filter 값을 설정하여 특정 ami 정보등을 가져올 수 있다.
data "aws_ami" "ubuntu2004" {
most_recent = true #최신 ami가져옴
filter {
name = "name"
values = ["ubuntu/images/hvm-ssd/ubuntu-focal-20.04-amd64-server-*"]
}
filter {
name = "virtualization-type"
values = ["hvm"]
}
owners = ["099720109477"] # Canonical (우분투를 만든회사에 대해서만 ami가져옴)
}
728x90
반응형
'Terraform' 카테고리의 다른 글
[Terraform] Moved Block을 통한 코드 리팩터링 & Provider alias (0) | 2024.05.26 |
---|---|
[Terraform] count, for_each 등 실습예제 (0) | 2024.05.12 |
[Terraform] Resource Block 구문 문법(lifecycle, depends_on) (0) | 2024.05.12 |
[테라폼] ECS배포 및 revision관리 (1) | 2023.12.03 |
[테라폼] EKS 배포 및 Add on 설치 (0) | 2023.10.20 |