AWS 配置应用程序的架构

问题描述

我正在创建一个应用程序,它应该只存储一些配置。我使用 AWS AppConfig 作为配置存储。

我希望能够通过代码更新这个配置数据。因此,当事件发生时,我想调用 SQS 来创建一条消息,其中包含要附加的新配置数据。 SQS 应该调用一个 lambda。 Lambda 应从 AppConfig 获取最新配置,附加新配置,然后部署到 AppConfig

因此,我希望 AppConfig 具有旧配置,并附加新配置。

是否有一种简单的方法可以仅使用 AWS 服务来实现这一目标?

解决方法

我没有尝试过这些,也没有直接使用过 AppConfig,但从网络上拼凑信息对您来说应该不难。

  1. 创建 SQS 队列以保存更新。
  2. 创建 Lambda 以从 SQS 队列中读取数据。
  3. 为从队列接收消息的 Lambda 编写代码,提取 AppConfig 并使用新值进行更新。使用多种适用于您的首选语言的 AWS 开发工具包之一。

您应该注意的一件事是 Lambdas 可以一次运行多个,因此假设您的 AppConfig 如下所示:

{
   "version": 1
}

然后两个更新同时推送到 SQS 队列:

{
    "update1": "abc"
}

and

{
    "update1": "xyz"
}

它们可以同时执行,并且可能会发生竞争条件,即两者都保存但一个覆盖另一个。

我在这里看不到 SQS 队列的好处,也不了解使用此设置的完整用例或原因,但我认为可能有更好的方法来实现您想要实现的目标。