amazon-web-services - 将外部 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 位置。我正在努力解决两个问题:
- 如何向 Lambda 提供它应该调用的 id,包括新可用的 id 和省略以前下载的 id?
- 如何处理批量数据?有很多可用的历史批次需要一次性下载,并且一次可以有几个新批次可用。下载这些将超过 15 分钟的 Lambda 时间限制。
Lambda 方法合适吗?我可以参考这种要求的标准架构吗?
解决方案
您可以查看AWS Batch。
您基本上创建了一个运行您编写的脚本的 Docker 映像,并使用 CloudWatch 安排定期运行该作业。由于如果您使用按需实例,AWS Batch 没有时间限制,并且如果您需要更多内存/性能,则可以使用更大的实例,因此它似乎适合实现您的目标。
推荐阅读
- javascript - Vue.js Firebase .get 不返回预期数据
- r - 如何从数据集中删除 Na 值由数据框中 90% 的 na 组成
- python-tesseract - 如何让 pytesseract 使用我训练有素的数据?
- c - 升级到Ubuntu20.04后Clion WSL工具链报错
- javascript - 与 Web 客户端相比,云功能中的 Firestore 操作速度较慢
- java - 如果条件在上下文方面具有可比性,则保持 if/else 是一种好习惯?
- sql - SQL 中的 NOT `column` IN (...) vs `column` NOT IN (...)
- windows - 当另一个程序关闭时,你如何关闭另一个程序?
- python - 为什么在 Python 中尝试使用 requests.get 时会出现 [403] 错误
- html - 如何将 h1 标签与 logo 相邻?