gpt4 book ai didi

AWS ECS 中的 Python 应用程序。如何链接到外部应用程序配置?

转载 作者:行者123 更新时间:2023-12-02 19:15:44 25 4
gpt4 key购买 nike

我有一个具有以下部署模型的 Python 应用程序(Flask、uwsgi):将 docker 容器放入 AWS ECR 并由 AWS ECS(Fargate)推出。 CD 由 CircleCI 运营。
我使用外部应用程序配置(INI 文件)并希望将其放在容器外部(实际上这是一个很好的做法)。问题是:我应该把这样的文件放在哪里,以便 ECS 中的容器可以读取它?提醒一下:Fargate 部署模型与特定的 EC2 实例无关,因此我看不到将其放在那里的方法。
读取我的配置的代码:

APP_CONFIG = Path(os.getenv("CONFIG_FILE_PATH", str(DEFAULT_CONFIG_PATH)))

最佳答案

你有几个选择:

  • 最简单但也是最繁琐的选择是将base64 编码的配置放入参数存储中,然后通过secrets 将配置作为环境文件注入(inject)到容器中。任务定义中的属性。就我个人而言,我真的不喜欢这样,因为每次我想更改配置时,我都必须手动进行...更改文件,对其进行编码,然后将其上传到商店。此外,必须修改图像/入口点以将文件放在它所属的位置。
  • 将配置存储在 EFS 卷中并将其绑定(bind)到容器。一旦您完成所有设置并且容器可以访问 EFS 卷,这是一个非常好的解决方案。您将手动更新卷中的配置,例如从 EC2 实例或将管道中的更新文件推送到卷。
  • 我使用的hacky方法:将配置存储在一个git repo中,其中还包含我的管道定义等。用entrypoint覆盖图像的入口点属性并将配置文件作为 base64 作为 env var 注入(inject)到容器中,然后从同一个入口点对其进行解码并将其放在正确的位置。我这样做是因为我更喜欢我所有的非 secret 配置与任务定义等在同一个仓库中。

  • 我确信那里有更多(复杂的)方法。例如像 Hashicorp Vault 这样的东西。但我对他们没有经验

    关于AWS ECS 中的 Python 应用程序。如何链接到外部应用程序配置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63573423/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com