1
resposta

[Resolvido] Erro ao se conectar com banco de dados postgres durante actions CD

Problema:

Estou obtendo o seguinte erro ao executar comandos via SSH para rodar a aplicação em GO no servidor EC2: Insira aqui a descrição dessa imagem para ajudar na acessibilidade

segue o link do meu repositório: https://github.com/luancardosoti/curso_ci

Já verifiquei todas as chaves secretas do github, já verifiquei as regras de entrada e saída dos grupos de segurança do banco e da máquina ec2.

Acessei a máquina do ec2 e instalei o postgres-client e executei o comando de conexão com o banco de dados "psql -h host -p 5432 -U postgres -d root", e consegui me conectar, ou seja, deduzo que a máquina EC2 tem acesso ao banco de dados. Porém não entendo o porque ao executar a partir do actions do github da erro...

Algum help?

No meu caso eu consegui encontrar a solução, segue abaixo:

Descobri o problema, pensava que eram as variáveis de ambiente que não estavam sendo criadas. Mas aparentemente o problema é que o banco do RDS por padrão as conexões exigem SSL ('Secure Sockets Layer') e no meu código de projeto a conexão está assim:

stringDeConexao := "host="+os.Getenv("DB_HOST") +" user="+os.Getenv("DB_USER") +" password="+os.Getenv("DB_PASSWORD") +" dbname="+os.Getenv("DB_NAME") +" port="+os.Getenv("DB_PORT") +" sslmode=disable"

reparem que o sslmode está com valor de "false", eu simplesmente removi o sslmode da string de conexão:

stringDeConexao := "host="+os.Getenv("DB_HOST") +" user="+os.Getenv("DB_USER") +" password="+os.Getenv("DB_PASSWORD") +" dbname="+os.Getenv("DB_NAME") +" port="+os.Getenv("DB_PORT") "

Não sei se deixei passar algum ponto na hora de criar o banco na aws ou se já estava assim, só sei que consegui resolver o problema kk.

1 resposta

Oi Luan, tudo bem?

A solução que você encontrou foi remover o parâmetro "sslmode" da string de conexão, o que é uma abordagem válida.

Ao fazer essa alteração, você está permitindo que a conexão seja estabelecida utilizando as configurações padrão de segurança do banco de dados RDS, incluindo o uso de SSL, o que é importante para manter a integridade e segurança dos dados durante a comunicação.

Muito obrigada por compartilhar com a gente a solução encontrada!

Um abraço e bons estudos.