首页 > 解决方案 > 在由 S3 触发的 AWS 中运行 ETL python 脚本

问题描述

我是 AWS 新手,不知道如何执行以下操作。当我在 S3 中放置一个对象时,我想启动一个 python 脚本来进行一些转换并将其返回到 S3 中的另一个路径。我尝试了一个 lambda 函数,但该过程需要 300 多秒。我也尝试过使用 Glue 作业,但是当我将文件放入 S3 时,我不知道如何触发它。

有谁知道该怎么做?也许我使用了错误的 AWS 工具。

标签: amazon-web-servicesaws-lambda

解决方案


一种选择是使用SQS

  1. 创建 SQS 队列。
  2. 设置 S3 以在将新对象添加到源存储桶时向 SQS 队列发送通知。请参阅配置 Amazon S3 事件通知
  3. 在EC2实例上设置 Python 脚本并在代码中侦听 SQS 队列。
  4. 脚本完成后,将 Python 脚本的输出上传到目标 S3 存储桶。

你能把 Python 处理分解成更小的步骤吗?如果您可以让您的代码在 Lambda 限制范围内运行,我绝对建议您使用 Lambda 而不是管理 EC2。


推荐阅读