http 백엔드

http 백엔드

REST 엔드포인트에 state를 저장하는 http 백엔드 설정을 설명해 드릴게요. 간단한 REST 클라이언트로 state를 가져오고 갱신해요.

출처: 문서

본문

http 백엔드는 간단한 REST 클라이언트로 state를 저장해요. state는 GET으로 가져오고 POST로 갱신하며 DELETE로 제거해요. 갱신에 사용하는 메서드는 구성 가능해요.

이 백엔드는 선택적으로 state 잠금을 지원해요. 잠금 지원을 활성화하면 body에 잠금 정보를 제공하는 LOCK 및 UNLOCK 요청을 사용해요. 엔드포인트는 이미 잠금이 점유되었을 때 423: Locked 또는 409: Conflict를 보유 잠금 정보와 함께 반환하고, 성공 시 200: OK를 반환해야 해요. 다른 모든 상태는 오류로 간주해요. 보유 잠금 정보의 ID는 state 갱신 요청의 쿼리 파라미터로 추가돼요.

예시 사용 (Example Usage)

terraform {
  backend "http" {
    address = "http://myrest.api.com/foo"
    lock_address = "http://myrest.api.com/foo"
    unlock_address = "http://myrest.api.com/foo"
  }
}

데이터 소스 구성 (Data Source Configuration)

data "terraform_remote_state" "foo" {
  backend = "http"
  config = {
    address = "http://my.rest.api.com"
  }
}

구성 변수 (Configuration Variables)

경고: 자격 증명과 기타 민감 데이터를 제공할 때는 환경 변수를 사용하는 것을 권장해요. -backend-config를 사용하거나 이런 값을 구성에 직접 하드코딩하면 Terraform이 .terraform 하위 디렉터리와 plan 파일 양쪽에 이 값을 포함해요. 자세한 내용은 Credentials and Sensitive Data를 참고해요.

지원하는 구성 옵션 / 환경 변수:

  • address / TF_HTTP_ADDRESS - (필수) REST 엔드포인트의 주소.
  • update_method / TF_HTTP_UPDATE_METHOD - (선택) state를 갱신할 때 사용할 HTTP 메서드. 기본값은 POST.
  • lock_address / TF_HTTP_LOCK_ADDRESS - (선택) 잠금 REST 엔드포인트의 주소. 기본값은 비활성화.
  • lock_method / TF_HTTP_LOCK_METHOD - (선택) 잠글 때 사용할 HTTP 메서드. 기본값은 LOCK.
  • unlock_address / TF_HTTP_UNLOCK_ADDRESS - (선택) 잠금 해제 REST 엔드포인트의 주소. 기본값은 비활성화.
  • unlock_method / TF_HTTP_UNLOCK_METHOD - (선택) 잠금 해제할 때 사용할 HTTP 메서드. 기본값은 UNLOCK.
  • username / TF_HTTP_USERNAME - (선택) HTTP 기본 인증용 사용자 이름.
  • password / TF_HTTP_PASSWORD - (선택) HTTP 기본 인증용 비밀번호.
  • skip_cert_verification - (선택) TLS 검증을 건너뛸지 여부. 기본값은 false.
  • retry_max / TF_HTTP_RETRY_MAX - (선택) HTTP 요청 재시도 횟수. 기본값은 2.
  • retry_wait_min / TF_HTTP_RETRY_WAIT_MIN - (선택) HTTP 요청 시도 사이의 최소 대기 시간(초). 기본값은 1.
  • retry_wait_max / TF_HTTP_RETRY_WAIT_MAX - (선택) HTTP 요청 시도 사이의 최대 대기 시간(초). 기본값은 30.

mTLS 인증을 위해 다음 세 옵션을 설정할 수 있어요:

  • client_certificate_pem / TF_HTTP_CLIENT_CERTIFICATE_PEM - (선택) 상호 TLS(mTLS) 인증 중 서버가 클라이언트를 검증하는 데 사용하는 PEM 인코딩 인증서.
  • client_private_key_pem / TF_HTTP_CLIENT_PRIVATE_KEY_PEM - (선택) client_certificate_pem을 지정하면 필요한 PEM 인코딩 개인 키.
  • client_ca_certificate_pem / TF_HTTP_CLIENT_CA_CERTIFICATE_PEM - (선택) TLS 인증 중 클라이언트가 서버 인증서를 검증하는 데 사용하는 PEM 인코딩 CA 인증서 체인.

더 알아보기 (Learn more)