Solucionado (ver solução)
Solucionado
(ver solução)
6
respostas

erro na linha 12 provider

Bom dia! estou executando conforme o video ,porem depois do comando terraform plan ele apresenta o seguinte erro:

Error: error configuring Terraform AWS Provider: no valid credential sources for Terraform AWS Provider found.

Please see https://registry.terraform.io/providers/hashicorp/aws │ for more information about providing credentials. │ │ Error: NoCredentialProviders: no valid providers in chain │ caused by: EnvAccessKeyNotFound: failed to find credentials in the environment. │ SharedCredsLoad: failed to load profile, default. │ EC2RoleRequestError: no EC2 instance role found │ caused by: RequestError: send request failed │ caused by: Get "http://169.254.169.254/latest/meta-data/iam/security-credentials/": dial tcp 169.254.169.254:80: connect: connection refused

acredito eu que seja pela falta da chave publica e privada seria isto ? mas no video nao pede elas

6 respostas

Quando você cria um usuário na aws, você concede permissão do que esse usuário pode fazer no dentro do ambiente da aws e gera chaves (access_key e secret_key) pra que esse usuário possa criar os recursos sem precisas acessar o dashboard da aws. Você usa essas chaves pra fazer comando direto do seu terminal por exemplo. Basta ter o aws_cli instalado na sua máquina. Você da o comando "$ aws configure" e ele vai te solicitar as chaves junto com a região e o output. Ele vai criar um profile defalt com essas chaves. No provider do terrarorm, você pode passar as chaves, ou o profile. ex:

provider aws {
     region = "us-east-1"
     profile = "default"
}

ou passar as chaves diretamente no provider

provider aws {
    region = "us-east-1"
    access_key = "access key que foi gerada"
    secret_key = "secret key que foi gerada"
}

A primeira opção é mais segura, que não corre o risco de você jogar suas chaves pra um repositório git e alguém acabar pegando elas e criando máquinas na sua conta.

Se você quiser dar um nome pro seu profile em vez de default na hora do configure você pode especificar o nome do profile. ex: $ aws configure --profile estudo Ele vai gerar o profile "estudo" e dentro pro provider do terraform, você passa o profile estudo. ex:

provider aws {
     region = "us-east-1"
     profile = "estudo"
}

obrigado ! so mais uma duvida :

AWS Access Key ID [****3860]: aqui blz

AWS Secret Access Key [None]: aqui blz

Default region name [None]: aqui blz

Default output format [None]: o que eu coloco aqui ????

No output você pode colocar json, text ou table.

Em particular eu coloco json.

Serve pra quando você usar o aws cli pra pegar alguma informação da aws. Ai você consegue colocar a saida em json, texto ou tabela.

pessoal help. ja troquei por 3 amis diferentes mas sempre esta dando este erro:]

Enter a value: yes

aws_instance.app_server: Creating... ╷ │ Error: Error launching source instance: InvalidAMIID.NotFound: The image id '[ami-090717c950a5c34d3]' does not exist

│ status code: 400, request id: f80bb860-182b-4083-8ec1-b432bd2253d3 │ │ with aws_instance.app_server, │ on man.tf line 18, in resource "aws_instance" "app_server": │ 18: resource "aws_instance" "app_server" {

Samel.

Não encontrei essa ami realmente no console da aws.

Testa essa ami-09e67e426f25ce0d7

solução!

provider aws { region = "us-east-1" access_key = "@@@@@@@@@@" secret_key = "###############" }

resource "aws_instance" "app_server" { ami = "ami-090717c950a5c34d3" instance_type = "t2.micro"

tags = { Name = "instacia de estudo" } }