반응형
카운트가 있는 리소스에 대한 테라폼 출력
다음과 같은 구성을 가진 테라폼에 s3 리소스를 보유하고 있습니다:
locals {
bucket_count = "${length(var.s3_config["bucket_names"])}"
}
resource "aws_s3_bucket" "s3_bucket" {
count = "${local.bucket_count}"
bucket = "${format("%s-%s", element(var.s3_config["bucket_names"], count.index), var.region)}"
acl = "private"
region = "${var.region}"
tags {
Name = "${format("%s-%s", element(var.s3_config["bucket_names"], count.index), var.region)}"
}
}
그리고 나는 생성된 모든 버킷에 대한 출력 변수를 설정하고 싶어서 내용이 포함된 파일 이름 outputs.tf을 만들었다
output "buckets" {
value = "${aws_s3_bucket.s3_bucket.*.bucket}"
}
output "buckets_arns" {
value = "${aws_s3_bucket.s3_bucket.*.arn}"
}
내가 구성을 적용할 때 그것은 괜찮다. 나는 terform.dllstate 파일의 출력을 본다. 그러나 내가 terform 출력을 호출할 때 나는 출력이 없거나 출력이 비어있는 정보를 본다. 내가 무엇을 잘못하는가?
다음을 수행하십시오:
output "buckets" {
value = ["${aws_s3_bucket.s3_bucket.*.bucket}"]
}
output "buckets_arns" {
value = ["${aws_s3_bucket.s3_bucket.*.arn}"]
}
대부분의 경우 빈 튜플로 오류 출력 값을 제공합니다
join은 주어진 문자열 목록의 모든 요소를 주어진 구분 기호와 연결하여 문자열을 생성합니다.
조인의 출력은 문자열에 불과하므로, 이것은 잘 작동한다(분리자가 빈 문자열을 만들 때 빈 문자열로 빈 목록을 조인한다). 이러한 유형은 tf0.11 구성에서 매우 일반적이었습니다. 예:
output "bucket_name" {
value = join("", aws_s3_bucket.s3_bucket.*.id)
}
대신 (tf0.12.11 이전) null 동작을 되돌리려면 3항 연산자가 필요합니다:
output "bucket_name" {
value = length(aws_s3_bucket.s3_bucket) > 0 ? aws_s3_bucket.s3_bucket[0].id : null
}
출력 목록의 경우 형식 목록을 사용할 수 있습니다.
반응형
'개발하자' 카테고리의 다른 글
구글 콜랩 노트북 이름을 파이썬 변수에 할당할 수 있다. Jupyter에서는 javascript를 사용할 수 있지만 collab에서는 작동하지 않습니다 (0) | 2023.03.11 |
---|---|
Python에서 중첩된 데이터 구조의 소수점 반올림 (0) | 2023.03.11 |
떨림: 드롭다운 항목과 드롭다운 단추 선택 항목에 대해 다른 색상을 설정하는 방법은 무엇입니까? (0) | 2023.03.09 |
Kubernetes 리소스에 사용자 지정 최종 사용자 구현 (0) | 2023.03.09 |
어떻게 yaml에 의해 비밀 파일을 쿠버네티스 비밀로 설정합니까? (0) | 2023.03.08 |