Terraform 1.8 신규 기능 소개

안녕하세요.

실무에서 사용하는 클라우드 프로그래밍 강사 천강민입니다.

Terraform 1.8 버전에서 provider-defined functions 라는 기능이 출시 됐습니다.

간단히 얘기하면, 프로바이더 레벨에서 함수를 지원하는건데요. 바로 예시를 보면,

terraform {
  required_providers {
    aws = {
      source = "hashicorp/aws"
    }
  }
}

provider "aws" {}

# result: 
# {
#   "partition": "aws",
#   "service": "iam",
#   "region": "",
#   "account_id": "444455556666",
#   "resource": "role/example",
# }
output "role" {
  value = provider::aws::arn_parse("arn:aws:iam::444455556666:role/example")
}

# result: 
# {
#   "partition": "aws",
#   "service": "elasticloadbalancing",
#   "region": "us-east-2",
#   "account_id": "123456789012",
#   "resource": "loadbalancer/app/my-load-balancer/1234567890123456",
# }
output "elb" {
  value = provider::aws::arn_parse("arn:aws:elasticloadbalancing:us-east-2:123456789012:loadbalancer/app/my-load-balancer/1234567890123456")
}

(미쳤다...)

나온지 얼마 안된 기능이기 때문에 기능이 확실히 많이 부족하지만, 선언형 언어를 다양한 내장함수를 통해 절차적으로 사용해야하는 경우가 있었는데(split 후에 인덱스 접근해서 local에 저장하고...), 조금 더 선언적으로 지원이 되어가는 것 같습니다.

매우 따끈따근한 기능이라서 엄청 간단합니다. 혹시 보실 분들은 링크 참고하세요!

별별 함수들이 생겨날걸 생각하니 그 동안 내장함수 찾아서 구현했던 것들에 대해 보상받은 기분이네요. 해당 내용은 조금 더 파악해보고 별도로 강의 제작하여 업로드도 진행 예정입니다!

감사합니다.

lunghyun 프로필
lunghyun 2개월 전 계속 확인해 주셔서 감사합니다!! 어제 수강 시작했는데 도움이 될 것 같습니다!!
갈비만두 프로필
갈비만두 2개월 전 따근따근한 기술이라 저도 코드 개발해 봤는데 재밌더군여. state에 값이 안남아 있어서 활용할 수 있는 것들이 많은거 같습니다.
채널톡 아이콘