粘合ETL:如何使用AWS管理控制台将配置文件引用为额外文件?

人气:320 发布:2022-10-16 标签: amazon-web-services config amazon-s3 python aws-glue

问题描述

我正在尝试使用Glue ETL作为我的Python脚本的作业计划程序,该脚本还引用JSON配置文件。

根据https://docs.aws.amazon.com/glue/latest/dg/aws-glue-programming-etl-glue-arguments.html,有一个名为--extra-files的参数,它被称为指向其他文件(如配置文件)的S3路径。当我创建作业时,似乎在控制台上找不到它。

我所做的是将我的配置文件上传到与我的Glue ETL的Python脚本相同的S3存储桶中,我将其包括在Referenced files path参数中。

在我的脚本中,我将配置文件引用为:

with open('config.json', 'r') as config:
    config = json.load(config)

我的代码逻辑没有任何问题,因为它在本地运行时运行得很好。

但是,当我尝试运行Glue ETL作业时,似乎收到一条失败消息,提示No such file or directory: 'config.json'

我在这里做错了什么?如何使用Glue ETL使用我的用例?

推荐答案

这些参数可以作为作业参数传递。在控制台上,它位于创建或编辑作业时的安全配置、脚本库和作业参数(可选)部分下。

根据this answer,如果您在Python外壳作业中使用引用文件路径变量,则被引用的文件位于/tmp中,其中默认情况下,Python外壳作业没有访问权限。

572