gpt4 book ai didi

amazon-ecs - ECS服务-使用新的Docker镜像自动部署

转载 作者:行者123 更新时间:2023-12-03 11:56:41 24 4
gpt4 key购买 nike

我想通过使用最新的Docker镜像启动ECS服务来自动化应用程序的部署。据我了解,部署新镜像版本的方法如下:

  • 创建新的任务修订版(更新Docker存储库上的镜像之后)。
  • 更新服务并指定新版本。

  • 这似乎可行,但是我想通过CLI进行全部操作,以便可以编写脚本。 #2看起来很容易通过 update-service通过AWS CLI进行,但是我看不到一种方法,而无需像 register-task-definition一样再次指定整个Task JSON(我的JSON将在环境变量中包含凭证,所以我希望在尽可能少的地方使用该功能)。

    这是我应该如何自动部署ECS服务更新吗?如果是这样,是否有“好的”方式让任务定义启动新的修订版(即不重复所有内容)?

    最佳答案

    是的,这是正确的方法。

    不,使用当前的API,您不能在不复制现有任务定义的情况下为其注册新版本。

    如果您不使用CLI来生成原始任务定义(或不​​想重复使用生成它的原始命令),则可以通过CLI尝试以下类似的操作:

    OLD_TASK_DEF=$(aws ecs describe-task-definition --task-definition <task_family_name>)
    NEW_CONTAINER_DEFS=$(echo $OLD_TASK_DEF | jq '.taskDefinition.containerDefinitions' | jq '.[0].image="<new_image_name>"')
    aws ecs register-task-definition --family <task_family_name> --container-definitions "'$(echo $NEW_CONTAINER_DEFS)'"

    并非100%安全,因为最后一条命令的 --container-defintions参数(包括 "environment"条目)仍然可以通过 ps之类的进程看到。其中一种AWS开发工具包可让您更加放心。

    关于amazon-ecs - ECS服务-使用新的Docker镜像自动部署,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31485031/

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