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

Problema ao rodar o arquivo ./Infraestrutura.sh - Failed to query available provider packages

Tive problemas ao realizar a primeira atividade de preparar o ambiente.

1. Eu fiz o fork do projeto, clonei, e verifiquei que o repositório de exemplo (https://github.com/alura-cursos/2970-serverless-base-back/tree/main) não tem os arquivos terraform.tfstate e terraform.tfstate.backup, conforme indicação do README.md

├── env
│   └── prod
│       ├── Main.tf
│       ├── terraform.tfstate
│       └── terraform.tfstate.backup
├── infra
│   ├── ALB.tf
│   ├── DocDB.tf
│   ├── ECS.tf
│   ├── GrupoSeguranca.tf
│   ├── IAM.tf
│   ├── Provider.tf
│   ├── Variaveis.tf
│   └── VPC.tf
├── Desligar.sh
├── Infraestrutura.sh
└── README.md
  1. Ao executar o arquivo ./Infraestrutura.sh obtive o seguinte erro:

Initializing provider plugins...

  • Finding hashicorp/aws versions matching "~> 4.6, >= 4.55.0, >= 5.0.0"... ╷ │ Error: Failed to query available provider packages │ │ Could not retrieve the list of available versions for provider hashicorp/aws: no available releases match the given │ constraints ~> 4.6, >= 4.55.0, >= 5.0.0 ╵

╷ │ Error: Inconsistent dependency lock file │ │ The following dependency selections recorded in the lock file are inconsistent with the current configuration: │ - provider registry.terraform.io/hashicorp/aws: required by this configuration but no version is selected │ │ To make the initial dependency selections that will initialize the dependency lock file, run: │ terraform init

Se alguém puder me ajudar, por favor.

Grata.

2 respostas
solução!

Oi Laís!

Vamos lá. Quanto ao ponto 1 (dos arquivos faltantes) realmente eles não devem estar no repositório inicial pois são gerados localmente quando a infra é executada. Quando geramos a estrutura em árvore para colocar no readme fizemos isso a partir de um projeto já em execução e alguns arquivos locais acabaram passando. Já corrigi o readme no repositório do curso, obrigada pela observação!

Quanto ao ponto 2, rodei o projeto do zero aqui e realmente é uma questão de versões do Terraform. Você pode acessar o arquivo infra/Provider.tf no seu repositório clonado e testar a seguinte alteração:

Original:

  required_providers {
    aws = {
      source  = "hashicorp/aws"
      version = "~> 4.6"
    }
  }

Modificar para:

  required_providers {
    aws = {
      source  = "hashicorp/aws"
      version = ">= 5.1"
    }
  }

O processo inteiro pode levar vários minutos e vai gerar bastante output de informações no terminal. Você pode confirmar se deu certo após a mensagem

Apply complete! Resources: 4 added, 0 changed, 0 destroyed.

Outputs:

IP_alb = "curso-serverless2-api-<id>.us-east-1.elb.amazonaws.com"

Já estou fazendo também a alteração do código no repositório.

Bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.

Olá Juliana!

Muito obrigada pela prontidão e pela rápida resposta! Deu certinho aqui! :)

Insira aqui a descrição dessa imagem para ajudar na acessibilidade