개발하자
테라폼 플랫 튜플과 문자열 집합
Cuire
2022. 12. 12. 15:48
반응형
테라폼 플랫 튜플과 문자열 집합
나는 각 IP에 대한 IP 주소와 메타데이터의 json을 포함하는 다음 테라폼 allowed_ips tuple을 가지고 있다. 나는 튜플을 평평하게 하려고 하는데, ["2.2.2", "3.3.3"] 형식의 IP 주소 목록을 가져오면 ip_rules 변수로 전달된다.
변수
allowed_ips = [
{
name = "ip1"
ip_address = "3.3.3.3"
},
{
name = "ip2"
ip_address = "127.0.0.1"
}
]
자원
variable "allowed_ips" {
type = list(object({
name = string,
priority = string,
ip_address = string
}))
}
network_acls {
default_action = "Deny"
bypass = "AzureServices"
ip_rules = jsonencode(var.allowed_ips.*.ip_address)
}
내가 규칙을 설정할 때 문제 없이 생성되지만 위의 allowed_ips에서 변수를 구문 분석하고 싶다.
나는 다음과 같은 다양한 방법을 시도했다.
jsonencode(var.allowed_ips.*.ip_address)
"${join("\\,", local.subnets.*.id)}"
- 각각의 포어를 통해 반복해서,
안타깝게도 대부분의 솔루션은 오류를 발생시킵니다.
아무쪼록 잘 부탁드립니다.
단순 for 루프를 사용하여 집합을 만들 수 있습니다.
ip_rules = [for i in var.allowed_ips : i.ip_address]
그 주장은 유형의 값을 기대하는 것처럼 보인다. 변수를 사용하려면 다음과 같은 작업을 수행할 수 있어야 합니다.
ip_rules = toset(var.allowed_ips[*].ip_address)
함수는 지정된 값을 문자열로 인코딩합니다. 문자열은 인수가 예상하는 유형이 아닙니다. 반환 값이 문자열 유형이기 때문에 함수에 대해서도 동일하게 말할 수 있습니다.
반응형