簡體   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