我正在尝试创建一个工作流,其中 AWS Glue ETL 作业将从外部 REST API 而不是 S3 或任何其他 AWS 内部源中提取 JSON 数据。这甚至可能吗?有人做吗?请帮忙!
问问题
9263 次
3 回答
5
是的,我确实从 Twitter、FullStory、Elasticsearch 等 REST API 中提取数据。通常,我确实使用 Python Shell 作业进行提取,因为它们更快(相对较小的冷启动)。完成后,它会触发一个 Spark 类型的作业,该作业只读取我需要的 json 项目。我使用 requests 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)
于 2020-01-13T18:21:34.937 回答
2
对的,这是可能的。您可以使用 Amazon Glue 从 REST API 中提取数据。尽管没有可用于 Glue 连接到 Internet 世界的直接连接器,但您可以设置具有公共子网和私有子网的 VPC。在私有子网中,您可以创建一个 ENI,它只允许 GLue 从 API 获取数据的出站连接。在公共子网中,您可以安装 NAT 网关。
此外,您可能还需要设置一个安全组来限制入站连接。希望这能回答你的问题。
于 2020-12-27T22:52:27.537 回答