【问题标题】:Multiple Nodejs applications in elastic beanstalk弹性 beantalk 中的多个 Nodejs 应用程序
【发布时间】:2018-02-12 09:46:26
【问题描述】:

我有一个包含多个服务、网络和工作人员的 nodejs 项目。所有这些服务都在同一个 repo 中,唯一不同的是调用它们的脚本。

我希望为每个服务提供不同的配置,但我也希望将它们保持在 1 个 repo 之下。我可以使用环境,但它会弄乱我的真实环境,如生产、登台等。 我如何在这种架构中使用弹性豆茎? compose Environments 是最佳解决方案吗?

【问题讨论】:

    标签: node.js amazon-web-services amazon-elastic-beanstalk devops


    【解决方案1】:

    有很多方法可以解决这个问题,每种方法都各有利弊。我过去所做的是将我的配置上传到通常公众无法读取的特定 S3 存储桶中。然后我会创建一个签名的 URL(在接下来的几年里,或者其他什么都好),并将其设置为 Beanstalk 配置中的环境变量。然后,在我的.ebextensions/01-setup.config(或类似的地方),我有这个:

    {
      "container_commands": {
        "copy_config": {
          "command": "curl $CONFIG_URL > conf/config.json"
        }
      }
    }
    

    在启动时,容器会从 S3 存储桶中获取配置的副本,将其复制到本地,然后应用程序将使用此配置启动。

    维护非常简单。

    【讨论】:

    • beantalk 中的架构是什么样的?每个服务会有多个环境吗?如果是这样,您将如何处理 staging、prod 等环境?
    • @sidoshi 是的,我会为每个环境创建一个单独的 Beanstalk 应用程序。当你在 beanstalk 中配置它时,你指定了 CONFIG_URL 环境变量。该 URL 将是指向适合该环境的配置的签名 URL。在您的 S3 存储桶中,您将拥有 appname-config-prod.jsonappname-config-dev.json 等内容。
    猜你喜欢
    • 2013-07-09
    • 2015-05-28
    • 2018-03-26
    • 2021-11-20
    • 2016-04-23
    • 2017-02-17
    • 2016-01-11
    • 2017-03-12
    • 2019-05-01
    相关资源
    最近更新 更多