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
}
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
Subscribe to my newsletter
Read articles from Edson Ferreira directly inside your inbox. Subscribe to the newsletter, and don't miss out.
Written by
Edson Ferreira
Edson Ferreira
SRE | HashiCorp Ambassador | AWS Community Builder | Kubernetes Docs (in PTBR) Maintainer | CNCF Glossary (in PTBR) Maintainer | Grafana Champion