地方エンジニアの学習日記

興味ある技術の雑なメモだったりを書いてくブログ。たまに日記とガジェット紹介。

【Terraform】httpリクエストの結果を使ってなにかしたいときに使えるprovider

github.com

公式で提供されていた。以下のように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とかに対して操作した後のバリデートみたいな感じで使えそう。