从端点获取 JSON 个文件并将它们保存到 AWS S3
Fetch JSON files from an endpoint and save them onto AWS S3
我正在尝试找出从特定端点读取 JSON 文件然后 save/post 此类对象到 AWS S3 的最佳方法。我通过 https://www.mockable.io/ 创建了一个带有模拟响应的模拟端点,我想知道将其 'POST' 到 S3 存储桶的最佳方法是什么。每周都会提供新的 JSON 文件,我在想也许可以使用 Lambda AWS 和 API 网关。这是一种可行的方法吗?我还想探索启用事件触发方式来提取数据或调度程序的可能性。你会推荐什么?我知道 AWS SQS 是一个选项,但如何将获取的 JSON 文件发送到队列?
谢谢,欢迎任何资源或建议。我正在寻找潜在的方法。
请考虑使用 Lambda 和 NodeJS 代码从端点执行 GET 以调用 lambda 函数使用 cloudwatch 事件
https://docs.aws.amazon.com/AmazonCloudWatch/latest/events/RunLambdaSchedule.html
有很多不同的方法可以解决这个问题,但如果我理解正确的话,你想每周从固定端点(你设置的?)检索一次 JSON 响应,然后将 JSON 写入存储在 S3 上的文件或文件序列。
如果这是正确的,那么您真正需要的是 Cloudwatch Events(以 cron
格式设置每周计划的重复事件),它会触发一个发出请求的 lambda 函数,然后将其写入 S3 .您还可以使用相同的 lambda 函数(或编写另一个由相同的 CloudWatch 事件触发的函数)来 post 向带有 JSON 的 SQS 发送消息。
根据您最习惯使用哪种语言编写它,您可以使用 SDK 来做所有您想做的事情。我个人喜欢 python 库 boto3
, and combined with a little file IO to get the JSON to a text file of some kind, and the requests
library to make the actual HTTP request to your endpoint, you should be able to do all you need. Helpful functions in boto3
will be sending a SQS message and writing to S3.
我不确定为什么您一定需要 API 网关在这里做任何事情,除非您想通过单独的 HTTP 请求而不是通过预定事件触发 lambda,但是你也可以只向你原来的 API!
提出请求
我正在尝试找出从特定端点读取 JSON 文件然后 save/post 此类对象到 AWS S3 的最佳方法。我通过 https://www.mockable.io/ 创建了一个带有模拟响应的模拟端点,我想知道将其 'POST' 到 S3 存储桶的最佳方法是什么。每周都会提供新的 JSON 文件,我在想也许可以使用 Lambda AWS 和 API 网关。这是一种可行的方法吗?我还想探索启用事件触发方式来提取数据或调度程序的可能性。你会推荐什么?我知道 AWS SQS 是一个选项,但如何将获取的 JSON 文件发送到队列?
谢谢,欢迎任何资源或建议。我正在寻找潜在的方法。
请考虑使用 Lambda 和 NodeJS 代码从端点执行 GET 以调用 lambda 函数使用 cloudwatch 事件
https://docs.aws.amazon.com/AmazonCloudWatch/latest/events/RunLambdaSchedule.html
有很多不同的方法可以解决这个问题,但如果我理解正确的话,你想每周从固定端点(你设置的?)检索一次 JSON 响应,然后将 JSON 写入存储在 S3 上的文件或文件序列。
如果这是正确的,那么您真正需要的是 Cloudwatch Events(以 cron
格式设置每周计划的重复事件),它会触发一个发出请求的 lambda 函数,然后将其写入 S3 .您还可以使用相同的 lambda 函数(或编写另一个由相同的 CloudWatch 事件触发的函数)来 post 向带有 JSON 的 SQS 发送消息。
根据您最习惯使用哪种语言编写它,您可以使用 SDK 来做所有您想做的事情。我个人喜欢 python 库 boto3
, and combined with a little file IO to get the JSON to a text file of some kind, and the requests
library to make the actual HTTP request to your endpoint, you should be able to do all you need. Helpful functions in boto3
will be sending a SQS message and writing to S3.
我不确定为什么您一定需要 API 网关在这里做任何事情,除非您想通过单独的 HTTP 请求而不是通过预定事件触发 lambda,但是你也可以只向你原来的 API!
提出请求