如何在AWS ECS中重新启动容器?

Nic*_*ick 10 amazon-ec2 amazon-web-services amazon-ecs

我通过consul的键值存储向ECS服务中运行的应用程序容器提供了应用程序配置.

应用程序在启动时仅从consul读取其配置一次.

当我需要更改配置时,我应该如何重新启动容器以便刷新应用程序配置?

我希望通过aws cli以编程方式执行此操作.

ste*_*sen 20

更新:

\n

正如 @Aidin 提到的,您可以通过 AWS CLI 强制执行新部署来实现此目的,如下所示:

\n
aws ecs update-service \\\n--service <service name> \\\n--cluster <cluster name> \\\n--force-new-deployment \\\n[--profile guestapi-dev]\n
Run Code Online (Sandbox Code Playgroud)\n

请注意,这不适用于具有 CodeDeploy 部署控制器的服务。

\n

原答案:

\n

我面临着同样的挑战,我所做的就是遵循指南(根据您的服务使用旧的或新的控制台)。我不知道这是否可以通过 CLI 完成,但它实际上确实“重新启动服务”,因为它为您的服务重新生成新任务并杀死旧任务。

\n

总之:

\n

在旧控制台中:

\n
    \n
  1. 在 AWS 控制台中找到该服务(ECS -> 集群 -> 服务)。
  2. \n
  3. 单击右上角的更新。
  4. \n
  5. 选中 \xe2\x80\x98强制新部署\xe2\x80\x99 框。
  6. \n
  7. 跳过其他配置,单击“更新服务”。
  8. \n
\n

在新控制台中:

\n
    \n
  1. 在 AWS 控制台中找到该服务(ECS -> 集群 -> 服务)。
  2. \n
  3. 单击右上角的编辑。
  4. \n
  5. 展开部署选项
  6. \n
  7. 选中 \xe2\x80\x98强制新部署\xe2\x80\x99 框。
  8. \n
  9. 单击更新。
  10. \n
\n

该服务将重新部署。您应该能够看到现有任务正在运行,新任务提供,最后旧任务消失。

\n


Mit*_*sey 11

您不重新启动容器.但是,您可以停止各个任务,ECS将在群集的某个位置重新生成您的任务的另一个实例.

  • 投了反对票。1)这不是“你不”,而是“你不应该”。2)这不是一个答案。您只是简单地说为什么这是一个坏主意(我完全同意),但您并没有告诉人们如何实际做到这一点(执行该坏主意的解决方案),如果有人出于任何原因想要这样做的话。当开发人员做不常见/正常/标准的事情时,同样的“你不”而不是“你不应该”可以适用于 StackOverflow 问题的很大一部分。这会扼杀创造力和真正的问题解决能力。 (5认同)
  • 这会导致轻微的停机,但重新启动也是如此。您可以增加服务的任务数量以使其扩展,从负载均衡器中删除旧任务,然后停止旧任务。 (2认同)