公式で提供されていた。以下のようにurlを書いてhttpリクエストのヘッダーやオプションを書くことでレスポンスを得ることができる。
data "http" "example" { url = "https://checkpoint-api.hashicorp.com/v1/check/terraform" # Optional request headers request_headers = { Accept = "application/json" } } output "location_name" { value = data.http.example.body }
Terraform 1.2から追加されたpostcondition
と組み合わせることでhttpリクエストが失敗した際にTerraformのapply自体を失敗させることができる。
lifecycle { postcondition { condition = contains([201, 204], self.status_code) error_message = "Status code invalid" } }
AWSとかに対して操作した後のバリデートみたいな感じで使えそう。