[英]AWS Glue job consuming data from external REST API
我正在尝试创建一个工作流程,其中 AWS Glue ETL 作业将从外部 REST API 而不是 S3 或任何其他 AWS 内部来源中提取 JSON 数据。 这可能吗? 有人这样做吗? 请帮忙!
是的,我确实从 Twitter、FullStory、Elasticsearch 等 REST API 中提取数据。通常,我确实使用 Python Shell 作业进行提取,因为它们更快(冷启动相对较小)。 完成后,它会触发一个 Spark 类型的作业,该作业仅读取我需要的 json 项。 我使用请求 pyhton 库。
为了将数据保存到 S3 中,您可以执行以下操作
import boto3
import json
# Initializes S3 client
s3 = boto3.resource('s3')
tweets = []
//Code that extracts tweets from API
tweets_json = json.dumps(tweets)
obj = s3.Object("my-tweets", "tweets.json")
obj.put(Body=data)
对的,这是可能的。 您可以使用 Amazon Glue 从 REST API 中提取数据。 尽管 Glue 没有可用于连接互联网世界的直接连接器,但您可以设置一个 VPC,具有公有和私有子网。 在私有子网中,您可以创建一个仅允许 GLue 出站连接从 API 获取数据的 ENI。 在公共子网中,您可以安装 NAT 网关。
此外,您可能还需要设置安全组来限制入站连接。 希望这能回答你的问题。
接受原始答案后的一个新选项是根本不使用 Glue 而是为Amazon AppFlow 构建自定义连接器。
我认为 AppFlow 是最适合在基于 API 的数据源之间传输数据的 AWS 工具,而 Glue 更适合基于 ODP 发现 AWS 中已有的数据。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.