Heroku Postgresql + Google Datastudio
Dica rápida. Hoje precisei conectar em um db postgres (aquele que é addon do Heroku) e insistentemente dava erro de autenticação. Eu tinha certeza que o usuário e senha estavam corretos.
Pesquisando, vi que o problema era que esse banco no Heroku precisava de conexão SSL. Vi também que o Google Datastudio (desde 2018) permite conexão com o postgres com SSL. São dois passos bem simples.
Primeiro, gerar o certificado e a key com openssl
openssl req
-newkey rsa:2048 -nodes -keyout client.key
-x509 -days 365 -out client.crt
Segundo, pegar o certificado do banco, utilizando esse script python.
python postgres_get_server_cert.py {aws-database-server}:{port} > aws-cert.crt
O aws-database-server e a port você consegue pegar com o comando heroku config
heroku config | grep DATABASE
=== your-app Config Vars
DATABASE_URL: postgres://usuario:[email protected]:port/db
Como executou o script em python? tentei executar em python 2 e 3 mas retorna o mesmo erro.
File “postgres_get_server_cert.py”, line 104, in
main()
File “postgres_get_server_cert.py”, line 18, in main
target = get_target_address_from_args(args)
File “postgres_get_server_cert.py”, line 42, in get_target_address_from_args
return (parsed.hostname, parsed.port)
File “C:\Python27\lib\urlparse.py”, line 113, in port
port = int(port, 10)
ValueError: invalid literal for int() with base 10: ‘{5432}’