首页 > 解决方案 > 重启ECS实例中运行的任务(容器)

问题描述

需要重启在 ECS 实例中运行的容器(任务)。

我尝试使用 lambda 函数(在 CodePipeline 中)重新启动任务。stopTask 需要“任务 ID”。

https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/ECS.html#stopTask-property

function stopTask(clusterName, taskId) {

  console.info('Stop service: ' + clusterName + ':' + taskId);

  let params = {
    cluster: clusterName,
    task: taskId,

  };

  return new AWS.ECS().stopTask(params).promise();
}

其中“taskId”不一致。如何获取基于“服务名称”和“集群名称”的 taskId,以便我可以将值传递给 stopTask

Lambda 运行时:Node.js 8.10

标签: node.jsaws-lambdaamazon-ecs

解决方案


您是否尝试过使用 AWS JavaScript SDK listTasks操作?

var params = {
  cluster: 'default',
  serviceName: 'my-service'
};
AWS.ECS().listTasks(params, function(err, data) {
  if (err) console.log(err, err.stack); // an error occurred
  else     console.log(data);           // successful response
});

推荐阅读