Olá pessoal, sejam muito bem-vindos a mais essa aula. E hoje nós começaremos a falar sobre um assunto muito importante, que são as variáveis. Então nós podemos deixar os nossos arquivos de configuração, os arquivos de provisionamento, muito mais dinâmicos. Nós podemos especificar variáveis e podemos referenciá-las nesses arquivos de configuração. Então vamos a um exemplo. Nós temos aqui o nosso local file, o arquivo que nós estamos criando aqui no arquivo main.tf, onde nós especificamos o filename como sendo exemplo.txt e o conteúdo como sendo hello full cycle de forma hardcode. Nós não podemos substituir este valor em nenhum momento. Mas, e se nós quisermos colocar o conteúdo deste arquivo diferente de acordo com um determinado ambiente? Então, para desenvolvimento eu quero que o conteúdo do arquivo seja este conteúdo específico, já para produção o conteúdo vai ser um conteúdo diferente. Ou nós podemos utilizar variáveis para isso. Este é um exemplo bem simples, mas você pode já identificar como o uso de variáveis pode ser algo muito poderoso e que pode nos ajudar bastante quando nós falamos, por exemplo, do provisionamento de uma máquina virtual em desenvolvimento e produção. Com certeza, o capacity dessas duas máquinas virtuais vai ser diferente em desenvolvimento em relação à produção. Geralmente, em produção, nós vamos provisionar uma máquina com mais capacity, com mais memória, com um disco maior, com mais capacidade, enquanto em desenvolvimento nós queremos algo simplesmente para teste, simplesmente para nós executarmos alguns testes na nossa aplicação. Então, o uso de variáveis é bem amplo e ele é bastante utilizado e é muito importante nós entendermos como utilizar. Beleza? Então, vamos lá. Para nós termos aqui um exemplo, eu vou criar uma variável e essa variável ela será referenciada aqui no conteúdo deste arquivo, então antes de criar na verdade, eu já vou referenciar, nós podemos ter variável aqui, eu vou utilizar até esse file content que ele já pegou aqui, de exemplos que eu estava criando anteriormente, tá? Então, para nós referenciarmos variáveis, nós sempre utilizamos aqui o word var, ponto, e o nome da variável. Aqui eu já tenho var.fileContent. Mas nós não declaramos em nenhum lugar essa variável ainda. Nós precisamos declarar. Então, uma coisa é utilizar uma variável, e outra coisa é declará-la. Então, nós faremos o seguinte. Eu vou copiar aqui o nome dessa variável. declará-la. Então nós faremos o seguinte, eu vou copiar aqui o nome dessa variável, eu vou criar um outro arquivo, que será o arquivo variables, também pode ser qualquer nome, variables.tf. E aqui nós teremos a nossa variable, nós vamos colocar aqui file content, e por enquanto nós vamos deixar esse bloco de variável aqui vazio. Vou salvar esse arquivo, e agora eu vou abrir o terminal, então deixa eu criar aqui um novo terminal. Deixa eu já pegar este terminal aberto aqui. Beleza? E agora eu vou rodar terraform plena. Vamos planejar aqui. E aqui nós já temos o nosso prompt, a solicitação de novo valor para esta variável, esta variável file content. Então, eu vou colocar o valor qualquer aqui. Vou colocar aqui testando variáveis beleza? e agora nós temos aqui o planejamento do Terraform que é o seguinte, ele vai criar um novo arquivo exemplo, por quê? porque nós mudamos o conteúdo antes era HelloFullCycle que estava hardcode e agora nós temos aqui este valor testando variáveis que foi o valor que nós colocamos no prompt. Então, quer dizer que sempre que nós trabalharmos com variável, nós precisamos de informar as variáveis no prompt, quando nós rodarmos os comandos do Terraform? Não necessariamente. Existem diversas formas de nós passarmos valores, de nós setarmos essas variáveis para que os nossos arquivos de configuração utilizem essas variáveis. E uma dessas formas é nós utilizarmos valores de full. Então, quando nós trabalharmos com algumas variáveis que nós, por exemplo, estivermos trabalhando em desenvolvimento, nós não queremos ficar sempre especificando esses valores, nós especificamos o valor de full. E nós podemos dizer aqui o seguinte, esse valor é um valor de full. Vai dizer o seguinte este valor é um valor default vai ser o valor que nós vamos utilizar para esta variável como sendo valor default, valor padrão vou salvar aqui o arquivo e agora eu vou executar o mesmo comando terraform plan você pode observar que ele não mais me pediu este valor específico e se nós observarmos aqui nós temos que este valor é um valor default, que veio justamente do nosso arquivo variables.tf, beleza? Uma outra forma que nós temos também de especificar esses valores é o seguinte, eu vou passar aqui terraform plan, e eu vou colocar var como sendo igual a, vou abrir e fechar aspas aqui dentro, e aqui eu vou especificar file content, o nome da nossa variável, e eu vou colocar aqui testando. E aí nós vamos ter aqui que o nosso conteúdo agora é testando, então você pode ter um valor default, você pode passar essa informação no prompt quando não há um valor default especificado ou você pode fazer uma você pode sobrescrever o valor default passando aqui também como um parâmetro no var, como um parâmetro do comando terraform plan ou terraform apply, então para nós testarmos aqui, nós ainda não aplicamos vamos substituir plan por apply para nós vermos isso acontecendo na prática, então vamos dar apply. Beleza, vamos colocar aqui yes. E agora se nós abrirmos o nosso arquivo exemplo, nós temos aqui que o valor foi alterado para testando. E essas são simplesmente algumas formas de nós trabalharmos com variável. A forma mais simples, mas é claro que nós vamos entrar em detalhes nas próximas aulas. Eu espero que você tenha gostado e vejo você na nossa próxima aula.