Terroform 연구 노트-속성 호출 및 출력 결과

Cloudformation과 유사하게 Terraform 템플릿 파일에서 출력을 정의하여 해당 리소스의 속성을 출력 할 수도 있습니다.

예 1 : EIP 및 S3 구성 및 해당 속성 출력

provider "aws" {
  region     = "us-west-2"
  access_key = "AKIA23243L4J2KL243GX"
  secret_key = "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"
}

resource "aws_eip" "lb" {
  vpc      = true
}

output "eip" {
  value = aws_eip.lb.public_ip
}

resource "aws_s3_bucket" "mys3" {
  bucket = "beanxyz-attribute-demo-001"
}

output "mys3bucket" {
  value = aws_s3_bucket.mys3
}

실행 후 결과는 다음과 같으며, 출력 사용시 특정 속성을 지정하지 않으면 모든 속성이 나열되는 것을 알 수 있습니다.

Terroform 연구 노트-속성 호출 및 출력 결과

어떤 속성을 인용 할 수 있는지 확실하지 않은 경우 registry.terraform.info의 설명서를 참조하십시오.

예 2 : EC2 및 EIP를 구성하고 EIP를 EC2에 할당

provider "aws" {
  region     = "us-west-2"
  access_key = "AKKSLK22DDKJPC43GX"
  secret_key = "fw2fia3asdTTSSShTsd97KM73+M7JJx82Fkz9"
}

resource "aws_instance" "myec2" {
 ami = "ami-082b5a644766e0e6f"
 instance_type = "t2.micro"
}

resource "aws_eip" "lb" {
vpc      = true
}

resource "aws_eip_association" "eip_assoc" {
instance_id   = aws_instance.myec2.id
allocation_id = aws_eip.lb.id
}

resource "aws_security_group" "allow_tls" {
name        = "kplabs-security-group"

ingress {
  from_port   = 443
  to_port     = 443
  protocol    = "tcp"
  cidr_blocks = ["${aws_eip.lb.public_ip}/32"]

}
}

위의 예에서 다른 리소스의 속성을 참조 할 때 일부는 id와 같은 직접 호출되고 일부는 ip 주소 블록과 같은 $ () 추가로 호출됩니다. 이전 버전에서는 $ () 형식을 사용해야합니다. 새 버전에서는 대부분의 속성 호출을 직접 사용할 수 있지만 $ () 메서드를 사용해야하는 일부 개별 속성이 있습니다. 혼동을 피하기 위해 모든 사용자에게 $ () 형식을 계속 사용할 수 있습니다.

가동 결과

Terroform 연구 노트-속성 호출 및 출력 결과

Terroform 연구 노트-속성 호출 및 출력 결과

추천

출처blog.51cto.com/beanxyz/2636984