繁体   English   中英

将单个配置文件挂载到 ECS 服务上

[英]Mount a single config file onto an ECS service

我来自 Kube.netes 背景,我正在尝试学习 AWS/ECS。 在 Kube.netes 中,您可以使用ConfigMap资源快速轻松地将简单的一次性配置文件挂载到容器中,而无需 go 设置卷的所有麻烦。 这也使得从 Terraform 配置服务变得非常容易,这正是我正在尝试做的。

AWS ECS 服务是否具有 Kube.netes Config Maps 之类的功能? 我只需要最简单的方法在启动时将任意文本文件插入到我的服务中,可以使用 Terraform 快速更新。 我想避免每次此文件更改时都必须重建整个图像。

这是可能的还是我需要为此创建卷? 如果是这样,为此目的最好的卷配置类型是什么? 我可以轻松地在 S3 中存储和更新文件,这些只是只需要读取访问权限的简单配置文件,那么仅挂载 S3 存储桶是否可以接受?

解决方案取决于架构和细节。 这是我可以看到的一些可能的解决方案:

  1. 如果可以将参数设置为环境变量,我建议将其值存储在 AWS Systems ManagerSecrets Manager服务中并传递给容器(以其他方式,您可以在容器内生成配置文件,读取这些 ENV 并使用自定义Entrypoint值打印到文件)
  2. 如果您需要在 docker 容器内上传文件,这里有两种可能的简单解决方案:
    • 创建一个固定的base_image并且每次只重建它的最后一层。 在 Dockerfile 术语中,它看起来像:
       FROM base_image COPY config_file /app/config_file
    • 将配置文件存储在 S3 存储桶中,并通过更改Entrypoint将其复制到容器中。 例如,如果当前Entryrpoint/usr/bin/apache
       FROM some_image RUN echo 'aws s3 cp s3://mybucket/config_file /app/ && /usr/bin/apache' > /Entrypoint.sh ENTRYPOINT ['sh', '/Entrypoint.sh']
      *但是在这种情况下你需要在容器中安装aws cli。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM