从AWS Glue到RDS的JDBC连接超时

从AWS Glue到RDS的JDBC连接超时,jdbc,pyspark,aws-glue,Jdbc,Pyspark,Aws Glue,我正在尝试直接从AWS胶水脚本连接到我的PosgresqlRDS。我已经尝试使用生成的代码进行连接,并且效果良好。但是使用JDBC类型的连接是不起作用的。代码如下: 导入系统 从awsglue.transforms导入* 从awsglue.utils导入getResolvedOptions 从pyspark.context导入SparkContext 从awsglue.context导入GlueContext 从awsglue.job导入作业 从awsglue.dynamicframe导入dyn

我正在尝试直接从AWS胶水脚本连接到我的PosgresqlRDS。我已经尝试使用生成的代码进行连接,并且效果良好。但是使用JDBC类型的连接是不起作用的。代码如下:

导入系统 从awsglue.transforms导入* 从awsglue.utils导入getResolvedOptions 从pyspark.context导入SparkContext 从awsglue.context导入GlueContext 从awsglue.job导入作业 从awsglue.dynamicframe导入dynamicframe 导入pyspark.sql.F函数 从pyspark.sql.functions导入* 初始化 args=getResolvedOptionssys.argv,['JOB\u NAME'] sc=SparkContext glueContext=GlueContextsc spark=glueContext.spark\u会话 作业=作业上下文 job.initargs['job_NAME',args df=火花\ .读\ .格式为'jdbc'\ .选项'url','jdbc:postgresql://host/database_name' \ 。选项“dbtable”,从表中选择*,其中name='abcd'作为t\ .选项“用户”、“用户名”\ .选项“密码”、“密码”\ 负载 作业。提交 部分错误:

An error occurred while calling o74.load. : java.sql.SQLException: [Amazon](500150) Error setting/closing connection: Connection timed out. at com.amazon.redshift.client.PGClient.connect ....
额外资料:

它以前确实有效,但我不知道从那以后发生了什么变化 我已经使用AWS Glue中的测试连接对连接进行了测试,它可以正常工作 我已将RDS的VPC安全组配置为打开同一安全组的入站/出站。这是基于本指南的:
提前谢谢,如果您需要更多信息,请告诉我。

我刚刚找到原因。因为我没有指定端口。我不记得以前放过港口。在那之后一切都正常

df = spark \
     .read \
     .format('jdbc') \
     .option('url', 'jdbc:postgresql://host:5432/database_name') \
     .option('dbtable', "(SELECT * FROM table WHERE name = 'abcd') AS t") \
     .option('user', 'username') \
     .option('password', 'password') \
     .load()

你能试着向所有人开放出站流量吗?另外,你能否在VPC中启动一台EC2机器,类似于你的Glue job网络配置,并确认你是否能够连接?@Prabhakarredy感谢你的评论,但显然是因为端口问题,我忽略了你的脚本,因为你之前提到它运行良好!!我怀疑AWS Glue团队推动了对底层驱动程序或其他代码的更改,如果没有提供,这些代码可能用来假设端口。我们的代码与您的代码完全相同,没有指定端口,运行了4个月,大约在您发布的同一天,我们所有的AWS帐户都同时中断。添加端口修复了它。谢谢你的信息。我也不记得以前添加过端口,我知道它以前工作正常。嗯,至少这个问题已经解决了