我相信我已通过此连接解决了此问题...
from pyspark.context import SparkContext
from awsglue.context import GlueContext, DynamicFrame
# Get the right stuff
glueContext = GlueContext(SparkContext.getOrCreate())
data = glueContext.create_dynamic_frame.from_catalog(database = "my_database", table_name = "my_table")
print('Fields: ', len(data.schema().fields))
data.printSchema()
我在Docker PG容器和GoLang Scratch容器之间的连接被拒绝。错误是:
Promise
The main.go file which is panicking
Complete code base with Docker files
其他说明:
请求: 请查看代码,并提供一些提示,以了解在何处以及如何解决此SSL问题。
答案 0 :(得分:2)
您可以按照代码查找有关如何使用Postgres调用的文档。
和lib / pq documents it's usage包括:
- dbname-要连接的数据库的名称
- 用户-以身份登录的用户
- 密码-用户的密码
- host-要连接的主机。以/开头的值用于Unix域套接字。 (默认为localhost)
- port-绑定到的端口。 (默认值为5432)
- sslmode-是否使用SSL(需要默认设置,这不是libpq的默认设置)
- fallback_application_name-如果未提供应用程序名称,则会退回到该名称。
- connect_timeout-最大等待连接时间,以秒为单位。零或未指定意味着无限期等待。
- sslcert-证书文件位置。该文件必须包含PEM编码的数据。
- sslkey-密钥文件位置。该文件必须包含PEM编码的数据。
- sslrootcert-根证书文件的位置。该文件必须包含PEM编码的数据。
并且:
- 禁用-没有SSL
- 要求-始终为SSL(跳过验证)
- verify-ca-始终为SSL(验证服务器提供的证书是否由受信任的CA签名)
- 完全验证-始终为SSL(验证服务器提供的证书是否由受信任的CA和服务器主机名签署
匹配证书中的一个)
因此,没有SSL的数据库的连接字符串很简单:
db, err := gorm.Open("postgres", "host='postgres' port=5432 user=docker dbname='docker' password='password' sslmode=disable")
或者您可以使用SSL密钥配置Postgres。这不是那么简单,但是要实现,您需要修改postgresql.conf文件以启用ssl设置并将TLS密钥对作为卷安装,或者最好将其作为群模式安装。有关如何执行此操作的众多示例之一,请访问:https://gist.github.com/likwid/86193ef581c530ea55d3