[英]AWS Glue job hangs when calling the AWS Glue client API using boto3 from the context of a running AWS Glue Job?
我正在尝试创建一个 Glue 作业,以枚举我目录中数据库中的所有表。 为此,我使用以下代码片段:
session = boto3.Session(region_name='us-east-2')
glue = session.client('glue')
tables = glue.get_tables(
DatabaseName='customer1'
)
print tables
该作业挂起大约 15 分钟,连接似乎被拒绝,因为我最终收到以下错误:
botocore.vendored.requests.exceptions.ConnectTimeout: HTTPSConnectionPool(host='glue.us-east-2.amazonaws.com', port=443): url 超过最大重试次数: / (由 ConnectTimeoutError(, '连接到胶水) .us-east-2.amazonaws.com 超时。(连接超时=60)'))
此问题特定于胶水 API。 我可以毫无问题地使用 S3 API。
我已经检查了我所有的安全组,并打开了所有端口以允许来自任何地方的流量。 我什至添加了自引用规则。 但这无济于事。
我无法弄清楚是什么导致连接被阻止。 AWS 是否专门阻止粘合请求?
我遇到了同样的问题,即boto3调用glue
或s3
挂起并最终超时。
我在创建dev-endpoint时通过更改subnet-id来修复它。 最初我使用的是将流量路由到Internet网关的子网。 我切换到子网路由流量到内部NAT网关。 希望这可以帮助。
解决方案:只需重复@darius matonas 回复的内容以使其直截了当,当您需要运行 Glue 作业以获取您刚刚创建的作业或其他作业的信息时,在您调用 boto3 之前 - 类似于 get_job_run 或 get_job_runs,确保在 VPC 中创建一个新终端节点并分配给您的 Glue 连接使用的相同子网和安全组。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.