DEV Community

Edson C. (aka tuxpilgrim)
Edson C. (aka tuxpilgrim)

Posted on

Terraform datasources: http

Datasources são recursos do Terraform que dão a possibilidade de buscar e usar informações definidas fora do Terraform (em outra configuração por exemplo) dentro do seu código.

Nesse post vou mostrar um pouco de um tipo de datasource que pode salvar bastante no dia a dia.

Datasource http

Esse datasource basicamente faz uma requisição GET em uma dada URL e exporta o body e os headers da resposta como saída.

Exemplo:
Suponha que você precise criar um security group para uma EC2 na AWS e já adicionar seu endereço IP atual na lista de endereços permitidos, como poderíamos fazer?

Usando o datasource http:

data "http" "myip" {
  url = "https://api.ipify.org"

  # Opcional: header da requisição
  request_headers = {
    Accept = "application/text"
  }
}

output "myip" {
    description = "Endereço IP"
    value = data.http.myip.body
}
Enter fullscreen mode Exit fullscreen mode

Nesse caso, foi feito um GET na URL https://api.ipify.org para buscar o IP atual com o header do tipo text, e a saída foi exposta via output.

É importante ressaltar que a URL consultada precisa responder 200 OK e com um Content-Type do tipo text/* ou application/json.

Referências

Discussion (0)