【问题标题】:AWS deplyong ECS services through CLIAWS 通过 CLI 部署 ECS 服务
【发布时间】:2020-12-13 05:06:59
【问题描述】:

我想通过aws cli(在 CI/CD 的最后一步)部署(重新启动)我的 ECS 任务(启动类型为 Fargate)。

他们的问题是我似乎必须停止任务,并再次更新它们的状态。仍然可以,但是在以下命令中: aws --region regionName ecs stop-task --cluster example-cluster --task taskID,对于--task,我要么必须使用任务 UUID,要么必须使用任务的 ARN,这两者都没有完全修复。 任务的 UUID 随每个修订版而变化,ARN 也是一个名称,其最后一部分是修订版号。是否有完全固定的标识符可以用作 ARN?

此外,在 ARN 中,例如,如果我有 nginx:4,我不能使用“最新”而不是 4,这使其完全难以处理和自动化。

【问题讨论】:

    标签: amazon-web-services amazon-ecs aws-fargate


    【解决方案1】:

    我找到了解决方案,使用*-task 系列命令是一个错误。要部署服务,我们只需使用update-service 命令,如下所示:

    aws --region regionName ecs update-service --cluster clusterName --force-new-deployment --service serviceName
    

    重点是--force-new-deployment,这个命令对不使用CodeDeploy的人很有用。

    【讨论】:

    • 当您使用 --force-new-deployment 时,是否有任何方法可以阻止它。如果您的容器损坏并且它正在无限期地重试创建新任务。是否可以选择停止部署并保留旧容器,直到构建修复并再次尝试部署?
    • @Petar Marinac 我猜不是。您想要回滚,您要么需要处理手动回滚,通过从上一个稳定版本创建新映像并执行新的部署,要么您必须使用一个支持高级部署模型的 Aws 服务(我猜是 OcdeDeploy 但我'不确定)
    猜你喜欢
    • 1970-01-01
    • 2018-06-14
    • 1970-01-01
    • 2019-08-02
    • 1970-01-01
    • 1970-01-01
    • 2020-12-13
    • 2023-03-15
    • 1970-01-01
    相关资源
    最近更新 更多