【问题标题】:Efficient way to implement frequent cron job in production environment在生产环境中实现频繁 cron 作业的有效方法
【发布时间】:2020-07-18 16:26:55
【问题描述】:

我正在努力在生产环境中部署一项服务(使用 AWS),任务是:

  • 定期(每分钟)更新一些参数
  • API 来获取这些参数,以便与其他服务集成。

为了解决这个问题,我部署了一个 docker 映像并公开了两个 api,一个用于更新参数,另一个用于获取那些更新的参数。我使用 AWS lambda 每分钟调用一次更新 a​​pi。

这个设置工作正常,但有没有其他方法可以更优雅地解决这个问题?

【问题讨论】:

  • 当您谈论生产时的问题是:它是否适当安全以及当前解决方案的耐用性如何?理想情况下,您将首先寻找 AWS 提供的管理服务,以利用其持久性和高可用性环境,以确保安全性,您是否存储了在静态和传输中加密的那些值?你可以看看像 s3 这样的带有加密的服务是一个不错的选择,如果它在 EC2 上,像 aws secret manager 和 api gateway + lambda 而不是 docker 镜像这样的服务。

标签: python amazon-web-services docker aws-lambda cron


【解决方案1】:

一种选择是将参数存储在 Amazon S3 中

各种系统都可以简单地从 S3 中检索对象来获取参数。更新将涉及替换对象。可以提供安全性来限制读取和更新对象的能力。它的成本也很低。

另外,还有AWS Systems Manager Parameter Store,它是为这种类型的东西制作的。同样,可以严格控制访问。

【讨论】:

    【解决方案2】:

    我最好的猜测是你有一个 lambda cron,它在每个 'dt' 使用一个事件触发器。 这些例子描述了这个想法的核心:

    Cron job with serverless

    Get weather data

    如果您还没有使用无服务器,那么这将是一项不错的投资。

    在 cron 作业 lambda 处理程序中,您可以执行“GET”来检索您的数据并将其作为记录上传到 DynamoDB。

    【讨论】:

      猜你喜欢
      • 2017-07-03
      • 2020-09-25
      • 1970-01-01
      • 2015-01-23
      • 2018-04-09
      • 1970-01-01
      • 2021-07-08
      • 2022-01-17
      • 2011-08-12
      相关资源
      最近更新 更多