首页 > 解决方案 > 将外部 REST API 响应下载到端点可变的 S3

问题描述

我的项目涉及调用第 3 方 REST API 并将响应保存为 JSON 以存储在 S3 存储桶中。

要下载的数据可从以下位置访问:

myapi.com/data/{batch}/{id}

响应大小约为 1MB。

可以从以下位置访问包含批次可用 ID 号的 JSON:

myapi.com/data/{batch}/ids

可以从以下位置访问包含可用批号的 JSON:

myapi.com/data/batches

新的 ID 通常每周可用,新的批号每月可用。

我已经看到有关将外部 REST API 响应导入 s3 的问题的答案,建议创建计划的 Lambda 函数来调用 id 端点并将 JSON 推送到适当命名的 S3 位置。我正在努力解决两个问题:

  1. 如何向 Lambda 提供它应该调用的 id,包括新可用的 id 和省略以前下载的 id?
  2. 如何处理批量数据?有很多可用的历史批次需要一次性下载,并且一次可以有几个新批次可用。下载这些将超过 15 分钟的 Lambda 时间限制。

Lambda 方法合适吗?我可以参考这种要求的标准架构吗?

标签: amazon-web-servicesamazon-s3aws-lambdarest

解决方案


您可以查看AWS Batch

您基本上创建了一个运行您编写的脚本的 Docker 映像,并使用 CloudWatch 安排定期运行该作业。由于如果您使用按需实例,AWS Batch 没有时间限制,并且如果您需要更多内存/性能,则可以使用更大的实例,因此它似乎适合实现您的目标。


推荐阅读