AWS Glue 可以通过 SFTP 连接到远程服务器吗?

问题描述 投票:0回答:3

我正在尝试使用 Python 3.7 通过 SFTP 建立从 AWS Glue 到远程服务器的连接。我尝试使用 pysftp 库来完成此任务。

但是 pysftp 使用一个名为 bcrypt 的库,其中包含 python 和 c 代码。截至目前,AWS Glue 仅支持文档中提到的纯 Python 库(下面的链接)。

https://docs.aws.amazon.com/glue/latest/dg/console-custom-created.html

我收到的错误如下。

导入错误:无法导入名称“_bcrypt”

由于编译错误,我被困在这里。

因此,我尝试使用 Scala 的 JSch java 库。编译成功,但出现以下异常。

com.jcraft.jsch.JSchException:java.net.UnknownHostException:[远程服务器主机名]

我们如何通过 SFTP 从 AWS Glue 连接到远程服务器?可以吗?

我们如何为 Glue 作业配置出站规则(如果需要)?

amazon-web-services sftp aws-glue pysftp
3个回答
6
投票

我在这里为任何可能有帮助的人回答我自己的问题。

直接的答案是否定的。

我发现以下资源表明AWS Glue是AWS资源的ETL工具。

AWS Glue 使用其他 AWS 服务来编排您的 ETL(提取、 转换和加载)作业来构建数据仓库。

来源 - https://docs.aws.amazon.com/glue/latest/dg/how-it-works.html

Glue 仅适用于来自 JDBC 和 S3 (CSV) 数据源的 ETL。在 如果您希望从其他云应用程序加载数据,文件 储物底座等胶水无法支撑。

来源 - https://hevodata.com/blog/aws-glue-etl/

因此,为了实现我正在做的工作,我使用 AWS Lambda 函数通过 SFTP 连接到远程服务器,选择所需的文件并将它们放入 S3 存储桶中。 AWS Glue 作业现在可以从 S3 中选取文件。


0
投票

我使用 paramiko 库让 SFTP 与 Glue 一起使用。我添加了

--additional-python-modules
作业参数,其值为“paramiko”,效果很好。


-1
投票

我知道这个问题发布已经有一段时间了,所以我想分享一些可以帮助您更轻松、更快速地从 sftp 获取数据的工具。因此,为了以简单的方式获取图层,请使用此工具https://github.com/aws-samples/aws-lambda-layer-builder,您可以使 pysftp 图层更快并且没有那些烦人的错误(cffi ,bycrypt)。

lambda 的限制为 500 MB,因此如果您尝试提取大文件,lambda 将因此崩溃。要解决此问题,您必须将 EFS(弹性文件系统)附加到您的 lamdba https://docs.aws.amazon.com/lambda/latest/dg/services-efs.html

© www.soinside.com 2019 - 2024. All rights reserved.