개발하자
테라폼 콘솔에서 로컬 변수 가져오기
Cuire
2023. 3. 6. 15:23
반응형
테라폼 콘솔에서 로컬 변수 가져오기
테라폼 콘솔 내에서 로컬 변수를 가져올 수 있는 방법이 있나요?
> local.name
unknown values referenced, can't compute value
Terraform 콘솔에서는 입력 변수와 모듈 출력 변수만 확인할 수 있는 것 같습니다.
> var.in
2
> module.abc.out
3
구성 파일 예:
# main.tf
locals {
name = 1
}
variable "in" {
value = 2
}
module "abc" {
source "path/to/module"
}
# path/to/module/main.tf
output "out" {
value = 3
}
유감스럽게도 Terraform v0.11.x에서는 이 기능이 지원되지 않는 것으로 보이지만, 이 문제 티켓에 설명된 대로 v0.12에서 제공될 예정입니다:
https://github.com/hashicorp/terraform/issues/18413
HTH!
이것은 최근 Terraform 릴리즈에서 작동할 것입니다.
$ terraform version
Terraform v1.0.5
$ terraform console
> local.name
1
> var.in
2
그리고 예를 들어 Bash를 사용하여 (비상호작용적으로) 사용할 수 있습니다.
$ terraform console <<<local.name
1
이것은 사용자 지정 도구에 매우 유용할 수 있으며 심지어 상당히 정교할 수도 있습니다.
$ terraform console <<<terraform.workspace
"default"
$ terraform console <<<local.credentials[local.stack].username
"user1234"
테스트된 'main.tf'
locals {
name = 1
stack = terraform.workspace
credentials={
default: {username:"user1234",password:"1234",endpoint:"http://localhost"}
}
}
variable in {
default = 2
}
오늘(2021년 12월)에도 여전히 테라폼 콘솔이 없습니다
하지만, 만약 당신이 적절하다고 생각한다면, 당신은 그곳에 가서 찬성표를 던질 수도 있다.
나는 단지 목록에서 몇 가지 항목을 얻고 싶었다.
첫 번째 항목은 기능을 사용하여 이렇게 할 수 있습니다.
element(["apple", "banana", "pine apple", "grape", "strawberry"], 0)
나는 "사과"를 돌려받았다.
그리고 마지막 아이템을 원한다면 기능을 사용하여 다음을 수행해야 합니다
element(["apple", "banana", "pine apple", "grape", "strawberry"],
length(["apple", "banana", "pine apple", "grape", "strawberry"])-1)
"딸기"를 돌려받습니다.
여기에 코드 반복이 있기 때문에, 저는 변수를 정의하고 사용하기 위해 이런 것을 찾고 있었습니다.
var fruits = ["apple", "banana", "pine apple", "grape", "strawberry"]
element(fruits, length(fruits)-1)
.
그래서 저는 main.tf이라는 파일에서 변수를 다음과 같이 정의하게 되었습니다.
variable fruits {
default = ["apple", "banana", "pine apple", "grape", "strawberry"]
}
테라폼 콘솔이 시작되었습니다.
이제 다음과 같이 사용할 수 있습니다.
element(var.fruits, length(var.fruits)-1)
몇 가지 관련 예를 살펴보십시오
반응형