提问者:小点点

AWS Glue能否通过SFTP连接到远程服务器?


我正在尝试使用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

我得到的错误如下。

ImportError:无法导入名称“\u bcrypt”

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

因此,我使用Scala尝试了JSCHJava库。在那里,编译成功,但我得到以下异常。

通用域名格式。jcraft。jsch。JSchException:java。网UnknownHostException:[远程服务器主机名]

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

如何为粘合作业配置出站规则(如果需要)?


共2个答案

匿名用户

我在这里回答我自己的问题,希望能对任何人有所帮助。

直截了当的回答是不。

我发现下面的资源表明AWS胶水是AWS资源的ETL工具。

AWS Glue使用其他AWS服务协调ETL(提取、转换和加载)作业以构建数据仓库。

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

Glue只适用于来自JDBC和S3(CSV)数据源的ETL。如果您希望从其他云应用程序、文件存储库等加载数据,Glue将无法支持。

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

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

匿名用户

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

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