퀴즈: 프로바이더 별칭과 버전 제약
리소스 하나를 별칭 설정으로 만들고 싶다. 무엇을 쓰는가?
- 리소스 안에 providers = { random = random.seeded } 맵을 적는다
- 리소스 이름 앞에 seeded 접두어를 붙여 도구가 추론하게 한다
- 리소스 안에 provider = random.seeded 를 적는다
- provider 블록 안에서 그 리소스 주소를 지정한다
재사용 가능한 모듈이 두 리전의 설정을 받아야 한다. 모듈 쪽에 무엇을 선언하는가?
- 모듈 안에 provider 블록을 리전마다 하나씩 만든다
- 모듈 변수로 자격증명 문자열을 받아 provider 블록에 넣는다
- 모듈의 outputs 로 프로바이더 객체를 내보낸다
- required_providers 안에 configuration_aliases 로 받을 이름을 선언한다
모듈이 요구한 별칭 자리 중 하나를 providers 맵에서 빠뜨리면 어떻게 되는가?
- init 이 어떤 이름을 못 받았는지 알려 주며 막는다
- 그 자리는 기본 설정으로 조용히 채워져 apply 까지 통과한다
- plan 은 통과하고 apply 에서 프로바이더 인증 오류로 실패한다
- 모듈 안의 해당 리소스만 계획에서 빠지고 나머지는 적용된다
상태 파일만 보고 어떤 리소스가 별칭 설정으로 만들어졌는지 알 수 있는 이유는?
- 리소스 이름에 별칭이 접미어로 붙어 저장되기 때문
- 리소스마다 어떤 프로바이더 설정으로 만들어졌는지가 provider 문자열로 적히기 때문
- 별칭 리소스는 별도의 상태 파일로 분리되기 때문
- 모듈 경로에 별칭 이름이 포함되기 때문
미러에 random 3.9.0 한 판만 있을 때 init 이 실패하는 제약은?
- version = ">= 3.0.0"
- version = "~> 3.9"
- version = "~> 3.8.0"
- version = "3.9.0"
required_version 제약을 만족하지 못할 때의 동작으로 옳은 것은?
- 프로바이더를 모두 받은 뒤 plan 단계에서 경고만 낸다
- 잠금 파일에 기록만 남기고 그대로 진행한다
- required_providers 가 함께 적혀 있을 때만 검사한다
- 프로바이더를 받기 전에 지금 코어 버전을 알려 주며 막는다