我正在使用python和cassandra(astra提供者)开发一个应用程序,并尝试在heroku上部署它。
问题是连接到数据库需要本地存在凭据zip文件-https://docs.datastax.com/en/astra/aws/doc/dscloud/astra/dscloudconnectpythondriver.html “/path/to/secure-connect-database_name.zip”和heroku不支持上载凭据文件。
我可以将用户名和密码配置为环境变量,但凭据zip文件不能配置为环境变量。
heroku config:set CASSANDRA_USERNAME=cassandra
heroku config:set CASSANDRA_PASSWORD=cassandra
heroku config:set CASSANDRA_KEYSPACE=mykeyspace
有没有什么方法可以让我使用zip文件作为一个环境变量,我想提取所有文件,并在heroku中配置每个文件作为一个环境变量。
但是,如果我开始使用从环境变量提取的文件,我不确定应该指定什么来代替cluster(cloud=cloud\u config,auth\u provider=auth\u provider)?
我知道我可以在我的私有git repo中签入凭证zip,这样就可以工作了,但是检查凭证似乎并不安全。
我想到的另一个想法是将其存储在s3中,并在部署期间获取文件,然后将其提取到temp目录中以供使用。
非常感谢您的指点和帮助。
1条答案
按热度按时间2uluyalo1#
如果您可以将安全包签入repo,那么应该很容易—您只需从云配置Map中指向它,并通过环境变量从配置的机密中获取用户名/密码:
将文件存储在s3上并下载的想法也不是很糟糕。您可以在脚本本身中实现它,以获取文件,还可以使用环境变量传递s3凭据,因此文件在存储库中不可访问,而且如果需要,交换安全捆绑包会更容易。