繁体   English   中英

在运行 AWS Glue 作业的上下文中使用 boto3 调用 AWS Glue 客户端 API 时,AWS Glue 作业挂起?

[英]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调用glues3挂起并最终超时。

我在创建dev-endpoint时通过更改subnet-id来修复它。 最初我使用的是将流量路由到Internet网关的子网。 我切换到子网路由流量到内部NAT网关。 希望这可以帮助。

调用 aws boto3 客户端 api 时粘合作业超时

解决方案:只需重复@darius matonas 回复的内容以使其直截了当,当您需要运行 Glue 作业以获取您刚刚创建的作业或其他作业的信息时,在您调用 boto3 之前 - 类似于 get_job_run 或 get_job_runs,确保在 VPC 中创建一个新终端节点并分配给您的 Glue 连接使用的相同子网和安全组。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM